SQL 基础笔记(一)
本笔记整理自《SQL 基础教程》、《MySQL 必知必会》和网上资料。个人笔记不保证正确。
一、基础
SQL,即结构化查询语言,是为访问与操作关系数据库中的数据而设计的语言。
- 关系数据库以行(row)为单位读写数据
- SQL 根据功能的不同,可分为三类(其中DML用得最多,增删查改嘛)
- DDL(Data Definition Language, 数据定义语言): CREATE/DROP/ALTER
- DML(Data Manipulation Language, 数据操作语言): SELECT/INSERT/UPDATE/DELETE
- DCL(Data Control Language, 数据控制语言): COMMIT/ROLLBACK/GRANT/REVOKE
- SQL 语句要以分号结尾。换行在 SQL 中不表示结束,而等同于空格。
- SQL 不区分**关键字(Keyword)**的大小写,但是描述符就不一定了。
- 这里有个坑:MySQL 中,数据库和表其实就是数据目录下的目录和文件,因而,操作系统的敏感性决定数据库名和表名 是否大小写敏感。这就意味着数据库名和表名在 Windows
中是大小写不敏感的,而在大多数类型的 Unix/Linux 系统中是大小写敏感的。(注意仅指数据库名和表名)可通过修改配置文件的
lower_case_table_names
属性来统一这一行为。 - 而字段名、字段内容都是内部数据,是操作系统无关的。它们的大小写敏感性,由
MySQL 的的校对(COLLATE)规则来控制。该规则体现在 MySQL 的 校对字符集(COLLATION)的后缀上:比如 utf8字符集,
utf8_general_ci
表示不区分大小写,这个是 utf8 字符集默认的校对规则;utf8_general_cs
表示区分大小写,utf8_bin
表示二进制比较,同样也区分大小写 。
- 这里有个坑:MySQL 中,数据库和表其实就是数据目录下的目录和文件,因而,操作系统的敏感性决定数据库名和表名 是否大小写敏感。这就意味着数据库名和表名在 Windows
中是大小写不敏感的,而在大多数类型的 Unix/Linux 系统中是大小写敏感的。(注意仅指数据库名和表名)可通过修改配置文件的
- SQL 中的字符串和日期需要用单引号引用起来,日期有特定格式
年-月-日
修改字符集:set names <字符集名>
记住在 MySQL 中,utf-8mb4 才是完全的 utf-8字符集。