数据查询入门

数据查询入门

什么是数据查询

数据库的查询是对数据表中现有的数据进行逐行筛选的工作,它按照要求从符合查询条件的记录中把指定的字段值提取出来,形成一个结果呈现给用户。

简单查询

select 命令在SQL语句中使用频率是最高的。在select语句中包含大量的子句,用于完成不同的查询功能,如排序(OPDER BY)、条件(WHERE)、分组(GROUP BY)等

基本语句

select命令的最基本的语法如下

select select_list
from table_name
[WHEREsearch_condition]
[ORDER BY order_expression[ASC|DESC]]
[LIMIT [offset] rowcount]

语法说明

select_list :用户要查询的字段列表,“**” 代表所有字段

table_name : 用户要查询信息的表(表或视图)。

where : 查询的筛选条件开始关键字。

search_condition: 查询条件的内容。

order_expression: 按照那些字段进行排序

asc: 表明是升序

Desc: 将结果按照降序排序

limit: 限制每次查询出来的数据字数

基本应用

select 全麦查询

用户有时需要查看当前表内的所有内容,分析表的信息内容是,可以采用下面的方式查看学生表中所有的数据

示例:

select* from StudentInfo
select 选择列查询
select id,studemtNmae,age from StuddentInfo

查询中的别名

当直接使用select查询后,由于在设计数据库是使用的是都是英文的字段名,而且有的字段名不是很好理解,对用户来说不够直观。

使用AS关键字为字段定义别名

语法:

select 字段名1 AS 别名,字段名2 AS 别名 .... FROM 表名
使用空格为字段定义别名

语法

select 字段名1 别名,字段名2 别名 ... FROM 表名

条件查询

使用where子句限制查询结果

全表查询虽然能够将所有的数据查询出来,但是这样操作也有一定的弊端,如果表的数据量非常大,则会消耗掉大量的内存和系统资源,而且一般的全表查询结果,对于用户来说作用不是很大,有时候只需要查看某些闲着条件内的数据,因此需要按照条件进行数据的查询。

单条件查询

单条件查询是指在where语句后面只有一个条件,

例如,要查询年龄在21岁以上的学生信息

select id,StudentName,Age from StudentInfo where Age >21;
多条件符合查询

有时候条件可能不仅仅是一条,可能是多个条件的组合。在这种情况下就需要使用到上一张中的逻辑运算符来组合多个条件,逻辑运算符有:“NOT” 、“AND”、“OR”。

示例:

select id,StudentName,Age,Gender from StudentInfo where Age =20 AND Gender='女';

使用Distinct 消除重复行

在查询某列数据的时候,可能返回的结果中存在重复的值,而用户对于重复的值可能只需要知道一个即可。

例如要查询学生表中登记的学生都有那些班级的,只需要知道这些班级编号即可。因为一个办理一定存在多名同学,所以使用之前的查询方式,返回的班级编号结果一定有很多重重复的行,这些重复的行值只需要消除成1个,select 语句中的 Distinct关键字就是用来解决这个问题的

示例:

select DISTINCT classID   FROM  studentinfo

使用LIMIT限定查询返回行

当表中的数据量比较多的时候,用户只需要看到前面的几行就能达到查询的目的,这时用LIMIT 关键字可以限制返回的查询结构的行数.LIMIT限定查询一般和数据查询排序结合使用,对比排序后的数据取前面一定量的结果。

语法

LIMIT[位置偏移量] 行数

位置偏移量: 用于只是MYSQL从哪一行开始显示,是一个可选参数,如果不指定该参数,将会从结果集的第一条记录开始(从零开始计数);

行数:只是返回的记录条数

例如:现在我们要显示studentInfo表的前四条记录,命令如下:

select id,studentName,Gender,Age from studentInfo LIMIT 4;

注意:

LIMIT 语句时MYSQL 特有的功能。Oracle 、SQL Server 限定查询返回行使用的时其他语句。

处理Null值

MySQL中经常有些字段值为Null。Null是一种 比较特殊的情况,如果直接通过sql语句查询Null是查询不到的结果都是0条,用字段名=Null和字段名 !=Null 判断结果是错误的。

所以MySQL提供了一个专门针对Null查询的关键字就是 isNull 和 is not Null.

使用Order by 进行查询排序

表中数据是按照添加的物理顺序存放的,但是在查询的时候,我们会需要按照某个规则来对结果进行顺序的排序然后在显示,这是就需要用到Select命令中的排列子句来帮忙实现了。

单列排序

单列排序是指按照表中的某一列进行排序,即ORDER BY 子句后面只有一个列名。比如我们向根据学生的年龄从小往大或从大往小 来排列查询的结果。

示例:

select id,studentName,Gender,Age from studentInfo  ORDER BY Age ASC  -- 升序的方式进行查询
select id,studentName,Gender,Age from studentInfo   ORDER BY Age  DESC -- 降序的方式进行查询

注意:

(1) :在数据库中默认是以升序进行排序的,所以ASC可以略去不写

(2) :在数据中,Null值比所有的值都要小

多列排序

多列排序时,order by 子句后面跟多个字段,字段之间用逗号隔开,每个字段后面都可以跟ASC或DESC 。多列偶爱徐的基本运算过程时:数据库引擎会按照第一个字段以及升、降序规则排序查询结果,如果查询结果里在这个字段上有重复值,则对这些存在重复的数据行按照第二个排列字段及其升、降序规则进行排序,以此类推

案例

select id,studentName,Gender,Age from studentInfo  ORDER BY Age DESC,Gender ASC
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值