数据库——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 ...
随机推荐
- 配置JDK环境变量,与各步骤的意义
配置JDK环境变量 1,新建变量名:JAVA_HOME,变量值:C:\Program Files\Java\jdk1.7.0 (变量值为jdk安装路径) 2,打开P ...
- OC 相关
1.OC runtime的理解[转载] http://www.csdn.net/article/2015-07-06/2825133-objective-c-runtime/1
- 从Eclipse转移到IntelliJ IDEA一点心得
http://www.ituring.com.cn/article/37792 本人使用IntelliJ IDEA其实并不太久,用了这段时间以后,觉得的确很是好用.刚刚从Eclipse转过来的很多人开 ...
- English—句子
1. So far so good. 目前为止,一切都好. 2. Be my guest. 请便.别客气. 3. You're the boss. 听你的. 4.I've heard ...
- Golang里面使用protobuf(proto3)
参考文章:https://developers.google.com/protocol-buffers/docs/gotutorial 1.执行指令: go envgo get github.com/ ...
- [转] Linux下 config/configure/Configure、make 、make test/make check、sudo make install 的作用
转自:http://blog.csdn.net/secondjanuary/article/details/8985795 这些都是典型的使用GNU的AUTOCONF和AUTOMAKE产生的程序的安装 ...
- .NET的Cookie相关操作
using System; using System.Collections.Generic; using System.Text; using System.Web; namespace Comm ...
- 技术|程序员必须要学会Google搜索技巧
程序员必须要学会Google搜索技巧 摘要: 因为Google在我天朝被墙,学FQ请通过Bing进行搜索如何FQGoogle搜索技巧我曾经多次劝我的另一个朋友花10分钟学习一下Google通配符的使用 ...
- Spring中javaMail通过SMTP发送邮件
public final class Emails { /** The java mail sender. */ private static JavaMailSender javaMailSende ...
- Python的第七天
面向对象编程: 编程范式 编程是程序员用特定的语法+数据结构+算法组成的代码来告诉计算机如何执行任务的过程,一个程序是程序员为了得到一个任务结果而编写的一组指令的集合,正所谓条条大路通罗马,实现一个任 ...