15 SQL语言基础之5.1 DDL与DML
在本章中,我们将深入探讨SQL(结构化查询语言)中的两大主要部分:数据定义语言(DDL)和数据操纵语言(DML)。理解这两者是掌握PostgreSQL数据库的基础。通过实际案例和代码示例,我们将帮助您更好地理解它们的用法和应用场景。
数据定义语言(DDL)
数据定义语言(DDL)是用来定义和管理数据库结构的语言。它包括创建、修改和删除数据库对象(如表、索引和视图)的命令。常用的DDL命令包括:
CREATE
ALTER
DROP
创建表
CREATE TABLE
命令用于创建新表。例如,假设我们需要创建一个名为students
的表,以存储学生的基本信息。可以使用以下SQL语句:
CREATE TABLE students (
id SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL,
age INT CHECK (age > 0),
enrollment_date DATE DEFAULT CURRENT_DATE
);
在这个示例中:
id
是一个自增的主键。name
是一个不可为空的字符串,最多允许100个字符。age
是一个整型,并且我们加了CHECK
约束,确保年龄大于0。enrollment_date
的默认值是当前日期。
修改表
如果需要修改表的结构,可以使用ALTER TABLE
命令。比如,我们决定为学生表添加一个email
字段,可以执行以下命令:
ALTER TABLE students
ADD COLUMN email VARCHAR(255);
这个命令在students
表中新增了一列email
,其数据类型为VARCHAR(255)
。
删除表
当我们不再需要某个表时,可以使用DROP TABLE
命令将其删除。注意,删除表将会丢失表中的所有数据和结构:
DROP TABLE students;
数据操纵语言(DML)
数据操纵语言(DML)是用来操作数据内容的语言。它允许您对数据库中的数据进行查询、插入、更新和删除等操作。常用的DML命令包括:
SELECT
INSERT
UPDATE
DELETE
查询数据
SELECT
命令用于从表中查询数据。例如,要获取students
表中所有学生的姓名和年龄,可以使用以下SQL语句:
SELECT name, age FROM students;
这个命令将返回students
表中所有学生的姓名和年龄。
插入数据
使用INSERT
命令将新的记录插入表中。例如,我们要将一名新学生的信息加入students
表,可以使用以下SQL语句:
INSERT INTO students (name, age, email)
VALUES ('Alice', 20, 'alice@example.com');
这条语句将新的学生记录插入到students
表中。
更新数据
UPDATE
命令用于修改表中的现有记录。例如,如果我们需要将名为Alice
的学生的年龄更新为21岁,可以执行以下命令:
UPDATE students
SET age = 21
WHERE name = 'Alice';
这个命令更新了students
表中name
为Alice
的记录。
删除数据
DELETE
命令用于从表中删除特定记录。例如,如果我们想删除名为Alice
的学生,可以使用以下SQL命令:
DELETE FROM students
WHERE name = 'Alice';
通过上述命令,我们将会删除符合条件的记录。
小结
在本节中,我们对DDL
和DML
有了一个全面的了解。DDL
使我们能够定义和修改数据库的结构,而DML
则让我们能够灵活地操作和维护数据。这两者的紧密结合使得我们能够有效地管理PostgreSQL数据库。
接下来,我们将深入数据类型,这在构建复杂的数据库设计时极为重要。请继续关注接下来的内容,学习如何根据需求选择合适的数据类型。