MySQL数据库——使用DQL查询数据

1.DQL语言

  • 查询数据库数据,如SELECT语句
  • 简单的单表查询或多表的复杂查询和嵌套查询
  • 数据库语言中最核心、最重要的语句
  • 使用频率最高的语句

2.SELECT语法

SELECT   [ALL | DISTINCT]

{  * |  table.* | [ table.field1 [ as  alias1] [, table.field2 [as  alias2]][, …]] } FROM  table_name  [ as  table_ alias  ]    

[ left|out|inner  join  table_name2 ]    #联合查询     

[ WHERE  … ]       #指定结果需满足的条件     

[ GROUP BY …]    #指定结果按照哪几个字段来分组     

[ HAVING …]    #过滤分组的记录必须满足的次要条件     

[ ORDER BY… ]    #指定查询记录按一个或者多个条件排序     

[ LIMIT { [ offset, ] row_count | row_count OFFSET offset}] ;  #指定查询的记录从哪条至哪条 

3.指定查询字段

查询表中所有的数据列结果,采用“*”符号:

select * from student;

可指定查询的结果数据列:

  • 如只查询student表中的学号、姓名、电话
SELECT  StudentNo, StudentName, Phone FROM student;

如区分连接查询时两个表有同名的字段:

SELECT  student.StudentNo , StudentName, StudentResult   
FROM  student , result ;

4.AS子句

AS子句作用:

  • 可给数据列取一个新别名
  • 可给表取一个新别名
  • 可把经计算或总结的结果用另外一个新名称来代替

AS子句用法:

SELECT  StudentNo  AS “学号”  FROM  student;
SELECT  a.StudentNo  FROM  student AS a;
SELECT  Phone+1  AS  Tel  FROM  student;
  •  AS 也可省略不写

5.DISTINCT关键字的使用

DISTINCT的作用:

去掉SELECT查询返回的记录结果中重复的记录(所有返回列的值都相同),只返回一条

 DISTINCT的用法:

SELECT  DISTINCT  字段名1, 字段名2...  FROM  表名 ;
  • ALL 关键字是默认的,返回所有的记录,与之相反

6.使用表达式的列 

表达式一般由文本值、列值、NULL、函数和操作符等组成。

应用场景:

  • SELECT语句返回结果列中使用
  • SELECT语句的ORDER  BY、HAVING等子句中使用
  • DML语句中的where条件语句中使用表达式

7.where条件语句

  • 用于检索数据表中符合条件的记录
  • 搜索条件可由一个或多个逻辑表达式组成,结果一般为真或假
  • 搜索条件的组成:逻辑操作符&比较操作符 

8.逻辑操作符

操作符名称

语法

描述

AND或&& 

a AND b 或 a && b

逻辑与,同时为真,结果才为真

OR或||

a OR b 或 a||b

逻辑或,只要一个为真,则结果为真

NOT或!

NOT a 或 !a

逻辑非,若操作数为假,结果则为真

9.比较操作符

操作符名称

语法

描述

IS NULL

a IS NULL

若操作符为NULL,则结果为真

IS NOT NULL

a IS NOT NULL

若操作符不为NULL,则结果为真

BETWEEN

a BETWEEN b AND c

若a范围在b与c之间则结果为真

LIKE

a LIKE b

SQL模式匹配,若a匹配b,则结果为真

IN

a IN (a1,a2,a3,….)

若a等于a1,a2…中的某一个,则结果为真

10.BETWEEN AND范围查询

根据一个范围值来检索:

SELECT  字段列1,字段2 ,…FROM 表名 WHERE   字段x  BETWEEN  值1 AND  值2

等同于 >= 和 <= 联合使用:

SELECT  *  FROM  subject  WHERE ClassHour   BETWEEN  110   AND  120;

SELECT  *  FROM  subject  WHERE ClassHour >= 110  AND  ClassHour <=120;

11.LIKE模糊查询 

在WHERE子句中,使用LIKE关键字进行模糊查询

  • 与“%”一起使用,表示匹配0或任意多个字符
  • 与“_”一起使用,表示匹配单个字符
 #查询包含“数学”的所有课程
SELECT   *  FROM subject WHERE SubjectName  LIKE  "%数学%";
#查询所有姓名为“李**”三个字的学生信息
SELECT  StudentNo,StudentName FROM student  
WHERE StudentName LIKE "李__";

12.使用IN进行范围查询 

在WHERE子句中使用IN进行范围查询

  • 查询的字段x的值,至少与括号中的一个值相同
  • 多个值之间用英文逗号隔开
SELECT  字段列1,字段2 ,…FROM 表名 WHERE  字段x  IN ( 值1,值2,值3…)

 13.NULL空值条件查询

  •  NULL代表“无值”
  • 区别于零值0和空符串“”
  • 只能出现在定义允许为NULL的字段
  • 须使用 IS NULL 或 IS NOT NULL 比较操作符去比较

 14.连接查询(多表查询)

如需要多张数据表的数据进行查询,则可通过连接运算符实现多个查询

分类包括:

内连接 ( inner  join):

  • 等值和非等值的连接查询
  • 自身连接查询
SELECT  字段1,字段2,…  FROM  table_1 
INNER  JOIN  table_2  ON  table_1.字段x  =  table_2.字段y;
#  INNER JOIN 与 JOIN 是相同的;
#  如table_1中的行在table_2中没有匹配,则不返回;
  • 与单表查询类似,都是SELECT语句
  • 把多个表放到FROM后,并用逗号隔开
  • 可使用AS关键字取别名,便于引用
  • 如无重名查询字段则可省略数据表的指定 

外连接 (out   join):

左连接(LEFT  JOIN):

  • 从左表(table_1)中返回所有的记录,即便在右(table_2)中没有匹配的行
SELECT   字段1,字段2,… FROM table_1 
LEFT  [ OUTER ]   JOIN   table_2    ON  table_1.字段x   =  table_2.字段y;

右连接 ( RIGHT JOIN):

  • 从右表(table_2)中返回所有的记录,即便在左(table_1)中没有匹配的行
SELECT  字段1,字段2,… FROM table_1 
RIGHT  [ OUTER ]  JOIN   table_2   ON  table_1.字段x  =  table_2.字段y;

 自连接查询:

从一个包含栏目ID,栏目名称和父栏目ID的表中,查询父栏目名称和其子栏目名称,表结构如下: 

CREATE TABLE IF NOT EXISTS category(
     categoryId int(10)  auto_increment  primary key,
     categoryName   varchar(32) not null ,
     pid  int(10)
);

 15.ORDER BY排序

  • 对SELECT语句查询得到的结果,按某些字段进行排序
  • 与DESC或ASC搭配使用,默认为ASC

16.MySQL的LIMIT 

LIMIT [m,]n  或  LIMIT  n  OFFSET  m
  • 限制SELECT返回结果的行数
  • m 制定第一个返回记录行的偏移量
  • n 制定返回记录行的最大数目

17.MySQL函数

统计函数:

函数名称

描述

COUNT( )

返回满足SELECT条件的记录总和数,如 SELECT COUNT(*)…

SUM( )

返回数字字段或表达式列作统计,返回一列的总和

AVG( )

通常为数值字段或表达列作统计,返回一列的平均值

MAX( )

可以为数值字段、字符字段或表达式列作统计,返回最大的值

MIN( )

可以为数值字段、字符字段或表达式列作统计,返回最小的值

 18.GROUP BY分组

使用GROUP BY关键字对查询结果分组

  • 对所有的数据进行分组统计
  • 分组的依据字段可以有多个,并依次分组
  • 与HAVING结合使用,进行分组后的数据筛选
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java是一种面向对象的编程语言,被广泛应用于各种不同领域的软件开发。当我们在Java程序中需要进行持久化数据存储时,可以选择使用MySQL作为数据库MySQL是一种开源的关系型数据库管理系统,它使用SQL语言来管理和操作数据库。Java提供了一种称为JDBC(Java数据库连接)的API,用于连接和操作不同的数据库,包括MySQL。 要在Java程序中使用MySQL数据库,首先需要下载和安装MySQL数据库服务器。然后,我们可以使用JDBC API来连接MySQL数据库,并执行各种操作,例如创建表、插入数据、更新数据查询数据等。 在Java程序中,我们需要导入相关的JDBC库,并设置数据库连接参数,例如MySQL的URL、用户名和密码等。然后,我们使用JDBC提供的Connection对象来建立与数据库的连接。 一旦连接成功,我们可以使用JDBC的Statement或PreparedStatement对象执行SQL语句,例如创建表的DDL(数据定义语言)语句、插入数据的DML(数据操作语言)语句和查询数据DQL数据查询语言)语句等。 在执行SQL语句之前,我们需要先编写合适的SQL语句,然后使用JDBC提供的方法来执行和处理结果。例如,使用executeUpdate()方法执行DML语句,使用executeQuery()方法执行DQL语句,并使用ResultSet对象来获取查询结果。 在使用数据库之后,我们需要关闭数据库连接,释放资源。可以使用JDBC的Connection对象的close()方法来关闭数据库连接。 总结而言,Java使用MySQL数据库的过程包括:下载和安装MySQL,导入JDBC库,设置连接参数,建立与数据库的连接,执行各种SQL语句,处理结果,关闭数据库连接。通过这些步骤,我们可以在Java程序中实现与MySQL数据库的交互操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值