SQL简介
- SQL(Structured Query Language)简介
- SQL是一种用于管理关系数据库管理系统(RDBMS)的标准化语言。
- 它用于执行各种任务,包括检索数据、更新数据、插入数据和删除数据等。
SQL的五大类
-
DDL(Data Definition Language)数据定义语言
- DDL用于定义数据库结构,包括创建、修改和删除数据库对象,如表格(Tables)、索引(Indexes)、视图(Views)等。常见的DDL命令有CREATE、ALTER和DROP等。
-
DML(Data Manipulation Language)数据操作语言
- DML用于操作数据库中的数据,包括插入、更新、删除和查询数据等。常见的DML命令有INSERT、UPDATE、DELETE和SELECT等。
-
DQL(Data Query Language)数据查询语言
- DQL用于从数据库中检索数据,是SQL中最常用的部分。通过DQL,可以根据特定的条件过滤数据,并进行排序、分组和连接操作等。常见的DQL命令是SELECT。
-
DCL(Data Control Language)数据控制语言
- DCL用于控制数据库访问权限,包括授予和撤销访问权限。通过DCL,可以管理用户的权限,确保数据的安全性。常见的DCL命令有GRANT和REVOKE等。
-
TCL(Transaction Control Language)事务控制语言
- TCL用于管理数据库事务,包括事务的开始、提交和回滚等。通过TCL,可以确保数据库操作的原子性、一致性、隔离性和持久性(ACID特性)。常见的TCL命令有START TRANSACTION、COMMIT和ROLLBACK等。
DDL(Data Definition Language)数据定义语言
- 用于定义数据库结构,包括创建、修改和删除数据库对象。
相关代码示例
-- 创建表格
CREATE TABLE Students (
StudentID INT PRIMARY KEY,
Name VARCHAR(50),
Age INT,
Grade CHAR(1)
);
-- 修改表格
ALTER TABLE Students
ADD COLUMN Email VARCHAR(100);
-- 删除表格
DROP TABLE Students;
DML(Data Manipulation Language)数据操作语言
- 用于操作数据库中的数据,包括插入、更新、删除和查询数据等。
相关代码示例:
-- 插入数据
INSERT INTO Students (StudentID, Name, Age, Grade)
VALUES (1, 'John', 20, 'A');
-- 更新数据
UPDATE Students
SET Age = 21
WHERE StudentID = 1;
-- 删除数据
DELETE FROM Students
WHERE StudentID = 1;
DQL(Data Query Language)数据查询语言
- 用于从数据库中检索数据。
相关代码示例:
-- 查询数据
SELECT * FROM Students;
-- 使用条件查询
SELECT * FROM Students
WHERE Age > 18;
-- 使用JOIN进行多表查询
SELECT Students.Name, Courses.CourseName
FROM Students
INNER JOIN Courses ON Students.StudentID = Courses.StudentID;
SQL数据类型
1. 整型(Integer Types): 用于存储整数值,包括INT
、INTEGER
、SMALLINT
、TINYINT
、BIGINT
等。
2. 浮点型(Floating-Point Types): 用于存储浮点数值,包括FLOAT
和DOUBLE
(双精度浮点数)等。
3. 字符串型(Character Types): 用于存储字符序列,包括CHAR
、VARCHAR
、TEXT
等。其中,CHAR
是固定长度的字符型,VARCHAR
是可变长度的字符型,TEXT
用于存储大量文本数据。
4. 日期与时间型(Date and Time Types): 用于存储日期和时间信息,包括DATE
、TIME
、DATETIME
、TIMESTAMP
等。
5. 二进制型(Binary Types): 用于存储二进制数据,包括BINARY
、VARBINARY
、BLOB
等。
SQL函数
1. 字符串函数:
CONCAT(str1, str2, ...)
: 将多个字符串连接成一个字符串。SUBSTRING(str, start, length)
: 返回指定子字符串。UPPER(str)
: 将字符串转换为大写。LOWER(str)
: 将字符串转换为小写。LENGTH(str)
: 返回字符串的长度。
2. 数值函数:
ABS(x)
: 返回一个数的绝对值。ROUND(x, d)
: 返回一个数值的近似值,其中d是要舍入的小数位数。CEIL(x)
: 返回大于或等于指定数的最小整数。FLOOR(x)
: 返回小于或等于指定数的最大整数。
3. 日期与时间函数:
NOW()
: 返回当前日期和时间。DATE_FORMAT(date, format)
: 将日期格式化为指定的格式。DATEDIFF(date1, date2)
: 返回两个日期之间的天数差。DATE_ADD(date, INTERVAL value unit)
: 将指定的时间间隔添加到日期上。
4. 聚合函数(Aggregate Functions):
COUNT(expr)
: 返回表中满足条件的行数。SUM(expr)
: 返回表中某列的总和。AVG(expr)
: 返回表中某列的平均值。MAX(expr)
: 返回表中某列的最大值。MIN(expr)
: 返回表中某列的最小值。
5. 条件函数:
IF(condition, expr1, expr2)
: 如果条件成立,则返回expr1,否则返回expr2。CASE expr WHEN value1 THEN result1 WHEN value2 THEN result2 ... ELSE default_result END
: 用于多条件判断,类似于switch-case语句。
6. 数学函数:
SQRT(x)
: 返回一个数的平方根。POWER(x, y)
: 返回x的y次方。LOG(x)
: 返回x的自然对数。RAND()
: 返回一个0到1之间的随机数。