Mysql DDL语句操作

此内容摘自 "mysql5.7从入门到精通"


  目录

1.创建表   2.主键约束   3.外键   4.使用非空约束   5.唯一约束  6.默认约束  7.主键自增

8.修改表名   9.修改某个字段的数据类型    10.修改字段名字   11.添加新字段    12.删除字段   13.删除表的外键约束


1.创建表

  表名不区分大小写,不能使用SQL关键字

    -- 语法                                        --例子
    CREATE TABLE 表名 (                           CREATE TABLE tb_emp (
        字段名1    数据类型  ,                         id    INT(10)  ,
        字段名2    数据类型  ,                         name   VARCHAR(20) ,
     );                                           );

2.主键约束

    1. 单字段主键

     一个表中只能有一个主键

    第一种直接在字段后面加primary key , 第二种在定义完列后加主键

-- 语法
字段名    数据类型    PRIMARY KEY 

-- 1                                     --2
CREATE TABLE tb_emp2(                    CREATE TABLE tb_emp2(
    id INT(11)  PRIMARY KEY ,                id INT(11)  ,
    name VARCHAR(20),                        name VARCHAR(20),
    salary  INT(10)                          salary  INT(10),
);                                           PRIMARY KEY(id)      
                                         );

  2.多字段联合主键

-- 语法
PRIMARY KEY (字段1,字段2,字段n)

--例子
CREATE TABLE tb_emp2(
    id INT(11)  ,
    name VARCHAR(20),
    salary  INT(10),
    PRIMARY KEY(id,name)      
);

3.外键

 外键首先他是一个表的字段,他可以不是主键,但必须对应另一个表的主键,

-- 语法
CONSTRAINT  外键名  FOREIGN KEY(字段1)  REFERENCES 表名(主键字段)

CREATE TABLE tb_emp4(
    id INT(11)  PRIMARY KEY ,
    name VARCHAR(20),
    salary  INT(10),
    CONSTRAINT  fk_name  FOREIGN KEY(name)  REFERENCES dept(id)
);

4.使用非空约束

-- 语法
字段名 数据类型 NOT NULL

-- 例子
CREATE TABLE tb_emp5(
    id INT(11)  PRIMARY KEY ,
    name VARCHAR(20) NOT NULL,
    salary  INT(10) NOT NULL,
);

5.唯一约束

 一个表中可以有多个唯一约束,且值可以为null

-- 语法            
字段名 数据类型 UNIQUE                   CONSTRAINT 约束名  UNIQUE (字段名)
   
-- 1                                     --2
CREATE TABLE tb_emp6(                    CREATE TABLE tb_emp7(
    id INT(11)  PRIMARY KEY ,                id INT(11)  PRIMARY KEY ,
    name VARCHAR(20) UNIQUE,                 name VARCHAR(20) ,
    salary  INT(10),                         alary  INT(10),
);                                           CONSTRAINT uq_name UNIQUE (name)
                                        );
    

6.默认约束

 如果新增一条数据时,没有指定该字段的值就会使用默认值

-- 语法
字段名 数据类型 DEFAULT 默认值

-- 例子
CREATE TABLE tb_emp5(
    id INT(11)  PRIMARY KEY ,
    name VARCHAR(20) DEFAULT '匿名用户',
);

7.主键自增

一个表中只能有一个字段使用auto_increment 约束

-- 语法
字段名 数据类型 AUTO_INCREMENT

--例子
CREATE TABLE tb_emp5(
    id INT(11)  PRIMARY KEY AUTO_INCREMENT ,
    name VARCHAR(20),
);

8.修改表名

其中TO 为选参数,可省略

-- 语法 
ALTER TABLE 旧表名 RENAME TO  新表名

--例子
ALTER TABLE tb_emp1 RENAME tb_emp111;

9.修改某个字段的数据类型

  以下是把name字段的类型改为int类型

-- 语法
ALTER TABLE 表名 MODIFY  字段名 数据类型

-- 例子 
ALTER TABLE tb_emp1 MODIFY name INT(20);

10.修改字段名字

如果不需要修改数据类型可以写成和原来一样的,但就是不能为空

-- 语法
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 数据类型

-- 例子
ALTER TABLE tb_emp2 CHANGE name emp_name VARCHAR(10);

11.添加新字段

-- 语法
ALTER TABLE 表名 ADD 新字段名 数据类型

-- 例子
ALTER TABLE dept ADD managerId INT(10);

12.删除字段

-- 语法 
ALTER TABLR 表名 DROP 字段名

--例子
ALTER TABLE dept DROP managerId;

13.删除表的外键约束

-- 语法
ALTER TABLE 表名 DROP FOREIGN KEY (外键约束名)

--例子
ALTER TABLE tb_emp4 DROP FOREIGN KEY (fk_name)

 

你可能感兴趣的:(数据库)