select用法
Posted testing1105
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了select用法相关的知识,希望对你有一定的参考价值。
1.SELECT 语法
1).SELECT 列名称 FROM 表名称
SELECT LastName,FirstName FROM Persons
2).SELECT * FROM 表名称
mysql> select * from mytable;
3).Select+where条件
select Name,age from mytable where age >=20 and age <=25 addre = ‘gucheng’;
或select * from mytable where age >=20 and age <=25 addre = ‘gucheng’;
4).Select+where+like条件
select Name from mytable where Name like ‘y%‘ or Name like ‘n%‘;
或select Nam* from mytable where Name like ‘y%‘;
或select Name from mytable where Name like ‘%ing%‘;
5).使用 Rlike 筛选已mny开头的用户(正则表达式)。
select Name from mytable where Name Rlike ‘^[MNY].*$‘;
6).使用 in 关键字,后面跟上一个列表
select Name from student where age in (18,20,25);
students 中有个字段课程(CID2)。查找出改字段,里面为空的字段的,学生姓名 Name
select Name from students where CID2 is null ;
查询不为空就是要 is not null
is null 和 is not null可以实现判断字段是否为空
7).limit 子句:用于显示 结果的前 N 行
只显示前3行
select * from students limit 3;
8).只显示3行,从第5行开始计算
select * from students limit 3,5;
9).group by 子句 :
用于分组,比如把students 表的 学生 按照男女进行分组
select age,Gender from students group by gender
students 表中的字段 有个课程的字段 CID 求出该字段中,需要将课程的人数,大于等于2的显示出来
10).having 子句
只能和group by 搭配使用,使用group by 分组之后,再用having 过滤
select CID from students where having CID >=2
11).多表查询如mytable(name,sex,addre,job),mypersons(name,birth)表,已知name,求douzi的年纪,生日,地址。
select mytable.sex,mytable.addre ,mypersons.birth from mytable ,mypersons where mytable.name = mypersons.name;
12).多表查询2个表中相同名称的人。
Select * from mytable join mypersons on mytable.name=mypersons.name;
13).SQL UNION 实例
查询2个表中相同字段下不同值
SELECT 列名 FROM 表名UNION SELECT 列名 FROM 表名ORDER BY 列名;
SELECT country FROM WebsitesUNIONSELECT country FROM apps ORDER BY country;
14).UNION all 输出列名下所有值
SELECT 列名 FROM 表名UNION SELECT 列名 FROM 表名ORDER BY 列名;
SELECT country FROM Websites UNION ALL SELECT country FROM apps ORDER BY country;
15).带有 WHERE 的 SQL UNION ALL
SELECT 列名, 列名 FROM 表名WHERE 列名=‘CN‘UNION ALL SELECT 列名, 列名 FROM 表名WHERE 列名=‘CN‘ORDER BY 列名;
SELECT country, name FROM Websites WHERE country=‘CN‘ UNION ALL SELECT country, app_name FROM apps WHERE country=‘CN‘ ORDER BY country;
16).匹配列前缀查询
指匹配列值的开头部分,如:查询用户名以feinik开头的所有用户
Select * from mytable where name like ‘jing%’;
17).MySQL 排序
我们需要对读取的数据进行排序,我们就可以使用 MySQL 的 ORDER BY 子句来设定你想按哪个字段哪种方式来进行排序,再返回搜索结果。
使用 ASC 或 DESC 关键字来设置查询结果是按升序或降序排列
SELECT * from 表名 ORDER BY 列名 ASC;
如SELECT * from runoob_tbl ORDER BY submission_date ASC;
18).MySQL GROUP BY 语句
GROUP BY 语句根据一个或多个列对结果集进行分组。
在分组的列上我们可以使用 COUNT, SUM, AVG,等函数。
使用 GROUP BY 语句 将数据表按名字进行分组,并统计每个人有多少条记录:
Select name ,count(*) from mytable group by name;
以上是关于select用法的主要内容,如果未能解决你的问题,请参考以下文章