440 likes | 609 Views
数据库原理与应用. 数据库的基本管理 --- 学生信息的更新与查询. 3. 3. 熟练掌握向表中添加、删除、修改数据的方法. 3. 1. 熟练掌握简单查询数据的方法. 2. 培养职业素质. 培养团队协作精神、语言表达能力. 4. 学习目标:. 任务的提出. 在本章,我们将在上一章实现的 《 晓灵学生管理系统 》 数据库和各基本表的基础上,输入各相关数据。在输入的过程中,讲解数据的插入、删除与修改的各种方法。最后我们要对晓灵学生管理系统所涉及的数据进行查询或检索,因为我们在数据库中存储数据并不是目的,我们更观注于对数据的查询和使用. 需考虑的问题.
E N D
数据库原理与应用 数据库的基本管理 ---学生信息的更新与查询
3 3 熟练掌握向表中添加、删除、修改数据的方法 3 1 熟练掌握简单查询数据的方法 2 培养职业素质 培养团队协作精神、语言表达能力 4 学习目标:
任务的提出 在本章,我们将在上一章实现的《晓灵学生管理系统》数据库和各基本表的基础上,输入各相关数据。在输入的过程中,讲解数据的插入、删除与修改的各种方法。最后我们要对晓灵学生管理系统所涉及的数据进行查询或检索,因为我们在数据库中存储数据并不是目的,我们更观注于对数据的查询和使用
需考虑的问题 • 如果想要向表中添加、删除、修改数据可以使用相关命令或企业管理器的图形界面实现。 • 如果想要查询表中的数据,一般使用T-SQL语句,使用查询分析器实现。 • 查询数据的语句为 • Select 列名 • from 表名 • Where 条件 • 查询语句的使用非常复杂,在学习情境4中,我们学习简单的数据查询方法,包括列的过滤,行的过滤等内容。
相关知识点 1.使用INSERT语句插入表数据 插入一行数据 INSERT [INTO] 表名 [ (列名 [,…n ] )] VALUES ( { 表达式 | NULL | DEFULT } [,…n ] )
相关知识点 2. 使用SELECT语句查询表数据 SELECT [ 源表名.]选择列名 [,…n ] FROM 源表名[,…n ] [ WHERE 逻辑表达式 ]
相关知识点 3. 使用UPDATE语句修改表数据 UPDATE 表名 SET { 列名=表达式 | NULL | DEFULT } [,…n ] [WHERE逻辑表达式]
相关知识点 4. 使用DELETE语句删除表数据 DELETE 表名 [WHERE逻辑表达式]
Insert语句插入数据 • 【任务4.1】使用insert语句《晓灵学生管理系统》数据库的学生表中添加一条记录。 INSERT INTO student VALUES ( ‘40101’,’温荣奇’,’男’,1985-5-15,’计算机’,’z0401’,’2004-9-1’,’h1101’,’ 天津市河东区塘沽路8号’,’ 13520201187’)
注意事项 • insert…values 语句一次只能输入一行数据。 • 不能对IDENTITY列、计算列等进行赋值。 • 向表中插入数据时,不能违反完整性约束的要求。
使用update语句更新数据 • 【任务4.4】使用update语句更新所有行的数据 update grade set gradenum=gradenum+5 go
更新部分数据 • 【任务4.5】使用update语句更新部分数据。 UPDATE student STEsBanji= ‘z0402’ Where sID=’040101’
使用delete语句删除数据 • 【任务4.6】使用delete语句删除学生表中学号为‘040101’的学生的信息。 DELETEstudent WHERE sID= ‘040101’ • 【任务4.7】使用delete语句删除学生表中所有学生的信息。 DELETEstudent
SELECT语句查询 几种查询工具的介绍 • 企业管理器
SELECT语句查询 几种查询工具的介绍 • 查询分析器
SELECT语句的语法结构 Select语句的功能是从数据库中检索行,并允许从一个或多个表中选择一个或多个行或列。虽然 SELECT 语句的完整语法较复杂,但是其主要的子句可归纳如下: SELECT select_list[ INTO new_table ] FROM table_source [ WHERE search_condition ] [ GROUP BY group_by_expression ] [ HAVING search_condition ] [ ORDER BY order_expression [ ASC | DESC ] ]
1. 选择列 1.指定列 语法结构: select 列名1 [,… n] from 表名1 [,… n] 【任务4.8】使用select语句从学生表中查询学生的学号,姓名,性别等信息。 Select 学号,姓名,性别 From 学生表
1. 选择列 提示:在数据检索时,列的顺序由SELECT 语句中列表的顺序决定。可以和定义表时列的顺序不同,这不会影响数据在表中的存储 思考题:选择 employees 表中所有雇员的employeeid , lastname , firstname 和title 列 (注:此表在northwind示例数据库中,可在northwind数据库中练习,答案在下页)
1. 选择列 答案: use northwind select employeeid,lastname,firstname,title from employees go
1. 选择列 2.使用通配符(*) 如果需要检索表中所有的列可以使用 “ * ”来代替。 【任务4.9】使用通配符选择所有数据列。 Select * From student 提示:应避免使用通配符,因为它会大大降低查询的效率
1. 选择列 3. 改变查询结果中的列名 默认情况下,数据查询结果中显示的列名就是创建表时使用的列名,但对于新增加的列,系统显示为“无列名”。如果我们想实现更改列名可以有两种方法实现 • 使用 “=“ • 使用 AS 关键字
1. 选择列 【任务4.10】在结果集中为列重新命名。 Select 学号=sid,姓名=sname,性别=ssex,出生日期=sbrithday From student 或 Select sid as 学号,sname as 姓名,ssex as 性别,sbrithday as 出生日期 From student
1. 选择列 4、在结果集中添加注释列 【任务4.11】在学生表结果集中手机号前加 上“移动电话”说明列。 Select sid,sname,ssex,szhuanye,saddr, ’移动电话:’,stel From student
2. 选择行 如果在工作中我们只查询部分数据记录,即找出满足某些条件的数据记录。此时我们可以在SELECT语句中使用WHERE子句来指定查询条件,过滤不符合条件的数据纪录行。 其语法形势为: Select 列名1[,…n] From 表名1[,…n] Where 查询条件
2. 选择行 1. 使用比较运算符
2. 选择行 【任务4.12】查询不及格学生的信息。 Select sid,kcid,gradenum From grade Where gradenum<60 提示:比较运算符不仅可以比较数值类型的列值,还可以比较字符串类型的列值,但对于英文字母不区分大小写。
2. 选择行 【任务4.13】在学生表中,查询学号为‘040108’号学生的信息。 Select * From student Where sid=’040108’
2. 选择行 • 范围条件选择查询 查询的条件可以设定在某个范围之内,使用between关键字即可,使用between关键字注意以下几点: • 使用between关键字指定查询范围时,包含范围内的边缘值。 • Between搜索条件可以与使用 and和比较操作符组成的表达式(>=x and <=y)相互替换,推荐使用between关键字。但如果搜索条件中不能包含范围内的边缘值,那么只能使用and和比较操作符组成的表达式(>x and <y)来实现 • 如果搜索条件是在某个范围以外,那么可以使用not between来实现。同样要考虑边缘值的问题
2. 选择行 【任务4.14】使用between关键字查询数据,查询成绩表中成绩在70-90分之间的学生的学号、课程号和成绩(含70和90分)。 select sid,kcid,gradenum from grade where gradenum between 70 and 90
2. 选择行 • 列表条件选择查询 如果想要查询的数据在一个指定的列表中,那么可以用in关键字指定搜索条件。使用In关键字要注意如下几点: • 使用In指定搜索条件与使用OR 操作符连起来的一系列比较操作符设定搜索条件的结果是相同的,即SQL Server对它们的处理是一样的。 • 如果搜索条件是在某个列表范围之外,可以使用 NOT IN关键字实现。
2. 选择行 【任务4.15】在学生表中,查询专业为“计算机”或“信息管理”的学生的信息,请用两种方法实现,大家比较下面两段代码。 • Select * From student Where szhuanye in (‘计算机’,‘信息管理’) • Select * From student Where szhuanye =‘计算机’or szhuanye =‘信息管理’
2. 选择行 • 基于未知值(NULL)选择查询 前面我们提到过,如果在输入数据时,没有为列指定值并且该列允许取空值的话,系统会将一个空值(NULL)填入到表中。注意:空值是一个特殊状态不等同于0或空格。如果我们相基于空值作为条件进行查询可以使用 IS NULL或IS NOT NULL关键字实现。IS NULL可以检查表中某列的取值是否为空。在使用IS NULL关键字时要注意以下几点 • 把空值和任何表达式进行比较都会导致失败,因为空值不等同于任何表达式 • 如果希望某列能够取空值,在定义表时要设定该列的NULL属性。
2. 选择行 【任务4.16】使用null关键字查询数据,在宿舍信息表中,查询宿舍长为空值的宿舍号的信息。 Select * From hostel Where hosshezhang is null
2. 选择行 • 多条件选择查询 在where子句中可以使用逻辑运算符连接多个查询条件,构成一个更复杂的条件查询。SQL Server 主要有三个逻辑运算符 • AND 它连接两个条件,如果两个条件都成立,则组合起来的条件成立 • OR 它连接两个条件,如果两个条件中有一个成立,则组合起来的条件成立 • NOT 它引出一个条件,将该条件的值取反
2. 选择行 【任务4.17】多条件查询,在学生表中,查询专业为“计算机”,并且性别为“男”的学生的信息。 Select * From student Where szhuanye=’计算机’ and ssex=’男’
2. 选择行 6.字符串的模糊匹配 如果我们的查询条件不能确定,或我们不想进行精确查询,可以使用模糊匹配的方法进行查找。 对于模糊查找使用“ LIKE”操作符
2. 选择行 使用通配符举例
2. 选择行 【任务4.18】模糊条件查询,在学生表中查找家住在天津市的学生的信息。 Select * From student Where saddr like ‘天津%’ 【任务4.19】在课程信息表中查询名称中含有‘原理’的课程的信息。 Select * From course Where kcname like ‘%原理%’
2. 选择行 • 消除结果集中重复的行 如果结果集中有重复的值,那么可以使用 DISTINCT关键字来消除重复的值。 • 【任务4.20】查询学生表中专业的信息。 • Select szhuanye from student
3 . FROM子句 Select 语句的from子句中指定的是查询数据源。可以由以下几部分组成: 1.单个表 2.多个表联合 3.视图 语法结构: from {表名|视图名}[,…n] 提示:当我们指定多个数据源时,可以用逗号分隔,但最多只能指定16个数据源
3 . FROM子句 1. 为表指定别名 可以为from子句中的表指定别名 有两种格式: 表名 AS 别名 表名 别名
3 . FROM子句 以下三个查询的含义完全相同 Select c.customerid ,c.firstname from customers as c Select c.customerid ,c.firstname from customers c Select customerid , firstname from customers