搜索
首页数据库mysql教程Mysql中的DQL查询语句_MySQL

bitsCN.com

----------------1、查询所有列 --查询 学生 表所有记录(行) select *from 学生

--带条件的查询 select *from 学生 where 年龄>19

-------------------2、查询指定的列 --查询 所有人的姓名和性别 select 姓名,性别 from 学生

--查询 所有 年龄>19 的学生的 姓名 select 姓名,地址 from 学生 where 年龄>19

/*比较运算符 = > = 不等于 !>不大于 !

--方式二 select 姓名,地址as家乡 from 学生

-----------------------4、消除重复 --查询该表有哪些家乡 select distinct 地址 from 学生

----------------------5、top n(查询前N条) select top 3 * from 学生 --查询前3条记录

-----------------------6、排序 select *from 学生 order by 年龄 asc     --按年龄进行升序排列                        --desc降序         --asc升序

select * from  学生 order by 年龄 desc ,编号 asc ---按年龄降序 --先按年龄进行降序,在出现相同年龄的时候,把这些相同的学生 再按照 学号 升序排列

--例:查询 学生 表中,年龄最大的三个学生的 年龄、姓名、编号 select top 3  年龄,姓名,编号 from 学生 order by 年龄 desc

-------------------------------7、 and(并且)、or(或者) select *from 学生 where 年龄=20 and 姓名='张三'

--例如:查询 性别为男的 或 专 地址为武汉 select *from 学生 where 性别='男'  or 地址='武汉'

----------------------8、between ... and(介于...之间) --例:查询年龄为20-30之间的所有人 select *from 学生 where 年龄 between 20 and 30

-----------------------9、in 的用法 select * from 学生 where 年龄 in(20,19,18)

---------------------------10、top N  与 order by 同时使用

--例:查询年龄最大的一人 select top 1 with ties * from  学生  --加了with ties 后 如有并列第一的就全都显示 order by 年龄 desc

---------------------------------11、case替换查询结果 --查询所有人信息,如果年龄>=40岁,就显示"中年人", --     如果年龄 介于30-39  ,就显示“青年” --     如果年龄  介于20-29 ,就显示“青少年” --     如果年龄   小于20  , 就显示“少年”

select 学号,姓名,性别, 年龄=case   when 年龄>=40 then '中年人'   when 年龄 between 30 and 39 then '青年'   when 年龄 between 20 and 29  then '青少年'   else '少年' --else表示不满足以上条件时,就全部  end ,住址 from 学生

-----------------------------------12、模糊查找 使用like子句进行模糊查询 like子句与通配符配合使.Sql server提供4种通配符 1.%:表示任意字符 2. _:表示单个任意字符 3.[ ]:表示方括号里列出的任意一个字符. 4.[^]:表示任意一个没有在方括号里列出的字符.

--例:查找姓周的所有人信息 select * from 学生 where 姓名 like '周%' --%可以代替任意几个字符

select * from 学生 where 姓名 like '周_' --_表示可以代替一个字符

--例:查找姓名的第二个字包含 ’心‘ 或者 ’三‘ 的人 select * from 学生 where 姓名 like '_[星,三]_'

 

--嵌套查询(一般嵌套请不要超过3层,即不要出现超过3个select) select * from 学生  where 年龄

  --例如:查询所有比 中文系所有学生年龄 大的学生 select * from xs where 年龄> (  select top 1 年龄 from xs  where 所在系='中文'  order by 年龄 desc )

/*运算符  all some   any  */ 

/* all:指定表达式要与子查询结果集中的每个值都进行比较,当表达式与每个值都满足比较的关系时,才返回true,否则返回false;

Some和any:表示表达式只要与子查询结果集中的某个值满足比较的关系时, 就返回true,否则返回false.

*/

select * from xs where 年龄>all (  select 年龄 from xs where 所在系='中文' )

----------------------------------表的复制 /*把所有计算机系的学生拉出来单独创建一个表*/

create  table  xs_jisuanji    --创建一个新表 (  学号 int,  姓名 varchar(50),  性别 char(10),  年龄 int )

insert into xs_jisuanji       --查询内容 并复制内容到新建的表 select 学号 ,姓名, 性别, 年龄 from xs where  所在系='计算机'H

 

/*复制方式二*/   --创建中文系的表 select 学号,姓名,性别 ,年龄 into xs_zhongwen from xs where 所在系='中文'

---跨数据库表的复制(需要在 表名前加数据库名) select  * into test.dbo.xs  from   n2d09003

 

 

-------------------------------------------- --聚合函数

--求学生总分 select sum(成绩) as 总分数 from xs

--求分数最高分 select max(成绩) as 最高分 from xs

-- 求最低分 select min(成绩) as 最低分 from xs

--求平均分 select avg(成绩) as 平均分 from xs

--统计有多少名学生 select count(成绩) as 人数 from xs

---------------------------------------分类汇总 group by --例1

--查询学生表中有哪些专业 select distinct 所在系 from xs

--group by 实现 select 家乡 from N2D09003 group by 家乡

--例2 求每个地方的学生数 select 家乡,count (*) as 人数 from N2D09003 group by 家乡  --按照家乡  进行分类汇总

--[例3]求每个地方 男生和女生的人数 select 家乡,性别,count(*) as 人数 from N2D09003 group by 家乡,性别  --按照家乡 和  性别 进行分类汇总

/*` [特别注意:1:select 后面出现的列名,必须出现在group by 后面] 2:group by与order by连用,order by 子句中可包含聚合函数. 3、group by关键字后可以使用多个字段名作为分组字段,这样, 系统将根据这些字段的先后顺序对结果集进行更加详细地分组。

--[例4]求每个地方的总人数,并且按照人数从多到少排序 select 家乡,count(*) as 人数 from N2D09003 group by 家乡 order by 人数 desc    --这里的order by 后面可以是聚合函数(如果需要的话)

select * from xs order by max(年龄) dese --错误  不满足使用要求第二条

--------------------------------------------------------------09.12.04

-------------------------------------group by ...having --作用:分类汇总后,再进行筛选 /*查询每个专业总人数,并且显示 总人数>3人的专业*/ select 所在系 , count(*) as  人数 from  xs group  by 所在系 having count(*)>3  --筛选出人数>3人的专业

--------------------group by ....with rollup select 所在系, count(*) as 人数 from xs group by 所在系,性别 with rollup  --在分类汇总之后,再次汇总

select 所在系,性别, count(*) as 人数 from xs group  by 所在系,性别 with rollup  --在分类汇总之后,再次汇总

-------------------group by .... with cube select 所在系,性别,count(*) as 人数 from xs group by 所在系,性别 with cube --比rollup 汇总的更详细(按照 group by 后面的列进行再次汇总)

------------------------------------------------链接查询 /*查找选修了课程号为2且成绩在80分以上的学生姓名和成绩*/ select 姓名,xx.成绩 from xs,xx where xs.学号=xx.学号  --两表链接条件 and 课程号=2 and xx.成绩>80

--加了 表名.列名 (一般无需在列名之前加表名前缀,只有当两个表有相同的列名时才加前缀) select xs.姓名,xx.成绩 from xs,xx where xs.学号=xx.学号  --两表链接条件 and xx.课程号=2 and xx.成绩>80

-----------------------查询  刘德华的成绩 --方式一 省略前缀 select xx.成绩 from xx,xs        where  xx.学号=xs.学号 and 姓名='刘德华'

--方式二 嵌套查询 select 成绩 from xx where 学号=    ( select 学号 from xs where 姓名='刘德华' )

--方式三 内联式查询 select  xx.成绩 from xx            join xs on  xs.学号=xx.学号     --两表连接条件 where 姓名='刘德华'             --其他限制条件

--查询林心如的古汉语成绩 select 姓名, 课程名 ,xx.成绩

from xs  join  xx on  xs.学号=xx.学号          join  kc on  kc.课程号=xx.课程号 and 姓名='林心如' and 课程名='古汉语'

select 姓名 ,课程名 ,xx.成绩 from  xs,xx,kc where xs.学号=xx.学号 and xx.课程号=kc.课程号 and 姓名='林心如' and 课程名='古汉语'

select 成绩 from xx where 课程号= ( select 课程号 from kc where 课程名='古汉语' ) and 学号= ( select 学号 from xs where 姓名='林心如' )

bitsCN.com
声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
MySQL:初学者的基本技能MySQL:初学者的基本技能Apr 18, 2025 am 12:24 AM

MySQL适合初学者学习数据库技能。1.安装MySQL服务器和客户端工具。2.理解基本SQL查询,如SELECT。3.掌握数据操作:创建表、插入、更新、删除数据。4.学习高级技巧:子查询和窗口函数。5.调试和优化:检查语法、使用索引、避免SELECT*,并使用LIMIT。

MySQL:结构化数据和关系数据库MySQL:结构化数据和关系数据库Apr 18, 2025 am 12:22 AM

MySQL通过表结构和SQL查询高效管理结构化数据,并通过外键实现表间关系。1.创建表时定义数据格式和类型。2.使用外键建立表间关系。3.通过索引和查询优化提高性能。4.定期备份和监控数据库确保数据安全和性能优化。

MySQL:解释的关键功能和功能MySQL:解释的关键功能和功能Apr 18, 2025 am 12:17 AM

MySQL是一个开源的关系型数据库管理系统,广泛应用于Web开发。它的关键特性包括:1.支持多种存储引擎,如InnoDB和MyISAM,适用于不同场景;2.提供主从复制功能,利于负载均衡和数据备份;3.通过查询优化和索引使用提高查询效率。

SQL的目的:与MySQL数据库进行交互SQL的目的:与MySQL数据库进行交互Apr 18, 2025 am 12:12 AM

SQL用于与MySQL数据库交互,实现数据的增、删、改、查及数据库设计。1)SQL通过SELECT、INSERT、UPDATE、DELETE语句进行数据操作;2)使用CREATE、ALTER、DROP语句进行数据库设计和管理;3)复杂查询和数据分析通过SQL实现,提升业务决策效率。

初学者的MySQL:开始数据库管理初学者的MySQL:开始数据库管理Apr 18, 2025 am 12:10 AM

MySQL的基本操作包括创建数据库、表格,及使用SQL进行数据的CRUD操作。1.创建数据库:CREATEDATABASEmy_first_db;2.创建表格:CREATETABLEbooks(idINTAUTO_INCREMENTPRIMARYKEY,titleVARCHAR(100)NOTNULL,authorVARCHAR(100)NOTNULL,published_yearINT);3.插入数据:INSERTINTObooks(title,author,published_year)VA

MySQL的角色:Web应用程序中的数据库MySQL的角色:Web应用程序中的数据库Apr 17, 2025 am 12:23 AM

MySQL在Web应用中的主要作用是存储和管理数据。1.MySQL高效处理用户信息、产品目录和交易记录等数据。2.通过SQL查询,开发者能从数据库提取信息生成动态内容。3.MySQL基于客户端-服务器模型工作,确保查询速度可接受。

mysql:构建您的第一个数据库mysql:构建您的第一个数据库Apr 17, 2025 am 12:22 AM

构建MySQL数据库的步骤包括:1.创建数据库和表,2.插入数据,3.进行查询。首先,使用CREATEDATABASE和CREATETABLE语句创建数据库和表,然后用INSERTINTO语句插入数据,最后用SELECT语句查询数据。

MySQL:一种对数据存储的初学者友好方法MySQL:一种对数据存储的初学者友好方法Apr 17, 2025 am 12:21 AM

MySQL适合初学者,因为它易用且功能强大。1.MySQL是关系型数据库,使用SQL进行CRUD操作。2.安装简单,需配置root用户密码。3.使用INSERT、UPDATE、DELETE、SELECT进行数据操作。4.复杂查询可使用ORDERBY、WHERE和JOIN。5.调试需检查语法,使用EXPLAIN分析查询。6.优化建议包括使用索引、选择合适数据类型和良好编程习惯。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前By尊渡假赌尊渡假赌尊渡假赌
威尔R.E.P.O.有交叉游戏吗?
1 个月前By尊渡假赌尊渡假赌尊渡假赌

热工具

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具