03 基本的SELECT语句
1 SQL概述
1.1 SQL背景知识
1.2 SQL语言排行榜
1.3 SQL分类
2 SQL语言的规则与规范
2.1 基本规则
● SQL可写一行或多行。
● 命令结束标志: \g 、\G、;
● 关键字不能缩写、分行
● 关于标点符号:
- 字符串型、日期时间可使用‘ ’表示
- 列的别名 使用“ ” , 可用 as
2.2 SQL大小写规范
● Windows:大小写不敏感
● Linux:大小写敏感
- 区分大小写:数据库名、表名、表的别名、变量名
- 忽略大小写:关键字、函数名、列名(字段名)、列的别名
● 推荐采用统一的书写规范:
- 数据库名、表名、表别名、字段名、字段别名——小写
- SQL关键字、函数名、绑定变量——大写
2.3 注释
# 注释文字 (MySQL独有)
-- 注释文字
/* 注释文字 */
2.4 命名规则
2.5 数据导入指令
命令行客户端登录mysql,使用source指令导入
mysql> source d:\mysqldb.sql
3 基本的SELECT语句
3.1 SELECT...
SELECT 1; # 1
SELECT 9/2; # 4.5
3.2 SELECT ... FROM
SELECT 列名
FROM 表名
3.3 列的别名
SELECT last_name AS name, commission_pct comn, salary*12 "Annual Salary"
FROM employees;
3.4 DISTINCT-去除重复行
● 不适用DISTINCT,会默认返回全部行,包括重复行。
SELECT DISTINCT department_id
FROM employees;
注意:
● DISTINCT 需在所有列名前面。
● DISTINCT 是对所有列名的组合去重。
3.5 空值参与运算
所有运算符、列值遇到null值,结果为:null
注意:
- 空值 ≠ 空字符串
- 空字符串 长度为0
- 空值 长度为空
- 空值是占用空间的
3.6 着重号
mysql> SELECT * FROM `ORDER`;
mysql> SELECT * FROM `order`;
我们需要保证表中的字段、表名等没有和保留字、数据库系统或常用方法冲突。如果真的相同,请在SQL语句中使用一对``(着重号)引起来。
3.7 查询常数
SELECT '尚硅谷' as corporation, last_name FROM employees;
4 显示表结构
命令:DESCRIBE / DESC
DESCRIBE employees;
或
DESC employees;
5 过滤数据
● WHERE 过滤条件
SELECT employee_id, last_name, job_id, department_id
FROM employees
WHERE department_id = 90 ;