数据库基础:数据定义语言
外观
数据定义语言 (DDL) 是一种调整数据库结构的方法。您可能过去使用过 Access 或 MySQL 等 GUI 创建过数据库。DDL 允许您从纯代码创建数据库,包括以下功能:
- 创建表:CREATE TABLE(创建表)
- 更改表结构:ALTER(修改)
- 删除表:DROP(删除)
要创建表,用户需要定义表名和每个属性,包括数据类型和长度。
CREATE TABLE Customer(CustomerID varchar(5), CustomerName varchar(255), CustomerAddress varchar(255), PRIMARY KEY (CustomerID));
支持的数据类型示例(取决于数据库)
数据类型 | 描述 |
---|---|
Character (n) | 固定长度 (n) 的字符字符串 |
Varchar (n) | 可变长度字符字符串,最大字段长度为 (n) |
Boolean | 真或假 |
Int | 整数的简称,表示整数 |
Decimal (p,s) | 十进制数,包括小数点前后的位数 |
Real | 任何最多包含 7 位小数的数字 |
Date | 格式为日、月、年 |
Time | 格式为时、分、秒 |
您需要了解它们的功能(如上所述),但只需要了解如何使用 CREATE TABLE 命令即可。让我们看看如何创建上面提到的 crooks 表。
CREATE TABLE crooks
(
ID INTEGER PRIMARY KEY,
NAME VARCHAR(16),
GENDER VARCHAR(6),
DOB DATE,
TOWN VARCHAR(20),
NUMSCARS INTEGER
)
问题 编写一个 DDL 语句来创建表 Customer(CustomerID, CustomerName, Address, Postcode, Email) 答案
CREATE TABLE customer (
CustomerID INTEGER PRIMARY KEY,
CustomerName VARCHAR(16),
Address VARCHAR(30),
Postcode VARCHAR(8),
Email VARCHAR(20)
)
|
SQL 中的 ALTER 语句无需手动访问表即可更改关系数据库中表的属性。
ALTER TABLE crooks ADD convictions INTEGER
ALTER TABLE crooks DROP COLUMN convictions
删除表就像投下一颗原子弹。它是不可逆的,通常不建议这样做!
DROP TABLE crooks
通过运行此代码行,表“crooks”将从数据库中删除,并且无法恢复,除非之前已创建备份。
主键可以通过 alter 语句在表创建后设置。
ALTER TABLE Persons
ADD PRIMARY KEY (id)
主键也可以在创建表时设置。
CREATE TABLE users
(
user_id int NOT NULL,
username varchar(255) NOT NULL,
password varchar(255) NOT NULL,
Address varchar(255),
PRIMARY KEY (user_id)
)
要在创建表时设置由两列组成的主键,您可以执行以下操作
CREATE TABLE users
(
user_id int NOT NULL,
username varchar(255) NOT NULL,
password varchar(255) NOT NULL,
Address varchar(255),
CONSTRAINT pk_UserId PRIMARY KEY (user_id,username)
)
其中约束名称为 UserId,表的属性为 user_id 和 username 列。
这也可以在表创建后完成。
ALTER TABLE users
ADD CONSTRAINT pk_UserID PRIMARY KEY (user_id,username)