数据库——DQL(语句查询)
查询的基本结构:
概念:
查询(DQL)是数据库中最为常用和复杂的一种SQL结构,学会编写查询SQL是程序员必须具备的能力。
要从数据库中查询数据,我们要使用SQL的SELECT语句。标准SELECT查询由SELECT子句、FROM子句、WHERE子句、ORDER BY子句组成。
标准结构:SELECT [DISTINCT] {*|列名[别名], .....}
FROM 表名
[WHERE 过滤条件]
[ORDER BY 列1,列2....]
投影操作:
概念:投影才做是查询语句里必须有的子句,关键字则为SELECT。将选择对表中哪些列进行操作,将这些列出现在结果中。
标准结构:SELECT 列1,列2 FROM 表名
书写方法:
1.如果选择某个表中的多个列,那么列名之间用逗号分隔;
2.如果是单个列,只需要列出该列的列名即可;
3.如果选择所有的列,可以简单的用“*”号代替列名列表。

例: Select f_name,f_club from t_player
Select * from t_team; // *表示代表所有的列(不建议使用,要全写)
表前缀:SELECT t_student.姓名 FROM t_sudent
例:Select t_team.f_teamName from t_ team;
列别名:使用别名,可以使SQL语句和返回的数据更用以读懂、更容易理解。在多个表中有同样的别名的时候,使用别名更容易区分;
在列名或表名用AS关键字类提供别名;
语法:SELECT 列A AS A,列B AS B,列C AS C FROM 表名 AS T
当使用表名的别名时,可以在同一SQL语句中的列名使用别名;
例:SELECT T.列A AS A, T.列B AS B,T.列C AS C FROM 表名 AS T
Select f_name as id,f_club from t_player; //as id表示别名
计算列:在数据库管理中,我们也可以执行返回计算列的SELECT查询。返回计算列意味着数据不存在与数据库中,但是可以冲数据库中的数据构造或者计算的来;
例:将每个学生年龄加上10岁显示:
SELECT 年龄+10 FROM t_student
CONCAT函数:做字符串拼接
投影列也可以用字符串连接,MySQL中字符串连接用CONCAT函数,
例:SELECT CONCAT(姓名,‘-’,年龄) FROM t_student
Select concat (f_teamCoach,’是’,f_teamName,’的主教练’) as 描述,f_teamNum as 球员数 from t_team;
排除重复数据:数据库表的同列中,经常有相同值,多次出现。有时需哟啊确保返回唯一的数据行,这时需要使用DISTINCT关键字来排除重复的行数据。
标准结构:SELECT DISTINCT 列1 FROM 表名
SELECT DISTINCT 性别 FROM t_student
返回限定行数的查询:在MySQL中可以限制查询的行数,并制定从第几行开始到第几行结束。
标准结构:SELECT 列1,列2 FROM t_student LIMIT 开始序号,返回的行数
例:Select * from t_player limit 0,50; //查看从0行开始
如果用1个参数,则表示从第一行开始返回制定行数的结果。
如果用2个参数,则表示从指定行开始返回知道那个行数的结果。
注:LIMIT序号是从0开始。LIMIT只能用于MySQL中。
简单查询中的选择操作:
WHERE关键字:
运算符:

单条件选择操作:WHERE子句应用搜索条件SELECT查询获得的数据,搜索条件可以采用不同的形式,但是条件的值都是布尔值。在此情况下,只对“列C = 值”为真的行干星期。如果条件为真,行就被返回;如果为假或UNKNOWN(因为null值的存在),则被忽略。
标准结构:SELECT 列1,列2 FROM 表 WHERE 列3 = 值
例:Select * from t_player where f_club = ‘曼联’;
多条件选择操作:组合WHERE条件
AND:并且
标准结构:SELECT 列A,列B FROM 表 WHERE 条件1 and 条件2
例:SELECT * FROM t_player WHERE f_dateOfBirth>='1980-1-1' AND f_dateOfBirth<='2000-1-1';
OR:或者
标准结构:SELECT 列A,列B FROM 表 WHERE 条件1 or 条件2
例:SELECT * FROM t_player WHERE f_club='曼联' OR f_club='拜仁慕尼黑';
执行返回测试:BETWEEN;一个范围搜索,大于等于下限,并且小于等于上限。
标准结构:SELECT 列A,列B FROM 表 WHERE 列C BETWEEN 下限 AND 上限
例:Select * from t_player where f_number BETWEEN 5 and 8;
定义集合关系:在制定的某几个值中进行搜索
标准结构 IN: SELECT 列A,列B FROM 表 WHERE 列C IN(值集合);
例:Select * from t_player where f_club in ('曼联','拜仁募集黑','ac米兰');
标准结构 NOTIN: SELECT 列A,列B FROM 表 WHERE 列C NOTIN(值集合);
例:Select * from t_player where f_club not in ('曼联','拜仁募集黑','ac米兰'); //not 表示除了
模糊查询:模糊查询是一种比较使用的过滤方式,利用通配符来实现模糊查询。
通配符:“_”通配符:_ 表示任何单个字符;
“%”通配符:% 表示包含零个或多个任意字符
标准结构 LIKE: SELECT 列A,列B FROM 表 WHERE 列C LIKE 模式
例:Select * from t_player where f_club like ‘曼%’;
Select * from t_player where f_club like ‘%米’; //% 不限定字符
Select * from t_player where f_club like ‘_ _’; // _ 一个表示一个字符
Select * from t_player where f_club not like ‘曼%’; //not 表示除了
空查询:在数据库中判断某列师傅为空不能用 = null,而应该用IS null 或 IN not null。使用其它任何比较运算符来匹配null得到的都是FALSE的结果,比较null = null也是返回FALSE。注:不能用=号或!=等号表示
例:SELECT * FROM t_student WHERE 性别 IS null
Select * from t_player where F_club is null; //是空
Select * from t_player where F_club is not null; //not 不是空
简单查询中的排序操作:
概念:排序操作是指当查询的结果投影出来后以哪一列或及列的顺序进行排列。如果不指定则以数据库默认顺序排列。
标准结构:
单列排序:SELECT 列A,列B,列C FROM 表 ORDER BY 列A
例:Select * from t_player ORDER BY f_date OfBirth; //ASC 升序 可不写默认
Select * from t_player ORDER BY f_date OfBirth DESC; // DESC 降序
其中ORDER BY子句指定列A用于数据排序,列A的值可以是字母、数字、时间等。
多列排序:SELECT 列A,列B,列C FROM 表 ORDER BY 列A,列B,列C....
例:Select * from t_player ORDER BY f_dateOfBirth DESC, f_numberDESC;
Select * from t_player wher f_dateOfBirth BETWEEN’1992-1-1’ and ‘1992-12-9’ ORDER BY f_dateOfBirth DESC, f_numberDESC;
其中ORDER BY子句后指定多个列名时,是根据后面列名的顺序确定优先级。
小结:
基本查询SQL的执行顺序
1.执行FROM
2.WHERE条件过滤
3.执行SELECT投影列
4.执行ORDER BY排序
数据库——DQL(语句查询)的更多相关文章
- 6.2笔记-DQL语句查询数据库
一.DQL语句 1.常量列 SELECT `StudentName` AS 姓名, `Address` AS 地址, '北京信息中心' AS 学校名称 FROM `student`; 2.常用函数 聚 ...
- 数据库SQL语句查询指定时间段内的数据
[摘要]有的时候,我们需要查询数据库某段时间之间的数据,比如2016年5月1号到到5月3号之间用户注册数量(特殊节假日期间)等.那么用SQL语句如何实现呢? 首先,数据表中的存时间的字段比如是addt ...
- SQL server 数据库基础语句 查询语句
这一章要学习查询语句 我看car这一数据 我们就开始打上 select *from car 条件修改 update 表名 set 列名1=值1 where 列名2=值2 //当列名2=值2时 ...
- Statement执行DQL语句(查询操作)
import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; import org.junit.T ...
- Mysql 数据库操作之DDL、DML、DQL语句操作
Mysql 数据库操作之DDL.DML.DQL语句操作 设置数据库用户名密码 l Show databases 查看数据库列表信息 l 查看数据库中的数据表信息 ,格式: use 数据库名: sh ...
- SQL数据库学习,常用语句查询大全
数据库学习 sql server数据库基本概念 使用文件保存数据存在几个缺点: 1.文件的安全性问题: 2.文件不利于查询和对数据的管理: 3.文件不利于存放海量数据 4.文件在程序中控制不方便. 数 ...
- 数据库操作语句类型(DQL、DML、DDL、DCL)
数据库操作语句类型(DQL.DML.DDL.DCL)简介 SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL. 1. 数据查询语言DQL 数据查询语 ...
- 怎样用SQL语句查询一个数据库中的所有表?
怎样用SQL语句查询一个数据库中的所有表? --读取库中的所有表名 select name from sysobjects where xtype='u'--读取指定表的所有列名select nam ...
- 怎么用sql语句查询一个数据库有多少张表
今天在技术群中闲谈时忽然聊到一个问题,那就是当一个数据库中有多张表时怎么快速的获取到表的个数,从而给问询者一个准确的回答. 大家或许会说,这个问题和我们的数据库操作没有太大关系或者不是很挂钩,所以没意 ...
- SQL语句查询数据库的触发器、存储过程、视图以及表的SQL语句
Sql Server数据库用SQL语句查询方法如下: select name from sysobjects where xtype='TR' --所有触发器 select name from sys ...
随机推荐
- outscan 一键批量 get struct2 devMode (CNVD-2016-04656)
之前写的一个玩意 下载地址:http://pan.baidu.com/s/1i5jmEwP 密码:v8v3 一键批量 get struct2 devMode 支持百度.google(google有访问 ...
- C++结构、共用体、枚举
一.结构 结构是C++OOP的基石.学习有关结构的知识僵尸我们离C++的核心OOP更近. 结构是用户定义的类型,同一个结构可以存储多种类型数据,这使得将一个事物的不同属性构成一个对象成为了可能.另外C ...
- Zookeeper启动过程
在上一篇,我们了解了zookeeper最基本的配置,也从中了解一些配置的作用,那么这篇文章中,我们将介绍Zookeeper的启动过程,我们在了解启动过程的时候还要回过头看看上一篇中各个配置参数在启动时 ...
- 解除Team Foundation Server 5个用户的限制
因为所有的用户必须加入到Team Foundation Licensed Users组内才能连接上TFS; 所以只要手工修改数据库,就可以破解5用户限制了.我们以TFSGuest4帐户做测试. 具体操 ...
- JQuery 1.*速成版之二
过滤选择器简称:过滤器.它其实也是一种选择器,而这种选择器类似与 CSS3(http://t.mb5u.com/css3/)里的伪类,可以让不支持 CSS3 的低版本浏览器也能支持.和常规选择器一样, ...
- 双系统 fedora 恢复引导
因为硬盘坏了,所以买了个固态的用用. 先装windows,再装fedora及常用必备的驱动软件装上. 快要完成了心情都挺好,可是在一次关机时window7关机很慢一直在删索引,我嫌时间太长,直接按电源 ...
- EXCEL日期间隔函数
=DATEDIF(D3,TODAY(),"M") 日期一列有逗点,有横线,excel建议日期用横杠. 首先将日期列选择日期格式. 其次通过查找替换,将.换为- 之后用=DATEDI ...
- java安全沙箱(四)之安全管理器及Java API
java是一种类型安全的语言,它有四类称为安全沙箱机制的安全机制来保证语言的安全性,这四类安全沙箱分别是: 类加载体系 .class文件检验器 内置于Java虚拟机(及语言)的安全特性 安全管理器及J ...
- LINUX 磁盘如何分区
fdisk -l 可以查看当前磁盘 假设未分配磁盘为/dev/sdb size=10G fdisk /dev/sdb (m for help) 按照提示应该可以分区成功,注意一点 一个磁 ...
- PSP(11.24~11.30)
27号 类别c 内容c 开始时间s 结束e 中断I 净时间T 作业 构建执法.写博客 14:00 14:40 0m 40m 28号 类别c 内容c 开始时间s 结束e 中断I 净时间T java 编码 ...