2. DDL数据定义语言

DDL数据定义语言

数据库管理

  • 查看
    show databases; show create database 数据库名称

  • 创建 create
    database 库名

  • 选择使用数据库
    use 库名

  • 修改数据库编码
    alter database 数据库名称 character set 编码格式
  • 删除数据库 drop database 库名

数据表管理

  • 查看当前数据库所有表
    SHOW TABLES

  • 查看创建好的表
    show create table 表名

  • 查看表结构
    DESC 表名

  • 创建
    CREATE TABLE 表名(字段名,字段类型,[约束条件])

  • 字段类型
    int(n):n位整数
    float(n,m):n位数字,其中m位小数,默认float(10,2)
    decimal(n,m):n位数字,其中m位小数,适合精度较高数据存储,默认decimal(10,0)
    char(n):固定长度字符串,默认长度为1
    varchar(n):可变长度字符串,必须指定长度
    text:长文本字符串,不可指定长度
    date:日期型,yyyy-mm-dd
    time:时间型,hh:mm:ss
    datetime:yyyy-mm-dd hh:mm:ss

约束条件

定义

在表上强制执行的数据检验规则,用于保证数据完整和准确,主要对空值和重复值进行约束

常用约束条件

  • PRIMARY KEY 主键约束
    每个表只有1个主键
    主键值必须非空不重复
    可设置单字段主键&多字段联合主键
  • NOT NULL非空约束,不可为空
  • UNIQUE唯一约束,不可重复
    指定字段取值不能重复,可以为空,但只可出现一个空值
  • DEFAULT默认约束,默认值
  • FOREIGN KEY外键约束
    在1张表中执行数据插入,更新,删除时,DBMS会跟另一张表进行对照
    某表某字段依赖于另一表某字段
    每个外键值和另一表主键值对应,主键所在表为主表,外键所在表为从表
  • 标识列AUTO_INCREMENT自增
    指定字段值自动生成,默认从1开始,每增加一条记录,该字段取值增长1
    仅适用于整数,配合键一起使用,每个表至多一个

主键和唯一的区别
主键不允许空值,唯一可以有1个空值
一个表中只能有1个主键,唯一可以有多个

添加约束

  • 添加主键约束
    CREATE TABLE 表名(字段名1,字段类型1,PRIMARY KEY,...,字段名n,字段类型n)
    CREATE TABLE 表名(字段名1,字段类型1,......字段名n,字段类型n)constraint [主键约束名 PRIMARY KEY](字段名1[,字段名2,...字段名n]
  • 添加非空约束
    CREATE TABLE 表名(字段名1,字段类型1,NOT NULL,...,字段名n,字段类型n)
  • 添加唯一约束
    CREATE TABLE 表名(字段名1,字段类型1,UNIQUE,...,字段名n,字段类型n)
    CREATE TABLE 表名(字段名1,字段类型1,......字段名n,字段类型n)constraint [唯一约束名 UNIQUE](字段名1[,字段名2,...字段名n])
  • 添加默认约束
    CREATE TABLE 表名(字段名1,字段类型1,DEFAULT value,...,字段名n,字段类型n)
  • 添加外键约束
    CREATE TABLE 表名(字段名1,字段类型1,......字段名n,字段类型n constraint [外键约束名] FOREIGN KEY(字段名)reference 主表 (主键字段))

复制

仅复制表结构
CREATE TABLE 表名 LIKE 旧表名
复制数据+结构
CREATE TABLE 表名 select*from 旧表名

修改

  • 修改表名
    ALTER TABLE 表名1 rename 表名2

  • 修改字段名
    ALTER TABLE 表名 change 字段名1 字段名2 字段类型 [约束条件]

  • 修改字段类型
    ALTER TABLE 表名 modify 字段名 字段类型

  • 修改字段排列位置
    ALTER TABLE 表名 modify 字段名 字段类型 after 某字段

  • 添加字段
    ALTER TABLE 表名 add 字段名 字段类型 [位置(first/after 某字段),没有位置默认最后一行]

删除

  • 删除字段
    ALTER TABLE 表名 drop 字段名

  • 删除数据表
    drop table 表名 if exists

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容