目录
3.修改表(改表名/修改表注释/改字段/增删改主键/自增主键)
1.创建表对象(指定主键/指定编码)
(1)单主键并指定编码
create table log(
logid int(4) primary key not null auto_increment,
logtitle varchar(32) not null,
logcontent varchar(160) not null,
logtime datetime not null,
userip varchar(64) not null
) engine=innodb default charset=utf8;
(2)带联合主键
create table teste.hlq_test(
id int ,
name varchar(20) ,
class varchar(10),
constraint pk_test primary key (id ,name)) engine=innodb default charset=utf8;
2.查看表信息(查字段/查创建sql/查被锁否)
(1)查看表的字段信息
desc 表名;
(2)查看表的创建信息
show create table 表名;
(3)查看被锁的表
show OPEN TABLES where In_use > 0;
3.修改表(改表名/修改表注释/改字段/增删改主键/自增主键)
(1)修改表信息
修改表名:alter table test_a rename to sys_app;
修改表注释:alter table sys_application comment '系统信息表';
(2)增删改字段
修改列名MySQL: alter table bbb change nnnnn hh int;
修改列名SQLServer:exec sp_rename't_student.name','nn','column';
修改列名Oracle:alter table bbb rename column nnnnn to hh int;
修改列属性:alter table t_book modify name varchar(22);
修改字段类型和注释alter table tab1 modify column col2 int comment '应用的名称';
修改字段类型 alter table sys_application modify column app_name text;
设置字段允许为空 alter table sys_application modify column description varchar(255) null;
增加一个字段,设好数据类型,且不为空,添加注释
alert table sys_application add `url` varchar(255) not null comment '应用访问地址';
添加列为首列:alter table table_name add col_name int first;
添加列在某列后:alter table table_name add cl02 varchar(30) after col1;
删除列:alter table 表名 drop column 列名;
调整字段顺序 alter table t_app change gateway_id gateway_id int not null after aid ;
(3)增删改主键
删除主键 alter table table_name drop primary key ;
增加主键 alter table table_name add constraint pk_01 primary key(id);
增加主键 alter table t_app add aid int(5) not null ,add primary key (aid);
修改主键 方法是先删后加
(4)自增主键
自增主键优缺点:
数据库自动编号,速度快,而且是增量增长,按顺序存放,对于检索非常有利;
数字型,占用空间小,易排序,在程序中传递也方便;
如果通过非系统增加记录时,可以不用指定该字段,不用担心主键重复问题。
创建自增字段时,指定了AUTO_INCREMENT的列必须要建索引,不然会报错
create table t5 (id int auto_increment,name varchar(20) primary key,key(id));
设置auto_increment字段的初始值
ALETER TABLE table_name AUTO_INCREMENT=100000
修改为自增字段
alter table newcar change id id int(11) not null AUTO_INCREMENT;
Alter table tb change id id int(10);//删除自增长
增加自增主键 alter table t_app add aid int(5) not null auto_increment ,add primary key (aid);
修改为自增主键 alter table t_app modify column aid int(5) auto_increment ;
4.修改字符集
修改表字符集
alter table table_name convert to character set utf8;
修改表字段的字符集
ALTER TABLE logtest CHANGE title title VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci;
5.删除表&清空表&复制表
(1)删除表
删除表:DROP TABLE tbl_name;
或者是:DROP TABLE IF EXISTS tbl_name;
(2)清空表数据
delete from table1
truncate table table1
(3)复制表
只复制表结构及索引主键,不复制数据
CREATE TABLE table2 LIKE table1;
只复制表结构和数据,不复制索引主键
create table tb1 as select * from tb2 where 1<0;