当前位置:   article > 正文

Mysql,创建/删除表、添加表字段、修改表字段、添加索引等常用语句。_mysql创建表sql语句

mysql创建表sql语句

   以下方 user 表为例,讲解如何Mysql创建表语句、添加表字段、修改表字段、添加索引等常用的SQL语句。

   出于编写本篇文章的考虑,使用下方建表语句创建的  user表 有很多不合理的地方,例如:teacher_id 是 varchar类型而非 bigint类型、 '创建时间' 有2个字段 等。 大家在自己公司数据库环境中,根据自己的实际需求创建对应的表,不要把这张建表语句直接复制、粘贴使用。

一、操作数据库表:

1、创建表SQL语句

  1. -- 创建SQL表语句 .
  2. CREATE TABLE user (
  3. id bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID, 主键.',
  4. is_deleted char(1) DEFAULT 'n' COMMENT '是否删除',
  5. creator varchar(255) DEFAULT NULL,
  6. gmt_create datetime DEFAULT NULL COMMENT '创建时间',
  7. modifier varchar(255) DEFAULT NULL COMMENT '修改人',
  8. gmt_modified datetime DEFAULT NULL COMMENT '修改时间',
  9. name varchar(100) DEFAULT NULL COMMENT '姓名',
  10. age int(3) DEFAULT NULL COMMENT '年龄',
  11. create_date datetime DEFAULT NULL COMMENT '创建时间',
  12. teacher_id varchar(20) DEFAULT NULL COMMENT '教师表ID',
  13. PRIMARY KEY (id)
  14. ) ENGINE=InnoDB AUTO_INCREMENT=1015 DEFAULT CHARSET=utf8mb4 COMMENT='用户表';

2、删除表语句

  1. -- 删除表
  2. DROP TABLE user;

3、给表添加字段

  1. -- 向 table_name 表中添加字段
  2. ALTER TABLE table_name ADD COLUMN column_name VARCHAR(100) DEFAULT NULL COMMENT '新加字段' AFTER old_column;
  3. -- 给 user表 中添加 'age' 字段,字段默认值为:NULL,在 'name' 字段后.
  4. ALTER TABLE user ADD COLUMN age int(3) DEFAULT NULL COMMENT '年龄' AFTER name;
  5. -- 给 user表 中添加 'sex' 字段,字段默认值为:1,在 'age' 字段后.
  6. ALTER TABLE user ADD COLUMN sex int(1) DEFAULT 1 COMMENT '性别:1-男,0-女.' AFTER age;

4、修改表字段:字段类型、字段注释信息、给表字段添加默认值.

  1. -- 将 user 表中 teacher_id 字段修改成 bigint 类型.
  2. ALTER TABLE user MODIFY teacher_id BIGINT(20) COMMENT '教师ID';
  3. -- 修改 user表中 name 字段的长度.
  4. ALTER TABLE user MODIFY name varchar(256) COMMENT '姓名_注释信息.';
  5. -- 给 user表中 creator 设置默认值
  6. -- 推荐使用
  7. ALTER TABLE `user` MODIFY creator varchar(255) DEFAULT 'system' COMMENT '创建人';
  8. -- ALTER TABLE `user` ALTER COLUMN creator SET DEFAULT 'system22'; -- 不建议使用
  9. -- ALTER TABLE `user` MODIFY creator varchar(255) COMMENT '创建人22'; -- 修改注释信息
  10. -- 给 user表中 gmt_create 设置默认值
  11. ALTER TABLE user MODIFY gmt_create datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间';
  12. -- 给 user表中 gmt_modified 设置默认值,更新操作时设置默认值.
  13. ALTER TABLE user MODIFY gmt_modified datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间';

5、删除表字段

  1. -- 删除 user表 中1个字段.
  2. ALTER TABLE `user` DROP COLUMN age;
  3. -- 删除 user表 中2个字段.
  4. ALTER TABLE `user` DROP COLUMN age, DROP COLUMN sex;

6、给表添加索引

  1. -- 给 user表 添加索引
  2. ALTER TABLE user ADD INDEX idx_gmt_modified_id (gmt_modified, id); -- 2023/05/25

二、对数据库表中的数据进行操作.

1、新增表数据

  1. INSERT INTO user(id, is_deleted, creator, gmt_create, modifier, gmt_modified, name, age, create_date, teacher_id) VALUES (1, 'n', '柳乐儿', '2023-06-22 11:31:38', '牛彪彪', '2023-06-21 11:31:55', '张三', 20, '2020-04-02 09:54:23', '16');
  2. INSERT INTO user(id, is_deleted, creator, gmt_create, modifier, gmt_modified, name, age, create_date, teacher_id) VALUES (2, 'n', '马三', '2023-06-14 11:32:05', NULL, NULL, '张三年', 22, '2020-01-05 11:20:00', NULL);
  3. INSERT INTO user(id, is_deleted, creator, gmt_create, modifier, gmt_modified, name, age, create_date, teacher_id) VALUES (4, 'n', NULL, NULL, '李思思', '2023-06-17 11:32:18', '李四', 25, '2019-10-22 16:27:03', NULL);
  4. INSERT INTO user(id, is_deleted, creator, gmt_create, modifier, gmt_modified, name, age, create_date, teacher_id) VALUES (1014, 'n', NULL, NULL, NULL, NULL, '二狗', 22, '2022-10-31 13:38:01', NULL);
  5. INSERT INTO user(id, is_deleted, creator, gmt_create, modifier, gmt_modified, name, age, create_date, teacher_id) VALUES (1015, 'n', NULL, NULL, NULL, NULL, '大队长', 24, '2023-06-29 11:33:01', '12');

2、查询表数据

  1. -- 简单查询
  2. SELECT
  3. u.*
  4. FROM user u
  5. WHERE
  6. 1 = 1
  7. AND u.is_deleted = 'n'
  8. AND u.`name` LIKE CONCAT('%', '三', '%')
  9. LIMIT 100;

3、更新表数据

  1. -- 更新表多个字段
  2. UPDATE user u
  3. SET
  4. u.creator = '王大锤',
  5. u.gmt_create = '2021-02-15 08:22:54',
  6. u.teacher_id = '101'
  7. WHERE
  8. u.id = 4;

4、删除表数据

  1. -- 删除表数据,需要说明的是:在删除表数据的SQL中,表不能起别名,否则SQL语句无效。
  2. DELETE FROM user
  3. WHERE
  4. id = 4
  5. AND teacher_id = 101;

5、清空表数据

     user表中ID是自动增长,清空表后,ID将会从1重新开始增长。

  1. -- 清空表
  2. TRUNCATE TABLE user;

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/611249
推荐阅读
相关标签
  

闽ICP备14008679号