学习数据库是需要sql基础的,一个学习sql的好去处:W3c SQL教程
Mysql 介绍
(占位符)
Mysql的使用
mysql 关键字
核心关键字
名称 | 作用 |
select | 指定需返回的字段 |
left/right/inner join on | 指定执行多表的左/右/内 连接操作 |
where | 指定返回结果集限制条件(不可协同函数) |
group by | 指定返回结果集合并条件 |
having | 指定返回结果集限制条件(可协同函数) |
order by | 指定返回结果集根据什么排序 |
limit | 指定返回结果集取值起止位置 |
常用关键字
名称 | 作用 |
as | 将 as 后的名称指定为 as 前参数的别名 |
union | 将 union 前后的结果集进行合并 |
truncate | 重置(原理类似删除表然后重建结构相同的表,表自增字段index会重置) |
delete | 删除(比truncate慢的原因——遍历表并对各记录删除一次,表自增字段index会保留,指定条件删除部分记录) |
drop | 废弃,删库和删表用 |
mysql 关键字顺序
mysql 的sql语句是需要符合一定规范的,其中之一便是关键字的顺序,需要注意的是,书写顺序无法决定关键字的执行顺序。
(栗子:单句sql语句中。select、where序号分别为1、4,所以where只能书写在select之后 如: select ……where……;)
书写顺序:
- select
- from
- left/right join on
- where
- group by
- having
- order by
- limit
(栗子:单句sql语句中。在即使用了where关键字又使用了having关键字的情况下,where、having序号分别为3、5,所以在语句执行时,先会执行where的条件来过虑返回的结果集,在一定时间后再执行having的条件来过虑返回的结果集)
执行顺序:
- from
- left/right join on
- where
- group by
- having
- select
- order by
- limit
mysql 函数
常见函数
类别 | 含义 |
count(指定目标) | 计算指定目标的个数 |
avg(指定目标) | 计算指定目标的平均值 |
max(指定目标) | 计算指定目标中的最大数 |
min(指定目标) | 计算指定目标中的最小数 |
abs(指定目标) | 计算指定目标中的绝对值 |
mysql 命令实操
mysql 语句实际问题
1.自定排序
表结构
SELECT
*
FROM
massage
WHERE
mid IN (23, 7, 2)
选择message表中mid为23、7、2的字段,也许你在期待按23、7、2的顺序来显示三条字段。但结果却不是,原因是mysql 默认没写order by时按主键进行默认方式排序(数字类型默认按从小到大,字符串类型默认字典排序,可手工设置)
但如果真想按23、7、2的顺序输出记录呢?
SELECT
*
FROM
massage
WHERE
mid IN (23, 7, 2)
ORDER BY field(mId,23,7,2) // field 为数据库提供的一个函数 filed(“指定目标”,顺序……)
// 此处为 mid 以 23、7、2的顺序返回结果集
2.多表查询时的连接语法
MySQL各join语法示例传送门
3.查询表属性
SELECT
*
FROM
information_schema. COLUMNS
WHERE
table_name = '查询目标表名'
执行上述 SQL 会得到表查询结果集,需要特定结果在 select * 上做处理即可
(占位符)