mysql数据库的查询(select)操作
来源:互联网 发布:淘宝秒杀流程 编辑:程序博客网 时间:2024/05/07 12:29
一、 基本用法
select 查询字段 from 表名或视图名注意点 :
where 条件
group by 分组
having 筛选
order by排序
(1)可以使用as给查询出的字段取别名,as 也可以省略,但有些前台语言不能识别,所以最好还是需要加as,如果别名中含有一些特殊的字符要用引号或转义栝起来。
例: select name as 姓名 from students;(2) 可以使用concat函数对字符串(比如说字段名)进行拼接。
例:select name as 姓名, concat(age,’岁’) as 年龄 from students;(3)select可以将本不存在的值作为一列。
例:select name as 姓名, ’中国’ as 国家;(4)使用变量作为列名
select name as 学生姓名, score as 分数,(5)sql中的!、||、&&可以使用and、or、not代替。
@grade:=(
Case
When score between 90 and 100 then ‘优秀’
When score between 80 and 90 then ‘良好’
end
)as 等级
from students;
(6)可以使用limit查询指定的条数
limit(m,n):表示从第m个索引开始查询n个值。
(7)可以使用desc和asc进行排序,如果有两个相同的值,则按照主键进行排序,或者可以设置多个排序。
例: select age from students(8)使用聚合函数进行统计。
where age=20
order by age asc,name desc;
例:select sum(age) from students
二、select中的模糊查询
1.使用like进行字符串的模糊查询,通常会和通配符一起使用,或者和正则表达式一起使用。如果需要对文章等比较长的文本进行搜索,建议使用全文匹配。
(1)Like中有两种通配符,%和,使用%来进行多个字符的匹配,使用进行一个字符的匹配。
2.使用betwwen…and来进行数值和日期之间的比较查询,功能是介于两种数据之间,可以使用Not 进行取反操作。
(1)Between a and b 等价于 a<=num<=b,其中a<=b
3.使用in来查询一个范围值里面的匹配,可以使用not进行取反。
三、分组查询
1.基本语法:group by 分组字段1,分组字段2…
(1)Group by 的原理类似于distinct(删除重复的字段)
例: Select distinct sex from students;
2.group by 后面存放select语句中所有的非聚合字段,并可出现select中没有的字段。
四、分组过滤
1.使用having语句实现分组后结果集的再次筛选,having出现在group by之后,没有group by就没有Having
2.where和having的区别:
(1)where出现在Group by之前而having出现在group by 之后
(2)where实现对表中行的过滤,group by实现对对象分组后结果集的过滤
五、select的基本语法和执行原理。
书写顺序是:select 、from、where、group by、having 、order by
执行顺序是:from、where、group by、having、order by、select
六、多表查询
1.关键点逻辑:主外键以及父表、子表的关系。
2.语法:
(1)使用where语句进行查询
select 字段
from 表1 (as xxx),表2(as xxx)...
where 父表的主键=子表的外键 and其他表的主键=子表的外键 and 其他条件
(2)使用join实现表的连接
select 字段
From 子表 join 父表 on 子表的外键=父表的主键
[join 表3 on 外键=主键];
注:使用where时的语法(效率没有join高,不建议使用)
3.join 连接有三种情况:内连接,外连接、自连接默认情况下为inner join。
(1)内连接取的是两张表之间的交集,在一定的条件下,外连接可以代替内连接,反之不可以。
例: select s.name ,c.name from
students s inner join classes c
on s.id = cid;
(2)外连接:外连接又分为三个部分,left join(左连接),right join(右连接),union或者full join(联合查询,mysql不支持full join):
left join(左连接):显示结果为两个结果的交集再加上左边表部分多出来的结果的值。
right join(右连接):显示结果为两个结果的交集再加上右边表部分多出来的结果的值。
union(联合查询):将多个查询的结果合并成一个结果集。
联合查询的例子:
Select 1 union select2 union select3
注意:查询结果的字段的个数和类型要匹配。
(3)自连接:对表的自身进行连接
例:用stop字段来对route(公交线路表)进行自连接, 查询的结果就是共用同一车站的所有公交线。
SELECT * FROM route R1, route R2
WHERE R1.stop=R2.stop;
0 0
- mysql数据库的查询(select)操作
- mysql-select查询操作
- Mysql数据库学习(三):表的crud操作、完整性约束、select各种查询
- Mysql中的select查询操作
- MySQL数据库查询操作
- mysql数据库的select单表查询语句
- 数据库查询select的原理
- mysql的查询select 语句
- mysql数据库查询操作类
- MySql数据库的基本操作-表的建立/查询
- 数据库中增加操作insert into的用法和查询select的用法
- MySQL数据库——子查询的基本操作
- MySQL 数据库的查询
- MySQL 数据库的查询
- 如何提高MYSQL数据库的查询统计速度 select 索引应用
- 如何提高MYSQL数据库的查询统计速度 select 索引应用
- Mysql查询语句使用select.. for update导致的数据库死锁分析
- 数据库SQL SELECT查询的工作原理
- 说说学英语这件事
- 371. Sum of Two Integers
- 【53.61%】【BZOJ 2302】[HAOI2011]Problem c
- SphinxClient 类
- 程序人生之起步
- mysql数据库的查询(select)操作
- CRecordSet类用法
- Coco2d-x3.8.1制作飞翔的小鸟(上)
- 发现一个国外的学习网站
- 点亮第一盏LED灯,点亮另一片世界
- 一种文献搜索的技巧
- 用筛法求100之内的所有素数
- Scala中的基本控制结构
- 日常潜水-20160927-微信企业号发送消息接口