一、SQL语言分类
1、DML(Data Manipulation Language):数据操纵语句,用于添加、删除、修改、查询数据库记录,并检查数据完整性。
- INSERT:添加数据到数据库中
- UPDATE:修改数据库中的数据
- DELETE:删除数据库中的数据
- SELECT:选择(查询)数据
2、DDL(Data Definition Language):数据定义语句,用于库和表的创建、修改、删除。
- CREATE TABLE:创建数据库表
- ALTER TABLE:更改表结构、添加、删除、修改列长度
- DROP TABLE:删除表
- CREATE INDEX:在表上建立索引
- DROP INDEX:删除索引
3、DCL(Data Control Language):数据控制语句,用于定义用户的访问权限和安全级别。
- GRANT:授予访问权限
- REVOKE:撤销访问权限
- COMMIT:提交事务处理
- ROLLBACK:事务处理回退
- SAVEPOINT:设置保存点
- LOCK:对数据库的特定部分进行锁定
二、SQL语言的规则与规范
基本规则
1、SQL 可以写在一行或者多行。为了提高可读性,各子句分行写,必要时使用缩进
2、每条命令以 ; 或 \g 或 \G 结束
3、关键字不能被缩写也不能分行
4、关于标点符号
- 必须保证所有的()、单引号、双引号是成对结束的
- 必须使用英文状态下的半角输入方式
- 字符串型和日期时间类型的数据可以使用单引号 ( ' ' ) 表示
- 列的别名,尽量使用双引号 ( " " ) ,而且不建议省略as
大小写规范
1、MySQL在Windows环境下是大小写不敏感
2、MySQL在Linux环境下是敏感的
- 数据库名,表名,表的别名,变量名是区分大小写的
- 关键字,函数名,列名,列的别名是忽略大小写的
推荐使用统一的书写规范
- 数据库名,表名,表别名,字段名,字段别名都小写
- SQL关键字,函数名,绑定变量等都大写
三、基本SELECT语句
SELECT *|{[DISTINCT] column|expression [alias],...}
FROM table;
SELECT 标识选择哪些列。FROM 标识从哪个表中选择。* 选择表中全部列。
表employees截图
SELECT employee_id, first_name
FROM employees
查询结果
四、列的别名
重命名一个列,便于计算。紧跟列名,也可以在列名和别名之间加入关键字 ‘AS’ (alias),别名使用双引号,以便在别名中包含空格或特殊的字符并区分大小写。
SELECT employee_id e_id, first_name
FROM employees
SELECT employee_id e_id, first_name AS "姓"
FROM employees
五、去除重复行
SELECT country_id
From locations;
去除上面结果重复数据
SELECT DISTINCT country_id
From locations;
六、空值(null)参与运算
空值参与运算结果也一定为空
SELECT employee_id, first_name, salary, commission_pct, salary * (1 + commission_pct) * 12 AS "年薪"
FROM employees;
在该例中用 IFNULL(commission_pct, 0) 处理,但null不等同于0
七、着重号 ``
当出现字段与关键字重复,字段需要用着重号引用,即`字段`。
八、显示表结构
DESCRIBE employees;
九、过滤数据
SELECT employee_id, first_name, department_id
FROM employees
WHERE department_id = 90;