SQL语言1974年由Boyce和Chamberlin提出,并首先在IBM公司研制的关系数据库系统SystemR上实现。由于它具有功能丰富、使用方便灵活、语言简洁易学等突出的优点,深受计算机工业界和计算机用户的欢迎。1980年10月,经美国国家标准局ANSI的数据库委员会X3H2批准,将SQL作为关系数据库语言的美国标准,同年公布了标准SQL,此后不久,国际标准化组织ISO也作出了同样的决定。

在数据库管理中,增删改查(CRUD)是最基本也是最重要的操作。以下是每种操作的详细介绍和示例。

增(INSERT)

向数据库中添加新记录。

INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);

示例

假设有一个名为Students的表,初始为空。

初始表格:

IDNameAge

执行以下命令:

INSERT INTO Students (ID, Name, Age)
VALUES (1, '张三', 20);

执行后的表格:

IDNameAge
1张三20

更多示例

Students表中插入多行数据:

初始表格:

IDNameAge
1张三20

执行命令:

INSERT INTO Students (ID, Name, Age)
VALUES (2, '李四', 22), (3, '王五', 23);

执行后的表格:

IDNameAge
1张三20
2李四22
3王五23

向表中插入数据,部分列使用默认值:

假设Students表的Age列有默认值18。

初始表格:

IDNameAge
.........

执行命令:

INSERT INTO Students (ID, Name)
VALUES (4, '赵六');

执行后的表格:

IDNameAge
.........
4赵六18

插入数据时使用子查询:

假设还有一个Class表,包含学生的班级信息。

初始Students表格:

IDNameAge
.........

Class表格:

StudentIDClassName
1一班
2二班

执行命令:

INSERT INTO Students (ID, Name, Age)
SELECT StudentID, '新学生', 18 FROM Class WHERE ClassName = '一班';

执行后的Students表格:

IDNameAge
.........
1新学生18

删(DELETE)

从数据库中删除记录。

DELETE FROM table_name WHERE condition;

示例

初始表格:

IDNameAge
1张三20

执行以下命令:

DELETE FROM Students WHERE ID = 1;

执行后的表格:

IDNameAge

更多示例

根据姓名删除记录:

初始表格:

IDNameAge
1张三20
2李四22

执行命令:

DELETE FROM Students WHERE Name = '张三';

执行后的表格:

IDNameAge
2李四22

删除特定年龄段的记录:

初始表格:

IDNameAge
2李四22
3王五19

执行命令:

DELETE FROM Students WHERE Age BETWEEN 20 AND 25;

执行后的表格:

IDNameAge
3王五19

删除所有记录:

初始表格:

IDNameAge
3王五19

执行命令:

DELETE FROM Students;

执行后的表格将为空。

改(UPDATE)

更新数据库中的现有记录。

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

示例

初始表格:

IDNameAge
1张三20

执行以下命令:

UPDATE Students
SET Age = 21
WHERE ID = 1;

执行后的表格:

IDNameAge
1张三21

更多示例

更新特定记录的多个字段:

初始表格:

IDNameAgeGrade
1张三20B
2李四22A

执行命令:

UPDATE Students
SET Age = 23, Grade = 'A+'
WHERE ID = 1;

执行后的表格:

IDNameAgeGrade
1张三23A+
2李四22A

使用条件更新多条记录:

初始表格:

IDNameAgeGrade
............

执行命令:

UPDATE Students
SET Grade = 'B'
WHERE Age > 20;

执行后的表格:

IDNameAgeGrade
.........B
.........B

更新记录时使用子查询:

假设还有一个ClassScores表,记录学生的成绩。

初始Students表格:

IDNameAgeGrade
............

ClassScores表格:

StudentIDScore
185
290

执行命令:

UPDATE Students
SET Grade = 'A'
WHERE ID IN (SELECT StudentID FROM ClassScores WHERE Score > 80);

执行后的Students表格:

IDNameAgeGrade
.........A
.........A

查(SELECT)

从数据库中选择数据。

SELECT column1, column2, ...
FROM table_name
WHERE condition;

示例

初始表格:

IDNameAge
1张三20
2李四22

执行以下命令:

SELECT Name FROM Students WHERE Age > 20;

查询结果:

Name
李四

更多示例

查询特定列的数据:

初始表格:

IDNameAgeGrade
1张三20A
2李四22B

执行命令:

SELECT ID, Name FROM Students;

查询结果:

IDName
1张三
2李四

使用条件和排序查询数据:

初始表格:

IDNameAgeGrade
1张三20A
2李四22B
3王五19B

执行命令:

SELECT * FROM Students WHERE Grade = 'B' ORDER BY Age DESC;

查询结果:

IDNameAgeGrade
2李四22B
3王五19B

使用聚合函数进行查询:

初始表格:

IDNameAgeGrade
............

执行命令:

SELECT AVG(Age) AS AverageAge FROM Students;

查询结果:

AverageAge
[平均年龄]
Last modification:January 15, 2024
如果觉得我的文章对你有用,请随意赞赏