MySQL DDL 数据定义语句SQL大全

一、库操作

连接数据库

mysql -h127.0.0.1 -uroot -p

1、创建数据库

create database test_db01;

2、查看数据库(只能查看当前账号有权限的库)

show databases;

3、选择数据库

use test_db01;

4、删除数据库

drop database test_db01;

二、表操作

1、创建表

1.1、基础创建

CREATE  [TEMPORARY]  TABLE  [IF NOT EXISTS] [database_name.] <table_name>
(<column_name>  <data_type>  [[not] null],)
  • 注:TEMPORARY:指明创建临时表
      IF NOT EXISTS:如果要创建的表已经存在,则不显示错误消息也不会执行创建逻辑
      database_name:数据库名
      table_name:表名
      column_name:列名
      data_type:数据类型

CREATE TABLE IF NOT EXISTS `test_db01`.`test_table01`  (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `nick_name` varchar(255) NULL COMMENT '昵称',
  PRIMARY KEY (`id`)
);

1.2、根据旧表创建新表

CREATE TABLE test_table02 LIKE test_table01;

1.3、根据旧表创建新表,并且复制旧表数据到新表

  • 方法一
# 第一步根据老表创建新表,这样创建会携带老表的索引信息,但是不会携带老表的自增序列
CREATE TABLE test_table02 LIKE test_table01;

# 将老表数据迁移到新表
INSERT INTO test_table02 SELECT * FROM test_table01 WHERE 1=1;
# 或者
INSERT INTO test_table02 (id, nick_name) SELECT id, nick_name FROM test_table01 WHERE 1=1;
  • 方法二(做数据备份时推荐)
CREATE TABLE test_table02 SELECT * FROM test_table01 WHERE 1=1;

不过这种方法的一个最不好的地方就是新表中没有了旧表的primary key、Extra(auto_increment)等属性需要自己用"alter"添加,而且容易搞错,这种方式比较适合做数据备份。

2、查看创建表的语句

SHOW CREATE TABLE test_table01;

3、更改表名

ALTER TABLE test_table01 RENAME test_table02;
ALTER TABLE test_table02 RENAME test_table01;

4 、删除表

DROP TABLE test_table01;

三、表字段操作

1、查看表字段定义

DESC test_table01;

2、增加表字段

2.1、普通增加表字段

在表末尾添加一个年龄字段

  • TINYINT (4) :字段为TINYINT类型长度4,NOT NULL:不能为空,DEFAULT 0 :默认值是0,COMMENT ‘年龄’ :描述是年龄
ALTER TABLE test_table01 ADD COLUMN age TINYINT (4) NOT NULL DEFAULT 0 COMMENT '年龄';

2.2、指定添加表字段在某个字段后面

  • TINYINT (4) :字段为TINYINT类型长度4,NOT NULL:不能为空,DEFAULT 0 :默认值是0,COMMENT ‘性别’ :描述是性别,AFTER nick_name :字段添加在nike_name字段后
ALTER TABLE test_table01 ADD COLUMN sex TINYINT (4) NOT NULL DEFAULT 0 COMMENT '性别' AFTER nick_name;

3、修改表字段

  • 修改字段描述有两种方式分别是使用change和modify,前者可以修改列名称后者不能,change需要些两次列名称

  • PS:要注意一个问题修改字段时必须携带上一个字段所有属性如:字段类型、是否能为空、默认值、描述等,如果没有携带则会被修改成默认值

3.1、修改列名(使用change)

修改列名时需要将之前列的信息都带上,比如我这里需要带字段类型、是否为空、默认值、描述。

ALTER TABLE test_table01 CHANGE age age_01 TINYINT (4) NOT NULL DEFAULT 0 COMMENT '年龄01';

3.2、修改表字段类型、是否能为空、默认值、描述(使用modify)

  • INT (4) :将字段类型修改成int 长度为4,NULL :可以为空,DEFAULT 1 :默认值为1,COMMENT ‘性别01’ :描述信息为性别01
ALTER TABLE test_table01 MODIFY sex INT (4) NULL DEFAULT 1 COMMENT '性别01';

4、删除表字段

ALTER TABLE test_table01 DROP COLUMN age;

猜你喜欢

转载自blog.csdn.net/weixin_44606481/article/details/132723794