MySQL数据定义语言DDL

关键字

  • 创建:CREATE
  • 修改:ALTER
  • 删除:DROP

库的管理

库的创建

  • 语法
CREATE DATABASE 库名;
  • 创建students库
CREATE DATABASE students;
#更安全的做法
CREATE DATABASE IF NOT EXISTS students;

库的修改

  • 更改默认字符集
ALTER DATABASE students CHARACTER SET  gbk;

库的删除

  • 删除students库
DROP DATABASE students;
#更安全的做法
DROP DATABASE IF EXISTS students;

表的管理

表的创建

  • 语法
CREATE TABLE 表名(
    列名 类型
    ...
    列名 类型
    约束
);
  • 案例
#建立一个account表
CREATE TABLE account (
    account_number char(10),
    branch_name char(30)  NOT  NULL,
    balance  numeric(12.2),
    PRIMARY KEY (account_number),
    FOREIGN KEY (branch_name) 
    REFERENCES branch(branch_name), 
    CONSTRAINT chk_balance CHECK (balance >= 0 )
) ;

==不加约束默认值为NULL,任意值都可以为NULL==

表的修改

  • 修改列名

    • 语法
    ALTER TABLE 表名 CHANGE COLUMN(可忽略) 原列名 新列名 新类型;
    • 示例
    ALTER TABLE book CHANGE COLUMN publishdate pubdate DATETIME;
  • 修改列的类型或约束

    • 语法
    ALTER TABLE 表名 MODIFY 列名 新类型或约束;
    • 示例
    ALTER TABLE book MODIFY pubdate DATETIME;
  • 添加新列

    • 语法
    ALTER TABLE 表名 ADD COLUMN 新列名 类型;
    • 示例
    ALTER TABLE book ADD COLUMN author VARCHAR(20);
  • 删除列

    • 语法
    ALTER TABLE 表名 DROP COLUMN 列名;
    • 示例
    ALTER TABLE book DROP COLUMN author;
  • 修改表名

    • 语法
    ALTER TABLE 表名 RENAME TO 新表名;
    • 示例
    ALTER TABLE book RENAME TO books;

表的删除

DROP TABLE IF EXISTS 表名;

表的复制

  • 结构复制
#创建copy表,copy表和author表结构相同
CREATE TABLE copy LIKE author;
  • 完整复制
CREATE TABLE copy
SELECT * FROM author;

猜你喜欢

转载自www.cnblogs.com/redo19990701/p/11286720.html