0
点赞
收藏
分享

微信扫一扫

mysql键值介绍

约束条件:限制字段赋值

NULL:是否允许为空
key:索引类型
default:默认值
Extra:额外设置
create table t1 (class char(10) ,name char(10) not null, age tinyint not null default 28, likes set("a","b") default "c");

修改表结构

alter table 表名 动作
添加字段---add
alter table t1 add mail varchar(50) default "stu@163.com"; #添加表字段,设置默认值
alter table t1 add stu_num char(9) first; #在最前面添加
alter table t1 add pay float(7,2) default 20000 after class; #在class字段后面添加
修改字段---modify
在插入表记录之前需要先设计好字段结构
alter table t1 modify mail char(50); #修改表字段的类型
alter table t1 modify mail char(50) after class; #移动表的位置
修改字段名---change
alter table t1 change pay money float(7,2);
alter table t1 change yy age int(1) not null default 28
删除字段---drop
alter table t1 drop age,drop qq
修改表名---rename
alter table t1 rename tt1;

键值

键值类型:

普通索引  index      唯一索引  unique      主键  primary key     外键    foreign key     全文索引   fulltext

什么是索引

对记录集的多个字段进行排序的方法
类似于书的目录
包括Btree(默认,二叉树),B+tree,hash
索引的优缺点
加快读的速度,降低数据的维护速度,占用存储空间
索引的使用:使用规则,索引,创建,删除

普通索引

工作过程:去t1表的排队文件t1.idb中找,找到结果后直接定位到所在的行,并把表信息显示出来
一个表中可以有多个INDEX字段;值允许重复且可赋NULL值;KEY标志是MUL
默认索引名=字段名
建表的时候指定索引字段:
create table t3 ( name char(10), age tinyint, index(name),index(age) );
show index from t3\G #查看表中的索引字段(竖行显示)
drop index name on t3 #删除表中的索引
在已有表里创建索引
create index 索引名 on tt1(name)

primary key 主键(唯一的字段设成主键):

一个表中只能有一个primary key字段;不能重复,不能为空;复合主键必须一起创建;KEY标志是PRI;通常与AUTO_INCREMENT连用;  
建表的时候指定主键字段:
create table t4( class char(7), name char(10), stu_id int, primary key(stu_id) )
在已有表里添加主键(先添加自增长再添加主键)
alter table tt1 add primary key(class)
复合主键(同时一样才重复)
create table t6 ( class char(7), name char(10), pay enum("yes","no") default "no", primary key(class,name,pay) )
删除主键:alter table t6 drop primary key(如果有自增长,需先去掉自增长)
与auto_increment连用,让字段的值自增长,字段的类型必须为数值且是主键
create table t7(id int(1)primary key auto_increment,name char(10),sex enum("w","m"),age tinyint)

外键foreign key

存储引擎必须是innodb;字段类型和宽度要一致;被参照字段必须是索引类型的一种(primary key)
on update cascade 同步更新 on delete cascade 同步删除
create table yg( yg_id int(1) primary key auto_increment, name char(15) )engine=innodb #开启innodb引擎
create table gz( gz_id int(1), gz float(7,2) default 20000, foreign key(gz_id) references yg(yg_id) on update cascade on delete cascade )engine=innodb
show create table gz\G #查看外键名
alter table gz drop foreign key gz_ibfk_1 #删除外键
alter table gz add foreign key(gz_id) references yg(yg_id) on update cascade on delete cascade #添加外键


举报

相关推荐

0 条评论