字段约束条件:
Null 是否允许给字段赋空(null)值,默认为允许赋空值,空值关键字为“null”
字段名 类型(宽度) not null
Key 字段是否为索引字段
Default 字段的默认值,不设置时默认值的值为空,当给字段赋值时,如果没有给字段赋值使用默认值赋值,默认值得值要与字段的类型匹配
字段名 类型(宽度) default 默认值
Extra 额外设置,不设置时为空(字段的描述或自动增长设置)
注: insert into 表名(字段名) values ("内容"); 给专门的字段赋值
修改表结构:
alter table 表名 执行动作;
添加新字段:
add 字段名(宽度) 约束条件;
alter table 表名 add 字段名(宽度) 约束条件 after 字段名2;将新字段放到字段2 的下面
alter table 表名 add 字段名(宽度) 约束条件 first;将新字段放到最前面
默认放到所有字段之后
用','号间隔add语句,可以同时添加多个字段
删除已有字段:
drop 字段名;删除当前字段
drop 字段名,drop 字段名; 同时删除两个字段
注: 字段消失,相对应的值也就没了,谨慎操作。
修改字段类型:
modify 字段名(宽度) 约束条件;
注:新类型和已有的值冲突时,不允许修改
修改字段名:
change 源字段名 新字段名 类型 约束条件;
注:改名时,需要将后面的类型和约束条件抄上或者修改;
change 只能用于改名,如需修改类型必须同时改名;
修改表名:
alter table 源表名 rename 新表名;
注:新表名不能与源表名相同
注:数值类型的宽度是显示宽度,不能够限制字段值的大小,字段值的大小有类型决定。
字符类型的宽度可以限制字段值的大小。
zerofill : 指的是用”0”填充。例:id int(5) zerofill
Mysql索引类型:
什么是索引:相当于书的目录
好处:加快查询的速度(select)
坏处:占用存储空间,影响写的速度(insert、delete、update)
mysql索引类型 (fulltext(全文索引)、index(普通索引)、unique(唯一索引)、primary key(主键)、foreign key(外键))
show index from 表名; 查询当前表中所有普通索引
show index from 表名\G;按行显示每个字段
Table :表名
Key_name:索引名
Column_name :字段名
Index_type : 算法
BTREE 算法 (二叉树算法):mysql默认使用算法
创建普通索引 index
普通索引使用规则:
一个表里面可以有多个index字段
字段值可以重复,也可以赋null值
标志:MUL
通常把用来做查询条件的字段设置为index字段
新创建表时,直接创建索引:
创建表之后:
create index 索引名 on 表名(字段名);创建索引
drop index 索引名 on 表名;删除索引
where 字段名=值 “where”查询条件;
创建主键primary key
主键使用规则:
表中只能有一个主键
字段的值不允许重复也不允许赋null值
通常与auto_increment 属性一起使用,功能让字段自动增长(字段类型必须是数值类型,字段必须是主键)
把表中能唯一定位到一条记录的字段设置为主键字段(记录标号字段设置为auto_increment(自动增长))
标志:PRI
建表时创建主键
删除主键:
alter table 表名 drop primary key;
在已有表里创建主键(表里面的值必须与主键的规则相符):
alter table 表名 add primary key (字段名);
复合主键(多个字段一起做主键):只要多个字段的值不同时相同就可以
主键必须同时创建,不能先创建一个再创建一个。
创建方法与主键相似
unique 索引的使用规则
一个表里可以有多个unique索引
字段里面的值不可以重复,但是可以赋null值
标志UNI
建表时:
在已有的表里创建:
create unique index 索引名 on 表名(字段名);创建unique索引
drop index 索引名 on 表名; 删除unique索引
创建外键 foreign key
功能:让当前表中字段的值,只能在另一个表中的字段值的范围里选择
on update cascade :同步更新
on delete cascade :同步删除
使用规则:
表的存储引擎必须是innodb
被参考字段必须是索引的一种。(主键比较合理)
字段类型必须匹配
show create table 表名 :通过查看建表过程来看是否有外键。
alter table 表名 drop foreign key 索引名;删除外键
alter table 表名 add foreign key(字段名)references 关联表名(字段名) on update cascade on delete cascade;创建外键
当表被别人参考时,不允许删除,被参考字段也不可以;