SQL语言学习记录-SELECT语句基础
2025-07-23
SQL 语言分类与查询语法详解
SQL 语言分类
1. DDL (数据定义语言)
- CREATE - 创建数据库对象
- DROP - 删除数据库对象
- ALTER - 修改数据库对象
- RENAME - 重命名数据库对象
2. DML (数据操作语言)
- INSERT - 插入数据
- DELETE - 删除数据
- UPDATE - 更新数据
- SELECT - 查询数据
3. DCL (数据控制语言)
- COMMIT - 提交事务
- ROLLBACK - 回滚事务
- SAVEPOINT - 设置保存点
- GRANT - 授予权限
- REVOKE - 撤销权限
SELECT 语句详解
设置结果集别名
-- 方式1:直接跟在列名后
SELECT employee_id empid FROM employees;
-- 方式2:使用AS关键字
SELECT employee_id AS empid FROM employees;
-- 方式3:使用双引号包裹别名(可包含空格)
SELECT employee_id "empid" FROM employees;
去除重复行
-- 单列去重
SELECT DISTINCT department_id dpid FROM employees;
-- 多列组合去重
SELECT DISTINCT department_id, salary FROM employees;
空值(NULL)处理
-- NULL参与运算结果为NULL
SELECT department_id, salary*12*(1+commission_pct) "年工资" FROM employees;
-- 使用IFNULL处理NULL值
SELECT department_id, salary*12*(1+IFNULL(commission_pct,0)) "年工资" FROM employees;
特殊语法
-- 使用着重号处理关键字冲突
SELECT * FROM `ORDER`;
-- 查询常数(添加固定列)
SELECT '尚硅谷', employee_id FROM employees;
表结构查询
-- 查看表结构
DESCRIBE employees;
-- 简写形式
DESC employees;
数据过滤(WHERE子句)
-- 数值条件过滤
SELECT * FROM employees WHERE department_id = 90;
-- 字符串条件过滤
SELECT * FROM employees WHERE last_name = 'King';
/*
注意:标准SQL区分大小写,但MySQL默认不区分
小写'king'也能匹配到'King'
*/
关键点总结
NULL特性:
- 任何与NULL的运算结果都是NULL
- NULL不是0也不是空字符串''
- 使用IFNULL()函数处理NULL值
别名使用:
- 三种别名设置方式
- 双引号允许别名包含空格
数据过滤:
- WHERE子句用于条件筛选
- MySQL字符串比较默认不区分大小写
特殊符号:
- 着重号``用于处理关键字冲突
- 单引号''用于字符串值
- 双引号""用于包含特殊字符的别名