数据定义语言(DDL)

数据定义语言(DDL)

1.概述
  • 一种计算机语言,用于描述和定义数据库中的数据结构、模式和元数据。
  • 可以定义和控制数据库的结构和组织方式,使得数据能够被有效地存储、访问和管理。
2.管理对象
  • 管理数据库
  • 管理表
  • 管理视图、存储过程、函数、触发器等
3.管理操作
  • 创建:create
  • 修改:alter
  • 删除:drop
4.查看数据库信息常用语句
  • 查看有哪些数据库 :show databases;
  • 查看数据库创建语句:show create database xxx \g;
  • 查看建表语句:show table database xxx \g;
  • 查看当前使用数据库:select database();
  • 查看表字段信息:desc xxx;
  • 查看存储引擎:show engines;

管理数据库

1.创建数据库create
  • 语法:create database [if not exists] 库名

  • 注意:用户需要有创建数据的权限。

  • 示例:创建cake数据库

    # 使用默认字符集
    create database cake;
    
    #使用指定字符集
    create database cake character set 'utf8mb4';
    
    # 避免创建数据库失败并指定字符集(推荐)
    create database if not exists cake character set 'utf8mb4';
    
2.管理数据库
  • 主要是查看数据库和表的信息。

  • 示例

    # 查看当前DBMS中有哪些数据库
    show databases;
    
    #切换数据库
    use northwind;
    
    # 查看数据库有那些表
    show tables;
    
    #查看当前数据库
    select database();
    
    #查看其他数据库有哪些表
    show tables from northwind;
    
3.修改数据库alter
  • 很少使用,特别是在有数据的情况下。

  • 刚创建好数据库,在没有数据的情况下,才会修改数据库。

  • 如果需要修改数据库的名字,需要先删除数据库,再重新创建数据库。

  • 示例:修改数据库cake的字符集。

    #修改数据库的字符集
    alter database cake character set 'utf8mb4';
    
4.删除数据库drop
  • 删除数据库操作时,要注意不要删掉系统库。

  • 示例:删除cake数据库

    #直接删除
    drop database cake;
    
    #先判断数据库是否存在再删除
    drop database if exists cake;
    

管理表

1.创建表create
  • 语法:

    create table 表名(
        列名 列的类型[约束] [默认值],
        ...
        列名 列的类型[(长度) 约束]
    );
    
  • 用户需要有创建表的权限。

  • 使用示例:

    • 从零开始创建,使用默认字符集

      # 创建cake_tbl表,字段有蛋糕名称,蛋糕编号和上架日期
      create table cake_tbl(
        id int,
        name varchar(20),
        sale_date date
      );
      
    • 基于现有的表创建,并导入数据

      #创建员工表emp,并从northwind库的employees表中导入数据
      create table cake.emp
      as
      select employee_id, first_name, salary
      from northwind.employees
      
2.修改表alter
  • 语法:alter table 表名 add|drop|modify|change column 列名 [列类型 约束];

  • 示例:

    • 添加新字段

      # 默认添加到表中最后一列
      alter table cake.emp
      add column hire_date date;
      
      #在第一列添加字段
      alter table cake.emp
      add column phone varchar(20) first;
      
      #在某列后添加字段
      alter table cake.emp2
      add column email varchar(20) after salary;
      
    • 修改列名

      # 修改字段名
      alter table cake.emp
      change column employee_id id int(6);
      
      # 修改字段名和长度
      alter table cake.emp
      change column email mail varchar(30);
      
    • 修改字段的数据类型、长度、默认值

      alter table cake.emp
      modify column first_name varchar(25);
      
      alter table cake.emp
      modify column first_name varchar(35) default 'abc';
      
    • 删除列

      alter table cake.emp
      drop column mail;
      
    • 修改表名

      # 方式一:(推荐)
      rename table cake.emp to cake.emp1;
      
      # 方式二:
      alter table cake.emp1 rename to cake.emp;
      
3.删除表drop
  • 删除表结构和表中的数据,释放表空间,但是不能回滚

  • 示例

    drop table if exists cake.emp2;
    
4.清空表truncate/delete
  • truncate 不支持回滚,速度快,操作风险大。

    truncate table cake.emp;
    
  • delete 支持回滚

    delete from cake.emp;
    

唯有晨光从容,没有疑问,新鲜如初。 ——声音碎片《陌生城市的早晨》

你可能感兴趣的:(数据库,数据库,sql,mysql,开发语言)