程序员的大厨梦

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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 Websites UNION SELECT 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;

posted on 2018-07-23 17:27  程序员的大厨梦  阅读(2770)  评论(0编辑  收藏  举报