MySQL基本语法

126 阅读4分钟

1.创建表的语法

​ 2.数据类型

​ 整数、小数、字符串、时间、

​ 特殊类型 枚举 集合 json

​ 3.数据的操作

​ 数据的存储,表格中添加数据

​ insert into表明(字段列表)values(对应的值)

​ 4.数据表的数据约束

​ 1.非空约束 not null

​ 解释:当自端添加非空约束的时候,当前字段就不允许插入null值,如果插入就报错

​ 字段名 类型(长度) not null

​ 2.默认default

​ 解释,如果没有给次字段添加数据,默认自动添加默认值

​ 字段名 类型(长度)default 默认值

​ 3.检查check

​ 解释:检测你传入的值是否在给定范围内

​ mysql不支持 使用enum和set实现

​ 4.唯一unique

​ 解释:一旦字段被定义成唯一约束,表示当前字段的值不能重复,可以为null

​ 语法:

​ 字段添加:字段名 类型(长度)unique

​ 独立添加:

​ 【constraint】约束名 unique(字段名)

​ 因为标注的数据列是惟一的,所以方便与查询,数据库系统自动对该字段建立索引Btree【二叉树】

​ 如果没有给唯一约束起名字,默认是约束创建的索引名字是字段名,可以自己给索引起名字

​ 查看对应表的索引语法:

​ show index from 表名;

​ 5.主键约束primary key

​ 解释:相当于 unique + not null 但是高于

​ 主键约束的字段 唯一且不为空【null在数据库中表示无穷的意思,无法比较】

​ 主键才是替代unique来进行准确地数据查询

​ 主键约束分类

​ 单主键的方式,一个表中只有一列拿出来作为主键,方便唯一查询

​ 联合主键的方式:一个表中有多个字段一起来表示一条数据唯一不为空 是unique做不到

​ 例如:

​ uname【primary key】upassw【primary key】

​ 张三 123

​ 张三 1234

​ 李四 123

​ 创建方式:

​ 字段:字段名 类型(长度) primary key

​ 独立:constraint 约束名 primary key(字段1,字段2.....)

​ 备注:每一个表只能创建一个主键,只能使用一次primary key

​ 联合主键唯一方式:

​ 主键字段1-主键字段2-主键字段3.....的值是唯一的

​ 联合主键比较耗费资源-尽量不用,除非必须使用

​ 6.外键约束 froeign key

​ 解释:主要用来多个表之间建立联系

​ 外键一般关联另外一个表的主键

​ 外键与被关联的主键定义一致,依赖于被关联的主键存在

​ 定义语法:

​ 【constraint 外键的名字】 foreign key(字段名) references 关联的表(主键字段)

​ 编写案例:学生和成绩的关联

​ 学生表

​ 学号 名字

​ 成绩表

​ 编号 学生学号 成绩 科目

​ 注意:一旦两个表发生了主外键关联,外键字段的值必须是关联的主键字段中有的才行

​ 7.自增约束 auto_increment

​ 解释:当字段名被定义了自增约束,当前字段的数据就会自动增长,一般用表格数据的主键编号

​ 语法:

​ 字段名 类型(长度) auto_increment

​ 8.删除表的操作

​ 语法:drop table[if exists] 表1,表2....

​ 9.修改表

​ 1)查看数据表创建语法

​ show create table 表名;

​ 2)修改数据库表的名字:

​ alter table 原来的表名 rename to新的表名

​ rename table 原来的表名 to 新的表名

​ 3)添加的信息

​ 添加字段:

​ alter table 表名 add column 字段名 类型(长度)【约束】【first|after 字段】

​ 添加约束和索引等 独立添加

​ alter table 表名 add primary key(字段)references 表名(字段)|unique(字段)

​ 4)删除信息

​ 删除约束:

​ alter table 表名 drop primary key ;

​ 删除字段

​ alter table 表名

第四件事情:速狙处理---dml

​ 1.dml语言数据处理

​ 将数据添加到表格 从表格移除 修改数据 从表格获取数据查看

​ 2.创建数据库 创建表

​ 3.表中添加数据的语法 要叫插入数据 关键字 insert

​ 语法1:

​ insert into 表名(字段1,字段2...)values(值1,值2......)

​ 备注:字段需要和值一一对应,个数和顺序对应,每插入一条数据就表示在表格中添加一行数据

​ 如果我们是给表中所有字段添加数据,表名后面的字段列表可以省略,默认的字段个数就是表中所有的字段,顺序按照添加字段或者创建表的时候字段顺序

​ insert into 表名 values(值1,值2....)

​ 语法2:

​ insert into 表名(字段1.字段2......)values(值1,值2....)(值1,值2......),(值1,值2....)

​ 语法3:

​ insert into 表名(字段1,字段2)select 字段1,字段2,....from存在的表名

​ 4.删除数据 delete

​ delete from 表名【where 条件】

​ 备注:如果不加【where】表示删除所有的数据

​ 截断表:

​ truncate table 表名;

​ delete 和 truncate区别:

​ delete只是删除表中的数据,表中的一些特殊设置结构没有改变,比如自增

​ truncate,截断表,不仅仅删除数据,相当于将表删除,再创建一个新的