一、创建表
1.1 建表语句
语法
CREATE TABLE table_name (column_name column_type);示例
CREATETABLEIFNOTEXISTS`wno704_tbl`(`id`INTUNSIGNEDAUTO_INCREMENT,`title`VARCHAR(100)NOTNULL,`author`VARCHAR(40)NOTNULL,`date`DATE,PRIMARYKEY(`id`))ENGINE=InnoDBDEFAULTCHARSET=utf8 ROW_FORMAT=DYNAMICCOMMENT='人员';实例解析:
1.如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据库时如果输入该字段的数据为NULL ,就会报错。
2.AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。
3.PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。
4.ENGINE 设置存储引擎,CHARSET 设置编码。
二、查看操作
2.1 查看表名称
show tables;2.2 查看表结构
desc tablename;2.3 查看表详细结构语句
show create table tablename;三、表字段操作
3.1 添加字段
语法
ALTER TABLE tb_name ADD [ COLUMN ] 新字段名数据类型 [约束条件] [FIRST | AFTER 已有字段名];示例
ALTER TABLE `wno704_tbl` ADD COLUMN `status` INT FIRST;3.2 修改字段
语法
ALTER TABLE tb_name CHANGE [COLUMN] 原字段名新字段名数据类型 [约束条件]; ALTER TABLE tb_name ALTER [COLUMN] 字段名 {SET | DROP} DEFAULT; ALTER TABLE tb_name MODIFY [COLUMN] 字段名数据类型 [约束条件] [FIRST | AFTER 已有字段名];示例
ALTER TABLE `wno704_tbl` CHANGE COLUMN `status` `flag` INT; ALTER TABLE `wno704_tbl` ALTER COLUMN `status` SET DEFAULT 0; ALTER TABLE `wno704_tbl` MODIFY COLUMN `status` INT AFTER `date`;3.3 删除字段
语法
ALTER TABLE tb_name DROP [COLUMN] 字段名;示例
ALTER TABLE `wno704_tbl` DROP COLUMN `flag`;四、表操作
4.1 重命名表
语法
ALTER TABLE 原表名 RENAME [TO] 新表名; RENAME TABLE 原表名1 TO 新表名1 [, 原表名2 TO 新表名2] ... ...;示例
ALTER TABLE `wno704_tbl` RENAME TO `wno704_tb`; RENAME TABLE `wno704_tb` TO `wno704_tbl`;4.2 删除表
语法
DROP TABLE [IF EXISTS] 表1 [, 表2]...;示例
DROP TABLE IF EXISTS `wno704_tbl`;4.3 insert into select
语法
insert into TABLE 表1 ([COLUMN]) select [COLUMN] from 表2;示例
insert into total_index_td(date,orgid,type,num,update_time) select date_format(now(), '%Y-%m') date,p.orgid,15 type,0 num,now() update_time from entry_pianquzb_report p where p.attr = 2 and p.delflag = 0 and not exists (select 1 from total_index_td q where q.orgid = p.orgid and q.type = 15);4.4 注解分析
SELECT TABLE_NAME,COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH, IS_NULLABLE , COLUMN_COMMENT FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'kdptdb' and TABLE_NAME = 'entry_pianquzb_report'; ALTER TABLE kdptdb.entry_pianquzb_report MODIFY COLUMN latn int COMMENT '地市';4.5 批量注解增加
SELECTTABLE_SCHEMA,TABLE_NAME,COLUMN_NAME,DATA_TYPE,CHARACTER_MAXIMUM_LENGTH,IS_NULLABLE,COLUMN_COMMENT,FLOOR(RAND()*100)+1asrand,CONCAT('ALTER TABLE ',TABLE_NAME,' MODIFY COLUMN ',COLUMN_NAME,' ',(casewhenCHARACTER_MAXIMUM_LENGTHisnullthenDATA_TYPEelseconcat(DATA_TYPE,'(',CHARACTER_MAXIMUM_LENGTH,')')end),' COMMENT ''',(casewhencolumn_name='id'then'主键'whencolumn_namelike'%ids%'then'序列'whencolumn_namelike'%id%'then'编码'whencolumn_namelike'%name%'then'名称'whencolumn_namelike'%create_by%'then'创建人'whencolumn_namelike'%create_date%'then'创建时间'whencolumn_namelike'%update_by%'then'更新人'whencolumn_namelike'%update_date%'then'更新时间'whencolumn_namelike'%del_flag%'then'删除标识'whencolumn_namelike'%email%'then'邮件'whencolumn_namelike'%phone%'then'电话'whencolumn_namelike'%remark%'then'备注'whencolumn_namelike'%extend%'then'扩展'whencolumn_namelike'%time%'then'时间'else'1-其他字段'end),''';')sqllFROMINFORMATION_SCHEMA.COLUMNSWHERETABLE_SCHEMAin('ofm_main_db')andCOLUMN_COMMENT=''