SQL查询MySQL笔记
2015-08-10 15:19
387 查看
在使用数据库进行数据查询的过程中,经常用到查看数据列备注信息、某列数据中相同数据出现次数、根据某列数据中相同的数据进行统计、分段查询等操作,在此以一个形象的例子做一个记录。
以下表数据为例,表格数据为不同书中的人物信息。数据库类型为MySQL,数据库名称为testDB,表名为t_people。
使用到的几个查询语句如下所述。
1、查看不同列的备注信息
SQL语句:SELECT COLUMN_COMMENT as '备注信息' FROM information_schema.COLUMNS WHERETABLE_NAME='t_people'
结果:
2、查看列名、数据类型和备注信息
SQL语句:SELECT COLUMN_NAME, DATA_TYPE, COLUMN_COMMENT FROMinformation_schema.columns WHERE table_name = 't_people'
结果:
3、查看不同的书名
SQL语句:select DISTINCT(bookname) FROM testDB.t_people
结果:
4、查看出现的书的数量
SQL语句:select count(DISTINCT(bookname)) FROM testDB.t_people
结果:
5、统计不同书中名字的数量并排序
SQL语句:SELECT bookname as '书名',count(all(bookname)) as '人物数量' FROM testDB.t_people group by bookname order bycount(all(bookname)) desc;
结果:
6、分段查询再组合
SQL语句:
SELECT"三国演义" as书名, count(*) as num FROMtestDB.t_people where (bookname='三国演义')
unionall
SELECT"水浒传",count(*) as num FROMtestDB.t_people where (bookname='水浒传')
unionall
SELECT"西游记",count(*) as num FROM testDB.t_peoplewhere (bookname='西游记')
结果:
7、查看人物统计大于3的书,并显示有多少人物记录数(一个表td中的部分ID有多个记录,把所有有多个记录的id查出来,并显示共有多少条记录数)
SQL语句:SELECT bookname, count(*)from testDB.t_people group by bookname having count(*) >3;
或
SELECT *from(select bookname, count(bookname) as count from testDB.t_people group bybookname)T where T.count>3;
结果:
以下表数据为例,表格数据为不同书中的人物信息。数据库类型为MySQL,数据库名称为testDB,表名为t_people。
使用到的几个查询语句如下所述。
1、查看不同列的备注信息
SQL语句:SELECT COLUMN_COMMENT as '备注信息' FROM information_schema.COLUMNS WHERETABLE_NAME='t_people'
结果:
2、查看列名、数据类型和备注信息
SQL语句:SELECT COLUMN_NAME, DATA_TYPE, COLUMN_COMMENT FROMinformation_schema.columns WHERE table_name = 't_people'
结果:
3、查看不同的书名
SQL语句:select DISTINCT(bookname) FROM testDB.t_people
结果:
4、查看出现的书的数量
SQL语句:select count(DISTINCT(bookname)) FROM testDB.t_people
结果:
5、统计不同书中名字的数量并排序
SQL语句:SELECT bookname as '书名',count(all(bookname)) as '人物数量' FROM testDB.t_people group by bookname order bycount(all(bookname)) desc;
结果:
6、分段查询再组合
SQL语句:
SELECT"三国演义" as书名, count(*) as num FROMtestDB.t_people where (bookname='三国演义')
unionall
SELECT"水浒传",count(*) as num FROMtestDB.t_people where (bookname='水浒传')
unionall
SELECT"西游记",count(*) as num FROM testDB.t_peoplewhere (bookname='西游记')
结果:
7、查看人物统计大于3的书,并显示有多少人物记录数(一个表td中的部分ID有多个记录,把所有有多个记录的id查出来,并显示共有多少条记录数)
SQL语句:SELECT bookname, count(*)from testDB.t_people group by bookname having count(*) >3;
或
SELECT *from(select bookname, count(bookname) as count from testDB.t_people group bybookname)T where T.count>3;
结果:
相关文章推荐
- SQL中的三值逻辑
- SQL Server 作业批量停止
- 结束SQL阻塞的进程
- 动态生成SQL Server视图作业
- SQL Server 语句操纵数据库
- SQL(结构化查询语句)
- oracle sql日期比较
- linux快速部署mysql服务器
- sql 存储过程分页
- 在WINXP系统上安装SQL Server企业版的方法
- 通过批处理调用SQL的方法(osql)
- SQL Server 存储过程的分页
- ASP程序与SQL存储过程结合使用详解
- SQL SERVER编写存储过程小工具
- 防御SQL注入攻击时需要注意的一个问题
- PostgreSQL教程(十九):SQL语言函数
- SQL Server复制需要有实际的服务器名称才能连接到服务器
- SQL Server 2000向SQL Server 2008 R2推送数据图文教程