ASP动态网页设计_第7章_SQL操作基础

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

7.2 SQL的运算符
1. 算术运算符 有加(+)、减(-)、乘(*)、除(/)和取模(%)。 2. 逻辑运算符 有AND、OR和NOT三种,分别代表逻辑与、逻辑或、逻辑非 运算。常用于构造复合条件表达式。 3. 位运算符 位运算符用以对数据进行按位与(&)、或(|)、异或(^)、求反(~) 等运算。 4. 比较运算符 有小于(<)、大于(>)、 小于等于(<=)、大于等于(>=)、等于 (=)、不等于<>或!=、指定字段值的范围(BETWEEN)、在模式匹 配中使用,实现模式查询(LIKE)、指定字段的可能取值(IN)。 5. 连接运算符 连接运算符(+)用于两个字符串数据的连接,通常也称为字符串运算 符。
2.查询表中满足条件的记录 .
查询满足指定条件的记录通常通过WHERE子句实 现。 【例7.9】比较大小查询: ①查询信息系(IS)全体学生的名单。 SELECT Sname FROM STUDENT WHERE Sdept=‘IS’ ②查询考试成绩不及格的学生的学号和姓名。 SELECT DISTINCT Sno,Sname FROM Course WHERE Grade<60
2.删除数据表 .
语句用法:DROP TABLE 表名 语句功能:删除指定的表。 【例7.28】删除名为STUDENT的表。 DROP TABLE STUDENT
7.4.3 修改数据表结构
ALTER TABLE 语句用于修改数据表的结构。利用该语句,可实现在表 中添加一个字段,或修改已有字段的相关信息。其用法为: ALTER TABLE 表名 ADD ︳MODIFY 字段名 类型[(宽度)] 说明:ADD或MODIFY二者只能选其一,若选用ADD,则表示添加字段; 若选用MODIFY,则为修改指定的字段。 【例7.29】在表STUDENT中添加一个class字段,类型为Nvarchar,允许为 空。 ALTER TABLE STUDENT ADD class Nvarchar NULL 【例7.30】将表STUDENT中Sname字段的宽度更改为20。 ALTER TABLE STUDENT MODIFY Sname nvarchar(20)
【例7.13】空值查询:查询缺少成绩的学生的学号和相应的课程。 SELECT Sno,Cno FROM SC WHERE Grade Is Null 当条件不止一个的时候,可以用AND和OR连接不同的条件, 实现多重条件查询。 【例7.14】多重条件查询:查询信息系年龄在20岁以下的学生姓 名。 SELECT Sname FROM STUDENT WHERE Sdept=’IS’ AND Sage<20
1.查询表中全部列、若干列和经过函数计算 .查询表中全部列、 的列的记录
【例7.4】查询全体学生的详细信息。 SELECT* FROM STUDENT 【例7.5】查询全体学生的姓名和年龄。 SELECT Sname, Sage FROM STUDENT 【例7.6】若当前是2008年,查询全体学生的出生年 份。 SELECT 2008-Sage FROM STUDENT 【例7.7】查询学生的平均年龄。 SELECT AVG(Sage) FROM STUDENT 【例7.8】查询已经选修了课程的学生人数。 SELECT COUNT(DISTINCT Sno) FROM SC
7.3.4 Delete语句
DELETE语句用于删除指定的记录,其用法为: DELETE FROM 表名 [WHERE 条件表达式] 其功能是从指定表中删除满足WHERE子句条件的记录。如果省略WHERE 子句,表示删除表中全部记录,但表的结构定义仍存在于数据库中。 【例7.23】删除全部记录:将表SC中所有学生的选课记录删除。 DELETE FROM SC 【例7.24】删除符合条件的记录:将表STUDENT中学号为200801105的学 生记录删除。 DELETE FROM STUDENT WHERE Sno=’ 200801105’
下面以一个学生选课数据库系统为例,分类介绍SELECT语 句的常用方法。系统中包含如下3个表: 学生表Student由学号(Sno)、姓名(Sname)、性别 (Ssex)、年龄(Sage)、系部(Sdept)5个字段组成,其 中主键为Sno。 课程表Course由课程号(Cno)、课程名(Cname)、选修 课号(Cpno)、学分(Ccredit)、4个字段组成,其中主键 为Cno。 学生选课表SC由学号(Sno)、课程号(Cno)、成绩 (Grade)3个字段组成,其中主键为Sno和Cno。
7.1.2 SQL语句
SQL语句一般由SQL命令、子句及函数构成。SQL命令用于描 述语句将要执行的动作。从功能上划分,常用的SQL命令主要包括 数据查询、数据操纵、数据定义和数据控制等命令。
分 类 数据查询 (DQL) 数据操纵 (DDL) 关键字 SELECT INSERT UPDATE DELETE CREATE 数据定义 (DML) 数据控制 (DCL) DROP ALTER GRANT REVOKE 功 能 用于查询(检索)记录数据 用于向数据表添加(插入)记录数据 用于更新(修改)指定记录中指定字段的数 据 用于从数据表中删除指定记录数据 用于建立新的数据库、表或索引 用于删除数据库、表或索引 用于添加字段或改变对字段的定义 授予用户访问权限 解除用户访问权限
3.对查询结果排序 .
使用ORDER BY 子句可以对查询的结果按照升序(ASC) 或降序(DESC)排序,默认为升序,ASC可以省略。 【例7.15】查询选修课程号为1的学生的学号与成绩,并按分 数降序排列。 SELECT Sno,Grade FROM SC WHERE Cno=’1’ ORDER BY Grade DESC
7.3 SQL的数据操纵语句 7.3.1 Select语句
Select语句用于从指定的表中查询出符合条件的记 录。用法为: SELECT 字段列表 FROM 表名 [WHERE 条件表达式] [GROUP BY字段列表][Having 条件表达式] [ORDER BY字段名][ ASC | DESC]
SQL还提供了大量的函数,利用这些函数,可以进一步 增强SQL的功能。
表7-3 SQL常用函数
函 数 COUNT SUM AVG MAX MIN 统计所选记录的个数
功 能
计算所选记录中指定字段的值的总和 计算所选记录中指定字段的值的平均值 计算所选记录中指定字段的值的最大值 计算所选记录中指定字段的值的最小值
Fra Baidu bibliotek
7.3.3 Update语句
UPDATE语句用于更新或修改指定记录的数据,其用法为: UPDATE 表名 SET 字段名1=值1[,字段名2=值2,…] [WHERE 条件表达式] 【例7.21】修改一条记录:将STUDENT表中学号为200801104 的学生的年龄改为20岁。 UPDATE STUDENT SET Sage=20 WHERE Sno=’ 200801104’ 【例7.22】修改多条记录:将STUDENT表中所有学生的年龄加 1岁。 UPDATE STUDENT SET Sage= Sage+1
第7章 SQL操作基础
本章要点: 本章要点 SQL简介 SQL运算符 SQL数据操纵语句 SQL数据定义语句
7.1 SQL简介
SQL即Structured Query Language结构化查询语言 。绝大 多数流行的关系型数据库管理系统,如Oracle, Microsoft SQL Server, Access,MySQL,Sybase等都采用了SQL语言标准。 7.1.1 SQL语言的特点 (1)统一的数据语言环境 (2)高度的非过程化操作 (3)面向集合的操作方式 (4)嵌入使用的方式 (5)简洁易学
7.3.2 Insert语句
插入操作通常有两种形式,一种是向指定的表中插入单条记 录,另一种是插入子查询的结果,即将一个表中符合条件的 记录插入到另一个表中,可以是一次插入多条记录。其用法 为: INSERT INTO 表名(字段名列表) VALUES(字段值列表)
【例7.18】向STUDENT表中插入一条新学生的记录(学号: 200801102,姓名:李阳,性别:男,年龄:19,系部: IS)。 INSERT INTO STUDENT VALUES(‘200801102’, ‘李阳’, ‘男’, ‘19’, ‘IS’) 【例7.19】向SC表中插入一条选课记录(学号:200801103, 课程号:3) INSERT INTO SC(Sno,Cno) VALUES(‘200801103’, ‘3’) 【例7.20】计算每门选修课程学生的平均成绩,并将结果保存 到学生选课表中。 INSERT INTO SC(AvgGrade) SELECT AVG(Grade) FROM SC GROUP BY Cno
4.对查询结果分组 .
GROUP BY 子句将查询结果按某一列或多列值分组,值相等 的为一组。对查询结果分组的目的是为了细化聚集类函数的 作用对象。如果未对查询结果分组,函数将作用于整个查询 结果。 【例7.16】查询各选修课程的课程号及相应的选课人数。 SELECT Cno,COUNT(Sno) FROM SC GROUP BY Cno 分组以后,若要按一定要求对这些组进行筛选,最终只输出 满足指定条件的组,则可以使用Having短语。 【例7.17】查询选修了3门以上课程的学生的学号。 SELECT Sno FROM SC GROUP BY Sno Having COUNT(*)>3
2.删除数据库 .
语句用法:DROP DATABASE 数据库名 语法功能:删除指定的数据库。 【例7.26】删除名为elective数据库。 DROP DATABASE elective
7.4.2 数据表的创建与删除
1.创建数据库表 .
数据库中的所有数据,实质上是存储在数据表中的。每个数据库中可存 储若干个数据表。若要通过SQL语句创建一个数据表,其用法为: CREATE TABLE 表名(field1 datatype[NOT NULL],…) 【例7.27】创建一个名为STUDENT的数据库表。 CREATE TABLE STUDENT(Sno int NOT NULL, Sname nvarchar(10) NULL, Ssex nvarchar(2)NULL, Sage int NULL, Sdept nvarchar(20) NULL)
【例7.10】确定范围查询:查询年龄在18~20岁之间的学生姓名、年龄和所在 系部。 SELECT Sname, Sage,Sdept FROM STUDENT WHERE Sage BETWEEN 18 AND 20 【例7.11】确定集合查询:查询信息系(IS)、机电系(JD)、管理系(GL) 选修了课程的学生的学号和姓名。 SELECT DISTINCT Sno,Sname FROM SC WHERE Sdept IN(‘IS’, ‘JD’, ‘GL’) 【例7.12】模糊查询(字符匹配查询): ①查询课程名中含有“网页”的课程号、课程名和选修课号。 SELECT Cno,Cname,Cpno FROM Course WHERE Cname Like ‘%网页%’ ②查询姓“李”的学生所有信息。 SELECT * FROM STUDENT WHERE Sname Like ‘李%’ ③查询姓“李”且全名为两个汉字的学生姓名。 SELECT Sname FROM STUDENT WHERE Sname Like ‘李_ _’ 说明:因为一个汉字需要占用两个字符的位置,所以需要使用两个通配符 “_”表示一个汉字。通配符“%”可以表示任意长度的字符串。
SQL子句常用来指定查询条件、指定数据来源或数据组织排列方式。
表7-2 SQL子句
关键字 FROM WHERE GROUP BY ORDER BY
功 能 用于指定需要从其中选择记录的数据表名 用于指定查询条件 用于指定所选择的记录按什么进行分组 用于指定所选记录按哪个字段进行排序以及排序的方式 (升序或降序)
7.4 SQL的数据定义语句
7.4.1 数据库的创建与删除
1.创建数据库 .
在创建数据库之前,必须保证拥有系统管理员的权限,或由系统管理员 授予的创建数据库的权限。其用法为: CREATE DATABASE 数据库名 【例7.25】创建一个名为elective的数据库。 CREATE DATABASE elective
相关文档
最新文档