跳转到内容

数据库基础:数据定义语言

来自 Wikibooks,开放世界中的开放书籍

试卷 2 - ⇑ 数据库基础 ⇑

← DELETE(删除) 数据定义语言 客户端服务器数据库 →


数据定义语言 (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(创建)

[编辑 | 编辑源代码]

您需要了解它们的功能(如上所述),但只需要了解如何使用 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)
)

ALTER(修改)

[编辑 | 编辑源代码]

SQL 中的 ALTER 语句无需手动访问表即可更改关系数据库中表的属性。

ALTER TABLE crooks ADD convictions INTEGER
ALTER TABLE crooks DROP COLUMN convictions

DROP(删除)

[编辑 | 编辑源代码]

删除表就像投下一颗原子弹。它是不可逆的,通常不建议这样做!

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)

设置外键

[编辑 | 编辑源代码]
华夏公益教科书