文章目录
limit(TOP子句)
用于规定要返回的记录的数目
并非所有的数据库系统都支持 TOP 子句,mysql里面是用limit
- 语法
SELECT 列名称 FROM 表名称 LIMIT 返回的数目
like
用于在where子句中搜索列中的指定模式
- 指定开始字母
WHERE City LIKE ‘a%’ - 指定结束字母
WHERE City LIKE ‘%g’ - 指定包含部分内容
WHERE City LIKE ‘%g%’ - 语法
SELECT 列名称 FROM 表名称 WHERE 列名称 LIKE 模式
模式是指通配符表达式
通配符
在搜索数据库中的数据时,SQL 通配符可以替代一个或多个字符。
SQL 通配符必须与LIKE运算符一起使用。
- 常见通配符
% 代替一个或多个字符
_ 只代替一个字符
[字符列表] 字符列中的任何单一字符
[^字符列表] 或[!字符列表] 不在字符列中的任何单一字符 - 例如
LIKE ‘%2018%’
LIKE ‘1_3’
LIKE ‘[ALN]%’ 以A或L或N开头
LIKE ‘[^ALN]%’ 不以A或L或N开头
in
in操作符可以在where子句中规定多个值
- 语法
SELECT 列名称 FROM 表名称 WHERE 列名称 IN (值1,值2,…)
between
在where子句中使用,选取介于两个值之间的数据范围】
这些值可以是数值、文本或者日期。
- 语法between…and…
SELECT 列名称 FROM 表名称 WHERE 列名称 BETWEEN 值1 AND 值2 - 注意:
and前后的是否包含,不同数据库处理不同。
显示两个值范围外的值 NOT BETWEEN … AND …
alias(AS)
可为列名称或表名称指定别名
- 语法
SELECT 列名称 AS 别名 FROM 表名称 AS 别名
关键字AS,可以省略不写
join
详见<07>join
union、union all
用于合并两个或多个select语句的结果集
- 语法
SELECT 列名称 FROM 表名称
UNION
SELECT 列名称 FROM 表名称 - 注意
- UNION内部的SELECT语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条SELECT语句中的列的顺序必须相同。
- 默认地,union操作符选取不同的值,如果允许重复的值,请使用union all
union结果集中的列名总是等于union中第一个select语句中的列名 - UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名
select into
用于创建表的备份复件
- 从一个表中选取数据,然后把数据插入另一个表中
- 语法
SELECT 列名称 INTO 新表名称 FROM 旧表名称 WHERE 条件
- 语法
- 常用于创建表的备份复件或者用于对记录进行存档
- 语法
创建备份复件
SELECT 列名称 INTO 新表名称 FROM 旧表名称 - in子句可用于向另一个数据库中拷贝表
SELECT 列名称 INTO 新表名称 IN ‘Backup.mdb’ FROM 旧表名称
- 语法
create database
用于创建数据库
- 语法
CREATE DATABASE 数据库名
create table
- 用于创建数据库中的表
CREATE TABLE 表名称(列 数据类型 , 列2 数据类型2, …) - 数据类型
约束(constaints)
详见<06>约束
create index
用于在表中创建索引,可以提升查询速度
- 注意
用户无法看到索引,它们只能被用来加速搜索/查询
更新一个包含索引的表需要比更新一个没有索引的表更多的时间,这是由于索引本身也需要更新。因此,理想的做法是仅仅在常常被搜索的列(以及表)上面创建索引 - 语法
- 允许重复值
CREATE INDEX 表名 ON 表名(规定需要索引的列名) - 不允许重复值
CREATE UNIQUE INDEX 表名 ON 表名(规定需要索引的列名)
唯一的索引意味着两个行不能拥有相同的索引值。
- 允许重复值
drop
用于删除索引、表和数据库
- 语法
- 删索引
ALTER TABLE table_name DROP INDEX index_name
ALTER TABLE 语句用于在已有的表中添加、修改或删除列 - 删除列
ALTER TABLE 表名 DROP COLUMN 列名 - 删表
DROP TABLE 表名称 - 删数据库
DROP DATABASE 数据库名称 - 删表的内容,不删表
TRUNCATE TABLE 表名称
- 删索引
alter table
用于在已有的表中添加、修改和删除列
- 语法
- 增加列
ALTER TABLE 表名 ADD 列名 数据类型 - 删除列
ALTER TABLE 表名 DROP COLUMN 列名 - 改变表中列的数据类型
ALTER TABLE 表名 ALTER COLUMN 列名 数据类型
- 增加列
AUTO INCREMENT
- 在新纪录插入表中时生成一个唯一的数字
- 可用于自动创建主键字段的值
- 默认开始值为1,每次自动加1
- 要让 AUTO_INCREMENT 序列以其他的值起始
ALTER TABLE 表名 AUTO_INCREMENT=开始值
VIEW视图
视图是可视化的表
DATE函数
MySQL 中最重要的内建日期函数
NULL
- NULL 值是遗漏的未知数据,默认地,表的列可以存放 NULL 值。
- 如果表中的某个列是可选的,那么我们可以在不向该列添加值的情况下插入新记录或更新已有的记录。这意味着该字段将以 NULL 值保存。
- NULL 值的处理方式与其他值不同。
NULL 用作未知的或不适用的值的占位符。
无法比较 NULL 和 0;它们是不等价的。
无法使用比较运算符来测试 NULL 值,比如 =, <, 或者 <>。
我们必须使用 IS NULL 和 IS NOT NULL 操作符。 - 始终使用 IS NULL 来查找 NULL 值
SELECT * FROM 表名 where 列 IS NULL
NULL 函数
作用:都是将null转换为一个可以计算的数值。
分类:
- ISNULL()
- NVL() (nvl—转换空值)
- IFNULL() (mysql中使用)
用法:IFNULL(UnitsOnOrder,0) - COALESCE() (mysql中使用) (coalesce—合并)
用法:COALESCE(UnitsOnOrder,0)
数据类型
详见<05>MySQL数据类型