SQL(结构化查询语言)是用于管理关系型数据库的标准语言,主要用于在数据库中查询、插入、更新和修改数据。
一些基本SQL知识点包括:
-
数据类型:每个数据库表的列都需要一个数据类型。一些常见的SQL数据类型包括:INT(整数),VARCHAR(可变长字符串),TEXT(长文本),DATE(日期), FLOAT(浮点数),等等。
-
DDL,DML,DCL和TCL命令:DDL是数据定义语言,包括创建(CREATE),删除(DROP),更改(ALTER)等命令。DML是数据操作语言,包括选择(SELECT),插入(INSERT),更新(UPDATE),删除(DELETE)等命令。DCL是数据控制语言,主要包括授权(GRANT)和撤销(REVOKE)命令。TCL是事务控制语言,包括提交(COMMIT),回滚(ROLLBACK)等命令。
-
SELECT语句:是最常用的SQL命令,用于从数据库表中获取数据。可以使用WHERE子句添加条件,ORDER BY子句对结果排序。
-
INSERT语句:用于在数据库表中插入新数据。
-
UPDATE语句:用于修改数据库表中的数据。
-
DELETE语句:用于从数据库表中删除数据。
-
JOINs:包括内连接(INNER JOIN),左外连接(LEFT JOIN),右外连接(RIGHT JOIN),全外连接(FULL JOIN)。连接是通过在两个或多个表之间共享的列(键)将它们链接在一起。
-
聚合函数:如COUNT(计数),SUM(求和),AVG(平均),MAX(最大),MIN(最小)等,这些函数用于对一组值执行计算,并返回单个值。
-
分组(GROUP BY):该子句根据一个或多个列对结果集进行分组。一般与聚合函数一起使用。
-
子查询:就是嵌套在另外一个查询语句内部的查询。
这只是SQL的基础知识,实际上,SQL语法包括许多高级特性,如视图,索引,触发器等。学习和掌握这些知识将变得非常强大,可以帮助你更好地理解和管理数据库。
下面是DDL,DML,DCL和TCL的命令及其含义:
-
DDL(数据定义语言):DDL或数据定义语言实际上是用来定义数据结构的。它们有CREATE,ALTER和DROP等命令。比如,你可以使用CREATE命令来创建新表或数据库,ALTER命令用于修改现有数据库的结构,而DROP命令可用于删除表和数据库。
-
DML(数据操作语言):DML或数据操作语言是用来使用和管理在数据库中保存的数据的。包括SELECT,INSERT,UPDATE,DELETE等这些命令。SELECT命令用于从数据库中选择特定数据,INSERT命令将新数据添加到数据库中,UPDATE命令将更改现有数据,而DELETE命令则从数据库中删除数据。
-
DCL(数据控制语言):DCL或数据控制语言主要与用户权限有关。这包括两个主要的命令,即GRANT和REVOKE。GRANT将特权授予特定用户,而REVOKE将删除用户的特权。
-
TCL(事务控制语言):TCL或事务控制语言用于处理事务中的情况。它包括以下两个命令:COMMIT和ROLLBACK。在更改数据库时,COMMIT用于保存所有事务,而ROLLBACK命令则用于撤销未保存的事务。
提供一些基于DDL,DML,DCL和TCL的简单SQL脚本示例。假设我们有一个名为Students
的表,有以下几个字段:StudentID
, StudentName
, Age
, Gender
和 Grade
。
DDL 示例
创建表:
CREATE TABLE Students ( StudentID INT PRIMARY KEY, StudentName VARCHAR(50), Age INT, Gender CHAR(1), Grade INT);
修改表(添加新列):
ALTER TABLE Students ADD Email VARCHAR(60);
删除表:
DROP TABLE Students;
DML 示例
插入数据:
INSERT INTO Students (StudentID, StudentName, Age, Gender, Grade)VALUES (1, 'Tom', 20, 'M', 3);
选择数据:
SELECT * FROM Students WHERE Grade 2;
更新数据:
UPDATE Students SET Email = 'tom@example.com'WHERE StudentID = 1;
删除数据:
DELETE FROM Students WHERE StudentID = 1;
DCL 示例
授权:
GRANT SELECT, UPDATE ON Students TO user1;
撤销权限:
REVOKE UPDATE ON Students FROM user1;
TCL 示例
这些命令通常在修改数据库时使用:
START TRANSACTION; -- 开始一个新事务...UPDATE Students -- 做一些改变...SET Grade = 4WHERE StudentID = 1;COMMIT; -- 确认更改。START TRANSACTION; -- 开始另一个新事务...DELETE FROM Students -- 尝试删除一些内容...WHERE StudentID = 1;ROLLBACK; -- 改变主意,取消删除。