基础操作(1~8 章)
1、数据库 database:保存有组织数据的容器
2、表 table:特定类型数据的结构化清单
3、行 row /record:表中的一个记录
4、主键 primary key:每一行中可以唯一标识自己的一列
-
前提:任意两行不具有相同值、每行必须具有一个主键值
-
习惯:主键值不更新 不重用,不在主键使用可能会更改的值
5、关键字 key word:作为一个保留字
键入
1、书写习惯
-
命令行用分号;结尾多条语句也需用分号分割
-
对于关键字:使用大小写均可,全用大写并分成多行,易于阅读、调试
-
在选择多个列时,一定要在列名之间加上逗号吗,但最后一列不加
2、使用数据库: USE 数据库名
显示:SHOW 语句
-
SHOW DATABASES:显示所有数据库列表
-
SHOW TABLES:显示某个库内所有表的列表
-
SHOW COLUMNS FROM:表名显示某个库内所有列的列表
- 快速写法:DESCRIBE 表名
-
SHOW STATUS:显示广泛的服务器信息
-
SHOW CREATE DATABASE / TABLE:显示创建的特定数据库或表表示的 Mysql 语句
-
SHOW GRANTS:显示授权用户的安全权限
-
SHOW ERRORS / WARNINGS:显示服务器的错误或警告信息
选择:SELECT 语句
-
SELECT 列名 FROM 表名:检索,输出的是未排序数据
-
SELECT * FROM 表名:检索所有列
- 给定 * 通配符,则返回表中所有列,而且可检索出未知列;但滥用会降低效能
-
SELECT DISTINCT 列名:只返回唯一(去重)的行
-
SELECT 列名 FROM 表名 LIMIT 行数:检索指定的行数
- SELECT 列名 FROM 表名 LIMIT 开始行 行数:检索指定从行号为第一个值的位置开始的行数
- 替代语法:SELECT 列名 FROM 表名 LIMIT 行数 OFFSET 开始行
-
SELECT 表名。列名 FROM 表名:完全限定的列名
排序
1、子句:一个关键字和所提供的数据组成
2、ORDER BY 语句
-
SELECT 列名 FROM 表名 ORDER BY 子句名:以字母顺序排序数据的 ORDER BY 子句
-
SELECT 列名 FROM 表名 ORDER BY 子句名 1 子句名 2 ……
-
SELECT 列名 FROM 表名 ORDER BY 子句名 DESC:降序排列
-
SELECT 列名 FROM 表名 ORDER BY 子句名 1 DESC 子句名 2:子句 1 降序 2 升序
- 即:DESC 只应用到直接位于其前面的列名
- ASC asending:默认的情形就是升序,略
-
SELECT 列名 FROM 表名 ORDER BY 子句名 LIMIT 行数:按升序显示表中数据指定列子句的指定行数
过滤:
1、通配符 wildcard:用来匹配值的一部分特殊字符
-
Mysql 中使用通配符:LIKE 操作符指示,LIKE 是 * 谓词(predicate)
2、搜索模式:由字面值、通配符或两者组合构成的搜索条件
3、WHERE 子句
-
SELECT 列名 FROM 表名 WHERE 数据 =(<= />= / > / <) 该指定值:只返回指定值的行
-
同时使用 ORDER BY:需要让 ORDER BY 位于 WHERE 之后
-
不匹配检查:SELECT 列名 FROM 表名 WHERE 数据 <> 值(效果同!=)
-
范围值检查:SELECT 列名 FROM 表名 WHERE 数据 BETWEEN 值 1 AND 值 2
-
空值检查:SELECT 列名 FROM 表名 WHERE 数据 IS NULL
-
多限定条件:SELECT 列名 FROM 表名 WHERE 数据 = 值 1 AND 数据 <值 2 OR 数据> 值 3
- 优先处理 AND 操作符
-
范围选取:SELECT 列名 FROM 表名 WHERE 数据 IN (值 1,值 2)
- 完成与 OR 相同的功能
- 直观易管理
- 运行更快
- 可包含其他 SELECT 语句,动态创建 WHERE 子句
-
否定:SELECT 列名 FROM 表名 WHERE 数据 NOT IN (值 1,值 2) ORDER BY 子句名
- 常用于 IN 的复杂句式中取反
-
通配符操作:SELECT 列名 FROM 表名 WHERE 数据 LIKE ‘_字符串 %’
- % 用于表示接受字符串后续的任意字符
- ‘% 字符串 %’则表示任何位置的匹配
- ‘字符串 1% 字符串 2’则表示字符串 1 开头、字符串 2 结尾的匹配
- 注意当存在空格时, ‘% 字符串’不会匹配
- NULL 任何情况均不会被匹配
- _只匹配单个字符
- 通配符的弊端:耗时较长(尤其位于起始处) 使用容易出错
- % 用于表示接受字符串后续的任意字符