MySQL简单笔记二之DDL


学习要自己思考,举一反三,保持好奇心(比如我在这里这么干会怎么样). 
# 系列链接 [MySQL简单笔记一](https://pengxiandyou.github.io/2019/08/22/MySQL简单笔记一/)

MySQL简单笔记二之DDL

MySQL简单学习笔记三之DMl和DQL

MySQL语法的Oracle练习表分享

一 数据库

  1. 创建数据库

    • CREATE DATABASE db2;
    • 不存在就创建 CREATE DATABAS IF NOT EXISTS db2;
  2. 删除数据库

    • DROP DATABASE db2;
    • 存在就删 DROP DATABASE IF EXISTS db2;

二 表

  1. 创建表 可以使用``(Tab上面的键)避免关键字冲突 NAME也可以创建

    1
    2
    3
    4
    5
    CREATE TABLE stu(
    id INT,
    `name` VARCHAR(10),
    age INT
    );
  2. 删除表 DROP TABLE stu;

  3. 修改表

    1. 添加列

      1
      2
      3
      4
      ALTER TABLE stu ADD(
      address VARCHAR(10),
      email VARCHAR(20)
      );
    2. 修改列类型 ALTER TABLE stu MODIFY email VARCHAR(50);

    3. 修改列名 ALTER TABLE stu CHANGE address addr VARCHAR(50);

    4. 删除列 ALTER TABLE stu DROP email;

    5. 修改表名 ALTER TABLE stu RENAME TO student;

三 约束

  1. 主键约束

    1. CREATE TABLE t1(
      id INT PRIMARY KEY,
      NAME VARCHAR(10)
      );
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12

      2. 添加主键 `ALTER TABLE t1 ADD PRIMARY KEY(id);`

      3. 删除主键 `ALTER TABLE t1 DROP PRIMARY KEY;`

      4. 自动增长

      ```mysql
      CREATE TABLE t1(
      id INT PRIMARY KEY AUTO_INCREMENT,
      NAME VARCHAR(10)
      );
    2. 修改让自动增长 ALTER TABLE t1 CHANGE id id INT AUTO_INCREMENT;

    3. 修改不让自动增长 ALTER TABLE t1 CHANGE id id INT;

  2. 非空约束

    1. CREATE TABLE t1(
      id INT PRIMARY KEY,
      NAME VARCHAR(10) NOT NULL
      );
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10

      2. 修改 仿照修改自动增长

      3. 唯一键约束

      1. ```
      CREATE TABLE t1(
      id INT PRIMARY KEY,
      NAME VARCHAR(10) UNIQUE
      );
    2. 删除唯一键 ALTER TABLE t1 DROP INDEX NAME;

    3. 修改表,创建唯一键 索引 ALTER TABLE t1 ADD CONSTRAINT uq_name UNIQUE(NAME);

  3. 外键约束

    1. -- 命名 fk_子表名_列名
      --      fk_主表名_子表名_列名
      CREATE TABLE dep(
      did INT PRIMARY KEY,
      dname VARCHAR(10)
      );
      CREATE TABLE emp(
      eid INT PRIMARY KEY,
      ename VARCHAR(10),
      did INT,
      CONSTRAINT fk_dep_emp_did FOREIGN KEY(did) REFERENCES dep(did)
      );
      
    2. 删除外键 ALTER TABLE emp DROP FOREIGN KEY fk_dep_emp_did;

    3. 添加外键 ALTER TABLE emp ADD CONSTRAINT fk_dep_emp_did FOREIGN KEY(did) REFERENCES dep(did);