sql学习笔记
发布人:shili8
发布时间:2025-03-12 11:14
阅读次数:0
**SQL 学习笔记**
**前言**
SQL(Structured Query Language)是用于管理关系数据库的标准化语言。它允许用户创建、修改和查询数据库中的数据。SQL 是一种重要的技能,广泛应用于各行各业,尤其是在数据分析和科学计算领域。
**一、SQL 基础**
###1.1 SQL 的基本概念* **表**:一个表是由多个记录组成的集合,每个记录代表一个实体。
* **列**:每个列代表一个属性或特征,例如姓名、年龄等。
* **行**:每一行代表一个记录。
###1.2 SQL 的基本命令####1.2.1 `CREATE TABLE`
用于创建新表。语法如下:
sqlCREATE TABLE 表名 ( 列名 数据类型, 列名 数据类型, ... );
示例:
sqlCREATE TABLE students ( id INT PRIMARY KEY, name VARCHAR(255), age INT);
####1.2.2 `INSERT INTO`
用于向表中插入新记录。语法如下:
sqlINSERT INTO 表名 (列名, 列名, ...) VALUES (值, 值, ...);
示例:
sqlINSERT INTO students (id, name, age) VALUES (1, 'John Doe',20);
####1.2.3 `SELECT`
用于从表中检索数据。语法如下:
sqlSELECT 列名 FROM 表名 [WHERE 条件];
示例:
sqlSELECT * FROM students WHERE age >18;
####1.2.4 `UPDATE`
用于更新已有的记录。语法如下:
sqlUPDATE 表名 SET 列名 = 值, 列名 = 值, ... [WHERE 条件];
示例:
sqlUPDATE students SET age =21 WHERE id =1;
####1.2.5 `DELETE`
用于删除已有的记录。语法如下:
sqlDELETE FROM 表名 [WHERE 条件];
示例:
sqlDELETE FROM students WHERE id =1;
**二、SQL 查询**
###2.1 基本查询####2.1.1 `SELECT *` 查询所有列
sqlSELECT * FROM 表名;
示例:
sqlSELECT * FROM students;
####2.1.2 `SELECT 列名` 查询指定列
sqlSELECT 列名 FROM 表名;
示例:
sqlSELECT name, age FROM students;
###2.2 条件查询####2.2.1 `WHERE` 子句用于根据条件筛选记录。语法如下:
sqlSELECT * FROM 表名 WHERE 条件;
示例:
sqlSELECT * FROM students WHERE age >18;
####2.2.2 `AND` 和 `OR` 运算符用于组合多个条件。
sqlSELECT * FROM 表名 WHERE 条件1 AND 条件2; SELECT * FROM 表名 WHERE 条件1 OR 条件2;
示例:
sqlSELECT * FROM students WHERE age >18 AND name = 'John Doe'; SELECT * FROM students WHERE age >18 OR name = 'Jane Doe';
###2.3 排序和分组####2.3.1 `ORDER BY` 子句用于根据指定列排序记录。语法如下:
sqlSELECT * FROM 表名 ORDER BY 列名 [ASC|DESC];
示例:
sqlSELECT * FROM students ORDER BY age DESC;
####2.3.2 `GROUP BY` 子句用于将记录分组到指定列中。语法如下:
sqlSELECT 列名 FROM 表名 GROUP BY 列名;
示例:
sqlSELECT name FROM students GROUP BY name;
###2.4 聚合函数####2.4.1 `SUM` 函数用于计算指定列的总和。
sqlSELECT SUM(列名) FROM 表名;
示例:
sqlSELECT SUM(age) FROM students;
####2.4.2 `AVG` 函数用于计算指定列的平均值。
sqlSELECT AVG(列名) FROM 表名;
示例:
sqlSELECT AVG(age) FROM students;
####2.4.3 `MAX` 和 `MIN` 函数用于分别找到指定列的最大值和最小值。
sqlSELECT MAX(列名), MIN(列名) FROM 表名;
示例:
sqlSELECT MAX(age), MIN(age) FROM students;
**三、SQL 运算符**
###3.1 算术运算符####3.1.1 `+` 和 `-` 运算符用于分别执行加法和减法。
sqlSELECT 列名 + 值, 列名 - 值 FROM 表名;
示例:
sqlSELECT age +2, age -2 FROM students;
####3.1.2 `*` 和 `/` 运算符用于分别执行乘法和除法。
sqlSELECT 列名 * 值, 列名 / 值 FROM 表名;
示例:
sqlSELECT age *2, age /2 FROM students;
###3.2 比较运算符####3.2.1 `=` 和 `<>` 运算符用于分别执行等于和不等于比较。
sqlSELECT 列名 = 值, 列名 <> 值 FROM 表名;
示例:
sqlSELECT age =18, age <>18 FROM students;
####3.2.2 `>` 和 `<` 运算符用于分别执行大于和小于比较。
sqlSELECT 列名 > 值, 列名 < 值 FROM 表名;
示例:
sqlSELECT age >18, age < 18 FROM students;
####3.2.3 `>=` 和 `<=` 运算符用于分别执行大于或等于和小于或等于比较。
sqlSELECT 列名 >= 值, 列名 <= 值 FROM 表名;
示例:
sqlSELECT age >=18, age <=18 FROM students;
###3.3 逻辑运算符####3.3.1 `AND` 和 `OR` 运算符用于分别执行逻辑与和逻辑或。
sqlSELECT 列名 AND 值, 列名 OR 值 FROM 表名;
示例:
sqlSELECT age >18 AND name = 'John Doe', age < 18 OR name = 'Jane Doe' FROM students;
####3.3.2 `NOT` 运算符用于执行逻辑非。
sqlSELECT NOT 列名 FROM 表名;
示例:
sqlSELECT NOT age >18 FROM students;
**四、SQL 函数**
###4.1 字符函数####4.1.1 `UPPER` 和 `LOWER` 函数用于分别执行大写和小写转换。
sqlSELECT UPPER(列名), LOWER(列名) FROM 表名;
示例:
sqlSELECT UPPER(name), LOWER(name) FROM students;
####4.1.2 `LTRIM` 和 `RTRIM` 函数用于分别执行左边和右边的空格移除。
sqlSELECT LTRIM(列名), RTRIM(列名) FROM 表名;
示例:
sqlSELECT LTRIM(name), RTRIM(name) FROM students;
####4.1.3 `SUBSTR` 函数用于执行子字符串提取。
sqlSELECT SUBSTR(列名, 开始位置, 长度) FROM 表名;
示例:
sqlSELECT SUBSTR(name,1,5) FROM students;
###4.2 日期函数####4.2.1 `CURDATE` 和 `CURRENT_DATE` 函数用于分别执行当前日期的获取。
sqlSELECT CURDATE(), CURRENT_DATE() FROM 表名;
示例:
sqlSELECT CURDATE(), CURRENT_DATE() FROM students;
####4.2.2 `NOW` 和 `SYSDATE` 函数用于分别执行当前时间和系统时间的获取。
sqlSELECT NOW(), SYSDATE() FROM 表名;
示例:
sqlSELECT NOW(), SYSDATE() FROM students;
###4.3 数字函数####4.3.1 `ABS` 函数用于