常用的DDL语句

本文深入讲解SQL中的数据定义语言(DDL),包括CREATE用于创建数据库、表等对象,ALTER用于修改对象,DROP用于删除对象。提供了丰富的语法示例,如创建数据库、表,修改表结构,删除表等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DDL

数据定义语言(Data Definition Language,DDL)是SQL语言集中负责数据结构定义与数据库对象定义的语言,由CREATEALTERDROP三个语法所组成,现在被纳入SQL指令中作为其中一个子集。

CREATE

CREATE 是负责数据库对象的建立,举凡数据库、数据表、数据库索引、预存程序、用户函数、触发程序或是用户自定类型等对象,都可以使用 CREATE 指令来建立,而为了各式数据库对象的不同,CREATE 有很多参数

创建数据库

语法格式

CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name
    [create_specification] ...

create_specification:
    [DEFAULT] CHARACTER SET [=] charset_name
  | [DEFAULT] COLLATE [=] collation_name

示例:

-- 创建school数据库,字符集为utf8
CREATE DATABASE school  CHARACTER SET = utf8;
创建表

语法格式

  CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
      (create_definition,...)
      [table_options]
      [partition_options]

  create_definition:
      col_name column_definition

  column_definition:
      data_type [NOT NULL | NULL] [DEFAULT default_value]
        [AUTO_INCREMENT] [UNIQUE [KEY]] [[PRIMARY] KEY]
        [COMMENT 'string']
      
  table_option:
      AUTO_INCREMENT [=] value
    | [DEFAULT] CHARACTER SET [=] charset_name
    | [DEFAULT] COLLATE [=] collation_name
    | ENGINE [=] engine_name

示例:

CREATE TABLE student (
    id INT NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT 'student id',
    name VARCHAR(20) NOT NULL COMMENT 'student name',
    age TINYINT UNSIGNED COMMENT 'student age',
    gender ENUM('M', 'F') NOT NULL DEFAULT 'M' COMMENT 'student gender',
    comtime DATETIME NOT NULL COMMENT 'Admission time'
)  CHARSET utf8 ENGINE=INNODB ;

DROP

DROP 则是删除数据库对象的指令,并且只需要指定要删除的数据库对象名称

删库

语法格式

DROP {DATABASE | SCHEMA} [IF EXISTS] db_name
删表

语法格式

DROP [TEMPORARY] TABLE [IF EXISTS]
    tbl_name [, tbl_name] ...
    [RESTRICT | CASCADE]

ALTER

ALTER 是负责数据库对象修改的指令,相较于 CREATE 需要定义完整的数据对象参数,ALTER 则是可依照要修改的幅度来决定使用的参数,参数有点多,下面列举常用的几种。

  • 修改表名
ALTER TABLE student RENAME stu;
  • 添加列和列定义
ALTER TABLE stu  ADD  age INT;
  • 添加多个列
ALTER TABLE stu ADD gender VARRCHA(20) , ADD  qq INT;
  • 表中的首列添加一列
ALTER TABLE stu ADD classid VARCHAR(20) FIRST;
  • 在age列后面添加一个telnum列
ALTER TABLE stu ADD telnum INT AFTER age;
  • 删除列及列定义
ALTER TABLE stu DROP qq;
  • 将id列的数据类型改为varchar类型
ALTER TABLE stu MODIFY id VARCHAR(20);
  • 将birthday列名字改为birth
ALTER  TABLE stu CHANGE birthday birth DATETIME;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值