目录

  • 1 阶段1模块一Java Web编程准备
    • 1.1 学习导航
    • 1.2 任务一进行系统需求分析与总体设计
    • 1.3 任务二搭建开发环境
    • 1.4 任务三制作静态页面
    • 1.5 任务四部署并运行第一个JSP文件
    • 1.6 模块一课件
    • 1.7 模块一习题
  • 2 阶段1模块二Java Web编程入门
    • 2.1 学习导航
    • 2.2 任务一认识JSP页面组成元素
    • 2.3 任务二认识JSP的内置对象
    • 2.4 任务三使用out对象输出信息
    • 2.5 任务四获取客户端请求数据
    • 2.6 任务五实现页面跳转
    • 2.7 任务六实现访问控制
    • 2.8 任务七制作网页计数器
    • 2.9 模块二 课件
    • 2.10 模块二习题
  • 3 阶段1模块三JavaWeb数据库编程
    • 3.1 学习导航
    • 3.2 任务一使用MySQL
    • 3.3 任务二使用SQL操作数据
    • 3.4 任务三认识连接数据库的步骤
    • 3.5 任务四使用Statement处理数据
    • 3.6 任务五使用PreparedStatement处理数据
    • 3.7 模块三课件
    • 3.8 模块三习题
  • 4 阶段1模块四JavaWeb基础阶段实训
    • 4.1 课件
    • 4.2 IT新闻资讯系统
  • 5 阶段2模块五Java Web应用优化
    • 5.1 学习导航
    • 5.2 任务一认识软件设计分层架构
    • 5.3 任务二使用分层架构实现管理员登录
    • 5.4 模块五课件
    • 5.5 模块五习题
  • 6 阶段2模块六Java Web开发业务应用
    • 6.1 学习导航
    • 6.2 任务一实现页面的分页显示
    • 6.3 任务二使用SmartUpload组件实现文件上传下载
    • 6.4 任务三使用图表组件显示动态数据图表
    • 6.5 模块六课件
    • 6.6 模块六习题
  • 7 阶段2模块七Servlet技术基础
    • 7.1 学习导航
    • 7.2 任务一认识Servlet
    • 7.3 任务二创建并运行一个简单的Servlet
    • 7.4 任务三使用Filter解决中文乱码问题
    • 7.5 模块七课件
    • 7.6 模块七习题
  • 8 阶段2模块八MVC开发模式
    • 8.1 学习导航
    • 8.2 任务一认识MVC模式
    • 8.3 任务二使用MVC模式实现用户登录
    • 8.4 模块八课件
    • 8.5 模块八习题
  • 9 阶段2模块九  Java Web进阶阶段实训
    • 9.1 模块九课件
    • 9.2 在线收藏夹
  • 10 阶段3模块十学生会网站项目开发
    • 10.1 模块十课件
  • 11 实训题库
    • 11.1 网络留言板系统1
    • 11.2 网络留言板系统2
    • 11.3 猜数游戏
    • 11.4 学生成绩查询系统
    • 11.5 场馆管理系统
    • 11.6 物资管理系统
    • 11.7 网络书签
    • 11.8 商品库存系统
    • 11.9 火车车次管理系统
    • 11.10 会议室预定系统
    • 11.11 人员档案管理系统
    • 11.12 新闻资讯系统
任务二使用SQL操作数据
  • 1 知识链接
  • 2 任务实现
  • 3 同步实训

【问题引入】

可以使用SQL来访问和操作数据库中的数据,那么SQL是什么?在MySQL数据库管理系统中,如何使用SQL来管理数据库中的数据?

【实现思路】

使用SQL中数据操作语言来管理MySQL数据库数据,也就是增(insert)、删(delete)、改(update)、查(select)语句。

【知识链接】

SQLStructured Query Language(结构化查询语言)的缩写,是用于访问和处理数据库的标准的计算机语言。可以把 SQL 分为三类:数据操作语言(DML)、数据定义语言 DDL)和数据控制语言(DCL)。在应用程序开发中数据操作用得比较普遍,在SQL中数据操作语言主要是增、删、查、改操作,它们都有特定的语法。

创建数据库和表后,需要对表中的数据进行操作,包括插入、删除和修改操作。

1.插入数据

INSERT INTO 语句用于向表格中插入新的行,INSERT语句一般不会产生输出。可以使用以下几种方式插入数据:

插入完整的行

插入指定的列

插入多行

1)插入完整的行。

语法1

 

 

INSERT INTO 表名称 VALUES (1, 2,...);

 

其中存储到每个表列中的数据在VALUES子句中给出,对每个列必须提供一个值。如果某个列没有值,应该使用NULL值(假定表允许对该列指定空值)。各个列必须以它们在表定义中出现的次序填充

2)插入指定的列。语法1比较简单,但并不安全,应该尽量避免使用。为此语法2提供了插入数据的另一种比较安全的方式。

语法2(指定所要插入数据的列):

 

 

INSERT INTO表名称 (1, 2,...) VALUES (1, 2,...);

 

此语法中在表名称后面的括号里明确地给出了列名。在插入行时,MySQL将用VALUES列表中的相应值填入列表中的对应项。VALUES中的第一个值对应于第一个指定的列名,第二个值对应于第二个列名,依此类推。

因为提供了列名,VALUES必须以其指定的次序匹配指定的列名,不一定按列出现在实际表中的次序。其优点是,即使表的结构改变,此INSERT语句仍然能正确工作。

3)插入多行。

语法3

 

 

INSERT INTO表名称 (1, 2,...) VALUES (1行值1, 1行值2,...),( 2行值1, 2行值2,...),... ( n行值1, n行值2,...);

 

每组值用一对圆括号括起来,用逗号分隔各组。

2.更新数据

UPDATE 语句用于更新(修改)表中的数据。

语法:

 

 

UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

 

UPDATE语句以WHERE子句结束,它告诉MySQL更新哪一行,若没有WHERE子句,MySQL将会更新表中的所有行。在更新多个列时,只需要使用单个SET命令,每个“列=值”对之间用逗号分隔(最后一列之后不用逗号)。

3.删除数据

DELETE 语句用于删除表中的行。

语法:

 

 

DELETE FROM 表名称 WHERE 列名称 =

 

DELETE FROM要求指定从中删除数据的表名,WHERE子句过滤要删除的行,如果省略WHERE子句,则将删除表中所有的行,但是DELETE不删除表本身。

4.数据查询语句

SELECT语句是最经常使用的SQL语句,它的用途是从一个或多个表中选取(查询)数据,由 SQL 查询语句获得的结果被存放在一个结果集中。可以使用以下几种方式查询数据:

选择指定的列查询

查询全部列

限制查询结果

排序查询

条件查询

使用聚合函数查询

分组查询

1)选择指定的列查询。

语法:

 

 

SELECT 列名称 FROM 表名称

 

在选择多个列时,一定要在列名之间加上逗号,但最后一个列名后不加。

2)查询全部列。

语法:

 

 

SELECT * FROM 表名称

 

给定一个通配符*,则返回表中所有的列。列的顺序一般是列在表定义中出现的顺序。一般除非确实需要表中的每个列,否则最好不使用*通配符。虽然使用通配符会省事,不用明确列出所需的列,但检索不需要的列通常会降低检索和应用程序的性能。

3)限制查询结果。

语法1

 

 

SELECT 列名称 FROM 表名称 LIMIT  row_count

 

为了限制被SELECT语句返回的行数,可以使用LIMIT子句,row_count表示显示的记录数。

语法2

 

 

SELECT 列名称 FROM 表名称 LIMIT offset, row_count

 

该语法表示返回从第offset+1条记录开始的row_count条记录。

4)排序查询。使用ORDER BY子句能明确地对SELECT语句检索出的数据进行排序。

语法:

 

 

SELECT 列名称 FROM 表名称 ORDER BY 列名

 

ORDER BY子句默认按照升序对记录进行排序,若希望按降序对记录进行排序,可以使用 DESC 关键字。ORDER BY子句可取一个或多个列的名字,其中列名之间用逗号分开。

5)条件查询。WHERE 子句用于提供查询条件,它必须紧跟在FROM子句之后。

语法1(比较运算):

 

 

SELECT 列名称 FROM 表名称 WHERE 比较运算符

 

WHERE子句中运算符如表3-3所示。

3-3  比较运算符

                           

 

操作符

 
 

说明

 
 

=

 
 

等于

 
 

!=

 
 

不等于

 
 

 
 

大于

 
 

 
 

小于

 
 

>=

 
 

大于等于

 
 

<=

 
 

小于等于

 

语法2(模式匹配):

LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。

 

 

SELECT 列名称 FROM 表名称 WHERE 列名称 LIKE搜索模式

 

搜索模式有字面值、通配符或两者组合构成的搜索条件,SQL 通配符可以替代一个或多个字符,表3-4所示为SQL中的通配符。

3-4  SQL中的通配符

                   

 

通配符

 
 

描述

 
 

%

 
 

替代一个或多个字符

 
 

_

 
 

仅替代一个字符

 
 

[charlist]

 
 

字符列中的任何单一字符

 
 

[^charlist]

 

或者

 

[!charlist]

 
 

不在字符列中的任何单一字符

 

语法3(范围比较):用于范围比较的关键字有两个:BETWEENIN。当要查询的条件是某个值的范围时,可以使用BETWEEN关键字。BETWEEN ... AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或日期。

 

 

SELECT 列名称 FROM 表名称 WHERE 列名称 BETWEEN 1 AND 2

 

其中值1不能大于值2NOT BETWEEN... AND选取不在两个值之间的数据范围。

使用IN关键字可以指定一个值表,值表中列出所有可能的值,当与值表中的任一个匹配时,即返回TRUE,否则返回FALSE

 

 

SELECT 列名称 FROM 表名称 WHERE 列名称 IN (1, 2, …, n)

 

语法4AND OR 运算符用于基于一个以上的条件对记录进行过滤。AND OR 可在 WHERE 子语句中把两个或多个条件结合起来。AND是用在WHERE子句中的关键字,用来指示检索满足所有给定条件的行。OR操作符与AND操作符不同,它指示MySQL检索匹配任一条件的行。

6)使用聚合函数查询。SELECT子句的表达式中还可以包含聚合函数。聚合函数的操作面向一系列的值,并返回一个单一的值。表3-5中列举了常用的聚合函数。

3-5  MySQL常用的聚合函数

                       

 

函数

 
 

说明

 
 

AVG()

 
 

返回某列的平均值

 
 

COUNT()

 
 

返回某列的行数

 
 

MAX()

 
 

返回某列的最大值

 
 

MIN()

 
 

返回某列的最小值

 
 

SUM()

 
 

返回某列值之和

 

语法:

 

 

SELECT聚合函数名(列名称) FROM

 

7)分组查询。分组是在SELECT语句的GROUP BY子句中建立的,使用HAVING子句来过滤分组。GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组。GROUP BY子句必须出现在WHERE子句之后,ORDER BY子句之前。

语法:

 

 

SELECT 列名称, 聚合函数名(列名称) FROM 表名称 [WHERE 列名称 操作符 ] GROUP BY

 

列名称 [HAVING 条件]