前面介绍了数据库表的基本操作。把常用的做一个汇总。时间久了,记不得完整的语法了,再打开一看,就清楚了。
先看注意事项:
在设计数据库的时候有以下注意点和技巧。
1,禁用存储过程、函数、触发器、外键约束,尽量依赖于业务层面做,这样能够具有良好的可扩展性。
2,允许为 NULL 的列,在非查询时会无法匹配,如 where status != 'FINISH',那么status 为 NULL 的行也无法匹配。
3,使用枚举或整数类型代替字符串类型。
4,ID 使用 BIGINT 即可,对应于 Java 中的 long 类型,足够使用。
5,对整数类型指定宽度,比如 INT(11)、BIGINT(20),并不影响存储大小,INT 依然使用 32 位(4 字节)存储空间,BIGINT 依然使用 64 位(8 字节)存储空间,宽度仅表示显示的长度。
6,避免使用 DECIMAL 和浮点数数据类型,可以使用 BIGINT 代替(浮点数乘以一个
倍数)。
7,数据库中的表最好带有创建和更新时间戳,以及所创建 / 修改行的用户标识,以审
计追踪数据的变动。
8,不要真的删除数据,可以给它们打上一个被删除的标记或者做版本化修改。
9,单表不要有太多字段,建议在 15 以内。
10,用整数类型而不是字符串存储 IP。
1,表操作
1,建表+注释
CREATE TABLE student(id INT PRIMARY KEY AUTO_INCREMENT COMMENT '学号',name VARCHAR(200) COMMENT '姓名',age INT COMMENT '年龄'
) COMMENT='学生表'
2,修改注释
-- 修改表注释-
ALTER TABLE student COMMENT '学生信息表';
3,修改表名
ALTER TABLE book RENAME TO books;
4,删除表格
DROP TABLE user;
5、约束
unique(唯一性)
not null
default(默认值以'单引号括起来)
comment 备注
primary key(主键,也必须是唯一性,后面加AUTO_INCREMENT可实现自增,删除某条记录再自增后,后面的条目主键值不会变化)
2,列的操作
- 查看列:desc 表名;
- 修改表名:alter table t_book rename to bbb;
- 添加列:alter table 表名 add column 列名 varchar(30);
- 删除列:alter table 表名 drop column 列名;
- 修改列名: alter table bbb change column oleColumn newColumn 属性;
- 修改列属性:alter table t_book modify name varchar(22);
1,增加列
1,增加列
ALTER TABLE open_transfer_link ADD COLUMN transfer_mod VARCHAR(20) COMMENT '多实例模式(serial 串行,multiInst并行)';
2,增加列在指定字段后面:after column
ALTER TABLE open_transfer_link ADD COLUMN transfer_mod VARCHAR(20) COMMENT '多实例模式(serial 串行,multiInst并行)' after next_staff_id;
3,增加列在第一列:first
ALTER TABLE open_transfer_link ADD COLUMN transfer_id int(8) COMMENT '转换标识' first;
2,修改列:
1,修改列名,属性和备注:
ALTER TABLE open_transfer_link
CHANGE COLUMN transfer_mod transfer_mode VARCHAR(30) COMMENT '流转模式';
PS:注意,如果有备注的,修改字段的时候,要带上备注!!!不然修改的时候,不带备注,备注就没有了。
2,修改字段的排列位置
1,修改字段为表的第一个字段
ALTER TABLE tb_dept1 MODIFY columnl VARCHAR(12) FIRST;
2,修改字段到表的指定列之后
ALTER TABLE tb_dept1 MODIFY column1 VARCHAR(12) AFTER 1ocation;
3,删除列
语法:
alter table 表名 drop column 列名;
ALTER TABLE open_transfer_link DROP COLUMN next_staff_id;
4,设置主键
alter table staff add primary key (id);
5,修改列为自增:
alter table func_menu_group
change func_menu_group_id func_menu_group_id
int not null auto_increment COMMONET '功能菜单组标识';
6,设置自增初始值
ALTER TABLE func_menu_group AUTO_INCREMENT = 100000;
3,索引操作:
1,添加索引:
1,添加PRIMARY KEY(主键索引)
ALTER TABLE table_name ADD PRIMARY KEY (columnName);
2,添加唯一性索引:add unique key
ALTER TABLE table_name ADD UNIQUE KEY NAME (columnName)
ALTER TABLE role_assign
ADD UNIQUE KEY uni_role_assign_key(role_id,target_type,target_id);
3,添加普通索引:INDEX
ALTER TABLE table_name ADD INDEX index_name (columnName);
4,添加全文索引:FULLTEXT
ALTER TABLE table_name ADD FULLTEXT (columnName);
2,修改索引:
没有直接修改索引的,需要先删除,再增加
ALTER TABLE role_assign DROP INDEX idx_role_assign_141,ADD INDEX idx_role_assign(target_id, target_type);
3,删除索引:
ALTER TABLE role_assign DROP INDEX uni_role_assign_key;
4,总结:
后面有遇到,再补充。把常用的ddl操作放一起,后面有忘记了,就可以直接查看。
上一篇:《mysql数据库表基本操作》
下一篇:《mysql 数据类型》