一、修改表名
alter table [旧的表名] rename [新表名]
alter table sjl rename sjc; ##修改sjl这张表的名字 改成sjc
二、拓展表结构(增加字段)
alter table [表名] add [新加字段] [字段类型] default '字段内容';
alter table sjl add address varchar[50] default '地址不详';
三、修改字段(列)名,添加唯一键
alter table [表名] change [旧列名] [新列名] [数据类型] [unique key];
alter table sjl change name username varchar(10) unique key; ###添加唯一键
ps : 唯一键是允许空值的,但是不允许重复字段
不可以重复但是可以为空
四、删除字段
alter table [表名] drop [删除字段]
alter table sjl drop address; ##删除sjl表中的 address 这个字段
五、案例扩展:
use kgc;
create table if not exists info ( #info是表名
id int (4) zerofill primary key auto_incremebt, #指定主键的第二种方式
name varchar ( 10) not null default '匿名', #设置默认值为匿名,如果插入数据为空使用默认值
address int ( 18 ) not null unique key,
hobby varchar (50) ) ;
#if not exists:表示检测要创建的表是否已存在,如果不存在就继续创建
#int (4) zerofill:表示若数值不满4位数,则前面用"0"填充,例0001
#auto _increment:表示此字段为自增长字段,即每条记录自动递增1,默认从1开始递增:自增长字段数据不可以重复;自增长字段必须是主键。如添加的记最数操没有指定此字段的值且添加失败也会自动递增一次
#unique key:表示此字段唯一键约束,此字段数据不可以重复;一张表中只能有一个主键,但是一张表中可以有多个唯一键#not null:表示此字段不允许为NULL
unsigned ## 无符号类型
自增长如果上一次插入的数据指定id为10 ,那么下次自增长为11
六、克隆表
方法一: 可以保证表结构和表数据是一致的
create table [新表] like [旧表] ##复制旧表的表结构
create table sjl like st; ##把st这张表的结构复制给sjl
insert into sjl select * from st; 把st表中查询的数据插入到sjl这张表
方法二:
create table sjc (select * from st)
create table 新表 (select * from [旧表]); ##在创建表的时候直接引用旧表
但是有问题,可能会出现新表的表结构和旧表不一致,新表的表数据和旧表是一样的
七 、查看表结构
desc 表名;
show create table 表名; 获取数据表结构 引索信息
八、清空表,删除表内所有的数据
方法1:
delete from test0
使用delete删除数据,他是一条一条删除的速度比较慢
自增长字段,会继续递增
方法二:truncate table test1
清空后 把表结构重新建立 速度比delete快
清除后在插入数据,自增长字段,从1开始记录
九、创建临时表
create temporary table 表名 (字段1 数据类型,字段2 数据类型[,...][,PRIMARY KEY (主键名)]);
例: create temporary table test3 ( id int(4) zerofill primary key auto_increment, name varchar(10) not null, sex char(2) not null); insert into test3 values(1,'zhangsan','男'); select * from test03; show tables;
临时表只能在当前连接中有效,能正常增删改查,但是show tables是看不到的,并且换一个或者退出当前后临时表都会失效
十、创建外键约束
外键的定义:如果同一个属性字段x在表一中是主键,而在表二中不是主键,则字段x成为表二的外键,用来保证表数据的完整和一致性
添加主键
alter table 表名 add primary key(主键字段);
添加外键
alter table student add constraint FK_pro foreign key(pid) references profession(proid)
#foreign key 设置外键
# references 关联主键
#constraint FK_pro FK_pro是外键名称 constraint是命名这个关联主外键表的关联名称
插入数据时,先主再外 删除数据时,先外在主
创建两张表 (专业表 和学生表)给主表添加主键
设置外键并且主键和外键做关联