您好,登录后才能下订单哦!
本文主要给大家介绍mysql入门基本语句,文章内容都是笔者用心摘选和编辑的,具有一定的针对性,对大家的参考意义还是比较大的,下面跟笔者一起了解下mysql入门基本语句吧。
MYSQL入门基本语句
登录链接MYSQL
mysql -u(用户名) -p(密码) -h(主机名)
DDL语句 数据库定义语言 数据库,表,视图,索引,存储过程,例如CREATE DROP ALTER
create database 数据库名; #创建数据库,大写也是可以
show databases; #查看数据库
select database(); #显示当前所在库
use 数据库名; #具体使用哪一个数据库
drop databas 数据库名; #删除数据库
help drop 查看命令帮
数值类型:
整数类型 TINYINT SMALLTNT MEDIUMINT INT BIGINT
浮点数类型 FLOAT DOUBLE
定点数类型 DEC
位类型 BIT
字符串类型:
CHAR系列 CHAR VARCHAR
TEXT系列 TINYTEXT TEXT MEDIUMTEXT LONGTEXT
BLOB系列 TINYBLOB BLOB MEDIUMBLOB LONGBLOB
BINARY系列 BINARY VARBINARY
枚举类型: ENUM
集合类型 SET
时间和日期类型: DATE TIME DATETIME TIMESTAMP YEA
PRIMARY KEY (PK) #主键
FOREIGN KEY (FK) #外键
NOT NULL #标识该字段不能为空
UNIQUE KEY (UK) #标识该字段是唯一的,可以为空,一个表中可以多个UNIQUE KEY
AUTO_INCREMENT #标识该字段的值自动增长(整数类型,而且为主键)
DEFAULT #为该字段设置默认值
UNSIGNED #无符号,正数
ZEROFILL #使用0填充,例如00000001
desc table,show create table; #查看
create table 表名(
字段名1 类型 ((宽度)约束条件),
字段名2 类型 ((宽度)约束条件),
字段名3 类型 ((宽度)约束条件),
); #创建一个
default '值' #默认值
not null #不为空
enum('m','f') #枚举类型
age int unsigned #不含符号的整型
set('disc','boos','music') #设置一个合集的值
primary key auto_increment; #主键为自增
primary key(ip,service); #定义一个复合主键
primary key(name); #定义一个外
insert into 表名 values(3,'alice','f',18); 插入数值,可以是多
增加字段
ALTER TABLE 表名 #增加字段
ADD 字段名 数据类型[完整性约束条件...];
ALTER TABLE 表名
ADD 字段名 数据类型[完整性约束条件...] FIRST;
ALTER TABLE 表名
ADD 字段名 数据类型[完整性约束条件...] AFTER 字段名;
删除字段
ALTER TABLE 表名 DROP 字段名
修改字段
ALTER TABLE 表名
MODIFY 字段名 数据类型 [完整性约束条件....];
ALTER TABLE 表名
CHANGE 旧字段名 新字段名 新数据类型 [完整性约束条件...];
ALTER TABLE 表名
CHANGE 旧字段名 新字段名 新数据类型 [完整性约束条件...];
删除主键
先删除自增属性,再删除主键属性,不然会报错
MySQL [school]> alter table t1 modify id int not null; 先删除自增属性
MySQL [school]> alter table t1 drop primary key; 在删除主键属性
alter table t1 drop 姓名
复制表
复制结构+记录(key不会复制:主键,外键和索引)
create table t1_new select * from t1; 创建一个新表复制原有表的结构跟数据
create table t1_new3 select * from t1 where 1=5; 复制表结构,不带数据
MySQL [school]> create table t4 like t1; #复制表结构,包括ke
删除表 DROP TABLE 表名; #删除表名
drop table 表名;
####查出完整数据###
insert into 表名 values (值1,值2,值3...
###指定字段插入数据###
insert into 表名(字段2,字段3...) values (值2,值3...
###插入多条记录###
insert int 表名 values
(值1,值2,值3...),
(值1,值2,值3...),
(值1,值2,值3...)
###插入查询结果###
insert into 表1(字段1,字段2,...)
select(字段1,字段2) from 表2
where ...
###更新数据UPDATE###
update 表名 set
字段1 = 值1,
字段2 = 值2,
where ...
###删除数据DELETE###
delete from 表名
where ...; #一定要加条件不然全部删除
MYSQL事务的处
begin
start transaction; #手动开启事
insert into t_user(name) values('pp');
commit ; #commit之后即可改变底层数据库数据
roollback #回滚
commit; #提交事
1. 事物A和事物B之间具有一定的隔离性
2. 隔离性有隔离级别(4个)
• 读未提交:read uncommitted
• 读已提交:read committed
• 可重复读:repeatable read
• 串行化:serializabl
默认自动提交事务
set autocommit=0 禁止自动提交
set autocommit=1 开启自动提交
####设置外键约束 FOREIGN key
父表 company.demofu
mysql> create employees(
-> name varchar(50) not null,
-> mail varchar(20),
-> primary key(name))
子表company.payroll
mysql> create table demozi(
id int auto_increment,
name varchar(50) not null,
payroll float(8,2) not null,
primary key(id),
foreign key(name) references demofu(name) on update
cascade on delete cascade); #设置外键同步附表的name字
插入数值
mysql> insert into demofu values
-> ('圆圆','yuanyuan@163.com'),
-> ('大大','dada@126.com')
mysql> insert into demozi(name,payroll) values ('赵赵',1000);
错误1452(23000):无法添加或更新子行:外键约束失败(“student”,“demozi”,constraint“demozi_ibfk_1”
外键(“name”)在更新级联的DELETE CASCADE上引用“demofu”(“name”)
解释:
设置外键后,子表会同步外表里面的字段数据,如果附表没有该数据,则
无法添
mysql> update demofu set name='亚庆' where name='圆圆';
mysql> select * from demozi;
+----+--------+---------+
| id | name | payroll | #得出结论,子表的外键与附表的字段
+----+--------+---------+ 保持一致
| 1 | 亚庆 | 8000.00 |
+----+--------+---------
mysql> delete from demofu where name='亚庆'; #父表数据删除子表也会删
mysql> select * from demozi;
Empty set (0.00 sec)
看完以上关于mysql入门基本语句,很多读者朋友肯定多少有一定的了解,如需获取更多的行业知识信息 ,可以持续关注我们的行业资讯栏目的。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。