一、定义:
- DDL is Data Definition Language statements. Some examples:数据定义语言,用于定义和管理 SQL 数据库中的所有对象的语言
二、相关语句
- CREATE - to create objects in the database 创建
- ALTER - alters the structure of the database 修改
- DROP - delete objects from the database 删除
- TRUNCATE -删除
truncate 和 delete的区别是:
delete删除数据,不释放表空间;(DML语言)
truncate删除数据,释放表空间;
以上两个只能删除数据,不能删除表结构
drop可以删除表结构,也会释放表空间
三、例子
- 创建pos表(两种):
- 1、create table pos( name varchar(11) , age int … … ) ;
- 2、create table pos as ( select * from td_sale ) ;
- 删除pos表:
- 1、truncate table pos ;(把表drop 然后再重新建表 )
- 2、drop table pos ;(不能回滚,可以闪回)
- 修改表中的字段( 添加字段 ,字段属性修改、 删除字段 、字段名更改 ):
- 1、alter table pos add ( name varchar(10) , age int … … ) ;(可以一次性在表中添加多个字段)
- 2、alter table pos modify( name int , age varchar(10) … … ) ; (可以一次性修改表中的多个字段属性)
- 3、alter table pos drop (name , age … … ) ;(可以一次性修改表中的多个字段属性)
- 4、alter table pos rename age to hight ;
四、字段属性之一(数据类型)
- 1.
五、字段属性之二(约束)
- not null : 不为空
- primary key = unique + not null
- foreign key :
- check :
- unique :(可空)
例子:
CREATE TABLE Orders
(
Id_O int NOT NULL PRIMARY KEY,
OrderNo int NOT NULL,
Id_P int FOREIGN KEY REFERENCES Persons(Id_P)
)这个称为子表,persons称为父表。
将Persons(Id_P)中的Id_P添加外键约束,插入orders表中字段Id_P的值必须在父表Persons中存在。否则不予插入。
FOREIGN KEY: 在子表中,定义了一个表级的约束
REFERENCES: 指定表和父表中的列
ON DELETE CASCADE: 当删除父表时,级联删除子表记录
ON DELETE SET NULL: 将子表的相关依赖记录的外键值置为nullcheck例子:
CREATE TABLE Persons
(
Id_P int NOT NULL CHECK (Id_P>0),
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
如果需要命名 CHECK 约束,以及为多个列定义 CHECK 约束,请使用下面的 SQL 语法:
CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT chk_Person CHECK (Id_P>0 AND City=’Sandnes’)
)