mysql 常见数据表操作

       前面介绍了数据库表的基本操作。把常用的做一个汇总。时间久了,记不得完整的语法了,再打开一看,就清楚了。

先看注意事项:

在设计数据库的时候有以下注意点和技巧。

        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 数据类型

  • 27
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天狼1222

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值