查询的基本结构:

  概念:

    查询(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(语句查询)的更多相关文章

  1. 6.2笔记-DQL语句查询数据库

    一.DQL语句 1.常量列 SELECT `StudentName` AS 姓名, `Address` AS 地址, '北京信息中心' AS 学校名称 FROM `student`; 2.常用函数 聚 ...

  2. 数据库SQL语句查询指定时间段内的数据

    [摘要]有的时候,我们需要查询数据库某段时间之间的数据,比如2016年5月1号到到5月3号之间用户注册数量(特殊节假日期间)等.那么用SQL语句如何实现呢? 首先,数据表中的存时间的字段比如是addt ...

  3. SQL server 数据库基础语句 查询语句

    这一章要学习查询语句 我看car这一数据 我们就开始打上 select  *from car 条件修改 update 表名 set 列名1=值1 where 列名2=值2   //当列名2=值2时   ...

  4. Statement执行DQL语句(查询操作)

    import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; import org.junit.T ...

  5. Mysql 数据库操作之DDL、DML、DQL语句操作

    Mysql 数据库操作之DDL.DML.DQL语句操作 设置数据库用户名密码 l  Show databases 查看数据库列表信息 l  查看数据库中的数据表信息 ,格式: use 数据库名: sh ...

  6. SQL数据库学习,常用语句查询大全

    数据库学习 sql server数据库基本概念 使用文件保存数据存在几个缺点: 1.文件的安全性问题: 2.文件不利于查询和对数据的管理: 3.文件不利于存放海量数据 4.文件在程序中控制不方便. 数 ...

  7. 数据库操作语句类型(DQL、DML、DDL、DCL)

    数据库操作语句类型(DQL.DML.DDL.DCL)简介 SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL. 1. 数据查询语言DQL 数据查询语 ...

  8. 怎样用SQL语句查询一个数据库中的所有表?

    怎样用SQL语句查询一个数据库中的所有表?  --读取库中的所有表名 select name from sysobjects where xtype='u'--读取指定表的所有列名select nam ...

  9. 怎么用sql语句查询一个数据库有多少张表

    今天在技术群中闲谈时忽然聊到一个问题,那就是当一个数据库中有多张表时怎么快速的获取到表的个数,从而给问询者一个准确的回答. 大家或许会说,这个问题和我们的数据库操作没有太大关系或者不是很挂钩,所以没意 ...

  10. SQL语句查询数据库的触发器、存储过程、视图以及表的SQL语句

    Sql Server数据库用SQL语句查询方法如下: select name from sysobjects where xtype='TR' --所有触发器 select name from sys ...

随机推荐

  1. SHOI 2009 会场预约 平衡树 STL练习

    题目描述 PP大厦有一间空的礼堂,可以为企业或者单位提供会议场地.这些会议中的大多数都需要连续几天的时间(个别的可能只需要一天),不过场地只有一个,所以不同的会议的时间申请不能够冲突.也就是说,前一个 ...

  2. 常用的shell命令

    作为一名有10年以上使用年龄的Linux/MacOSX用户来说,键盘的作用往往要远大于鼠标.而且,作为一个黑客文化的追随者,我也希望越来越多的用户能认识到命令行的潜在价值,不要把它视为只是计算机专家们 ...

  3. 空的安卓工程添加activity

    1.编写类继承activity,并重写onCreate方法 package org.tonny; import android.app.Activity; import android.os.Bund ...

  4. 10天学会phpWeChat——第六天:实现新闻的后台管理

    通过前面五讲的系列教程,我们完成了一个简单模块的前端发布.列表展示.详情展示.实际生产环境中,所有前台的数据都会有对应的后台操作进行统筹管理.我们称之为后台管理系统. 今天,我们开始<10天学会 ...

  5. C#模拟键盘事件

    public partial class Form1 : Form { public Form1() { InitializeComponent(); } [DllImport("USER3 ...

  6. 计算一维组合数的java实现

    背景很简单,就是从给定的m个不同的元素中选出n个,输出所有的组合情况! 例如:从1到m的自然数中,选择n(n<=m)个数,有多少种选择的组合,将其输出! 本方案的代码实现逻辑是比较成熟的方案: ...

  7. jQuery整体架构源码解析(转载)

    jQuery整体架构源码解析 最近一直在研读 jQuery 源码,初看源码一头雾水毫无头绪,真正静下心来细看写的真是精妙,让你感叹代码之美. 其结构明晰,高内聚.低耦合,兼具优秀的性能与便利的扩展性, ...

  8. MyBatis与Spring整合

    1.单独使用MyBatis 单独使用MyBatis,不结合其他框架,主要步骤是: 1.创建SqlSessionFactory对象 创建方法是通过SqlSessionFactoryBuilder这个类从 ...

  9. MFC与C#连接MYSQL乱码问题

    MYSQL数据库编码为:latin1 问题现象:插入中文乱码,及用中文作参数无法得到相应数据 如select * from userinfo where username='李小明' MFC中解决方法 ...

  10. maven详解之生命周期与插件

    Maven是一个优秀的项目管理工具,它能够帮你管理编译.报告.文档等. Maven的生命周期: maven的生命周期是抽象的,它本身并不做任何的工作.实际的工作都交由"插件"来完成 ...