本篇博客,用于自用。如果能够帮到其他小伙伴,那就更好了。
以如下User表为例,讲解Mysql数据库常用的命令。
#创建数据库
CREATE SCHEMA `mybatis_plus` DEFAULT CHARACTER SET utf8;
#创建用户表
CREATE TABLE user (
id BIGINT(20) PRIMARY KEY NOT NULL COMMENT '主键',
name VARCHAR(30) DEFAULT NULL COMMENT '姓名',
age INT(11) DEFAULT NULL COMMENT '年龄',
email VARCHAR(50) DEFAULT NULL COMMENT '邮箱',
manager_id BIGINT(20) DEFAULT NULL COMMENT '直属上级id',
create_time DATETIME DEFAULT NULL COMMENT '创建时间',
CONSTRAINT manager_fk FOREIGN KEY (manager_id) REFERENCES user (id)
) ENGINE=INNODB CHARSET=UTF8;
#初始化数据:
INSERT INTO user (id, name, age, email, manager_id , create_time)
VALUES (1087982257332887553, '大boss', 40, '[email protected]', NULL, '2019-01-11 14:20:20'),
(1088248166370832385, '王天风', 25, '[email protected]', 1087982257332887553, '2019-02-05 11:12:22'),
(1088250446457389058, '李艺伟', 28, '[email protected]', 1088248166370832385, '2019-02-14 08:31:16'),
(1094590409767661570, '张雨琪', 31, '[email protected]', 1088248166370832385, '2019-01-14 09:15:15'),
(1094592041087729666, '刘红雨', 32, '[email protected]', 1088248166370832385, '2019-01-14 09:48:16');
以上述表为例,讲解Mysql中常用的语句。
-- 建表语句1,缺陷严重,不推荐。创建的user表或许存在多余的字段!
CREATE TABLE test_user(id bigint(20), name varchar(30),
age int(4), email varchar(50),
manager_id bigint(20), create_time datetime)
AS
SELECT id, name, age, email, manager_id, create_time
FROM user;
-- 建表语句2,有部分缺陷,定义主键、外键等SQL语句丢失.
CREATE TABLE mp_user AS
SELECT id AS user_id, name AS real_name, age,
email, manager_id, create_time
FROM user;
-- 给表重命名
ALTER TABLE `user` RENAME TO mp_user;
-- 给表字段进行重命名
ALTER TABLE mp_user CHANGE name real_name VARCHAR(30);
-- 删除列
ALTER TABLE user DROP COLUMN name;
-- 增加列
-- Mysql5.6及以上版本可以为datetime类型字段设置‘CURRENT_TIMESTAMP’默认值
ALTER TABLE user ADD COLUMN update_date datetime DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间';
ALTER TABLE user ADD COLUMN update_date datetime DEFAULT NULL COMMENT '更新时间';
ALTER TABLE user ADD COLUMN size TINYINT NOT NULL DEFAULT '0' COMMENT '尺寸';
-- 修改表注释
ALTER TABLE user COMMENT '用户表';
-- 修改列注释
ALTER TABLE user MODIFY COLUMN update_date datetime COMMENT '更新时间2';
-- 改变列的类型
ALTER TABLE user CHANGE size size BIGINT(20) DEFAULT NULL;
参考文章: CREATE TABLE 表名 AS SELECT 语句
[linux][mysql] 命令更改表结构:添加、删除、修改字段、调整字段顺序
将Oracle数据库时间字段转成Mysql数据库时间字段