数据库——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 ...
随机推荐
- bzoj2441 小W的问题
bzoj2441 按照纵坐标排序,从小到大插入数列中,每个点i维护一个data[i]表示未插入序列中横坐标小于i的数的个数(用线段树)其实点i就是“W”中第一个极小点,那么f[j]就等于1到j-1中所 ...
- 使用dispatch_semaphore_t实现event的基本功能
在Windows平台下, 对线程的同步控制,可以有Critical Section,Mutex,Semaphore,Event 等方式. 在IOS平台,使用GCD进行简单的多线程编程时,可以使用dis ...
- python-模块安装方法
python程序会使用很多模块,通常安装模块的方法是找到官方网站,选择合适的版本下载安装,很麻烦.为了简化安装第三方的模块,python提供了easy_install工具,只需要一条命令就可以安装合适 ...
- Character类的2个定义大小写方法以及charAt(int index)方法
API文档charAt(int index)是这样定义的: charAt(char index):Returns the char value at the specified index.在指定的索 ...
- Businessworks的设计思想
Businessworks的设计思想基于一下三篇ATA: <从Eclipse平台看交易平台化>,强调微内核和扩展机制实现 <Google Guice平台模块化开发的果汁>,讨论 ...
- 调试腾讯微博 win8 版 共享失败的问题
我是社交控,喜欢分享内容.分享到 腾讯微博时总失败,心想不能就这么算了,要看看异常的细节. 在VS 2012里,我选择 Debug > Debug Installed App Package, ...
- mac java 安装路径
google了一下,发现了这篇文章Important Java Directories on Mac OS X,可以使用工具命令"/usr/libexec/java_home"来定 ...
- vmware安装无法打开内核设备 \\.\Global\vmx86: 系统找不到指定的文件
刚刚安装好了虚拟机,Windows XP 64bit Professional,安装好了开发环境,然后重启机器后虚拟机就打不开了,提示“vmware安装无法打开内核设备 \\.\Global\vmx8 ...
- git服务器新增仓库
在已有的git库中搭建新的库,并将本地的git仓库,上传到服务器的git库中,从而开始一个新的项目. 首先是在本地操作: 在本地新建文件夹spider,进入到spider中:如下
- 并发-Java中的Copy-On-Write容器
Copy-On-Write简称COW,是一种用于程序设计中的优化策略.其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改, ...