第4章 关系型数据库标准语言SQL
第4章_结构化查询语言SQL-6学时
说明1:
SELECT S••F联Tro接Um条D短件E语:N:两T后.个学面表接号进多行,姓个联表名接时查,,性询两别的个前,表成提之是绩间一用;定逗有号“隔相开同。” FROM STUDENT,S的C字O段R名E。; WHERE 成•联绩接>的8方0法A:如N:D表“名Ss1Tt.u字Ud段eDn名tE.学=N表号T名=.学s2c.字o号r段e.=学名S号C”ORE.学号
无条件查询小结:
6)结果排序 【例】查询显示COURSE表中的所有信息,并按学分 升序排序。
SELECT * FROM COURSE ORDER BY 学分
2、单表条件查询----SELECT … FROM …WHERE …
【格式】SELECT [ALL | DISTINCT] <字段列表> FROM <表> [WHERE <条件表达式> ]
1975~1979,IBM San Jose Research Lab的关系数据库管 理系统原型System R实施了这种语言
SQL-86是第一个SQL标准
(ANSI)
SQL-89、SQL-92(SQL2)、SQL-99(SQL3) (ANSI)
●现状:大部分DBMS产品都支持SQL,成为操作数据库的标 准语言
第四章 结构化查询语言SQL
本章主要内容
4.1 数据查询 4.2 数据操作 4.3 数据定义 本章作业
SQL语言的基本概述
●SQL:Structured Query Language 缩写
结构化查询语言,目前关系型数据库的通用语言。
●SQL的发展
1974年,由Boyce和Chamberlin提出
关系数据库标准语言SQ
WHERE (职工.仓库号=仓库.仓库号) AND (工资>1230)
例4.7 找出工作在面积大于400的仓库的职工 号以及这些职工工作所在的城市. 分析 条件:面积>400 联接条件:(职工.仓库号=仓库.仓库号) 查询涉及表:仓库,职工 查询结果字段:职工号,城市 语句:SELE 职工号,城市 FROM 仓库,职工 WHERE;
(面积>400) AND (职工.仓库号=仓库.仓库号)
3、嵌套查询
外查询的条件来自内查询的结果
在SQL语句中,一个SELECT-FROM-WHERE语句称 为一个查询块。将一个查询块嵌套在另一个查询块的 WHERE子句或HAVING短语的条件中的返回多个值 NOT IN :属于关系 联接条件:公共字段名 IN SELE 公共字段名 (相当于联接中条件:表1.公共字段名=表2.公共字 段名)
6、简单的计算查询
SQL不仅具有一般的检索能力,而且还有计 算方式的检索 用于计算检索的函数: COUNT()--- ------计数 SUM()--------------求和 AVG()---------求平均值 MAX()---------求最大值 MIN()----------求最小值
查询产生新字段
例4.10 找出和职工E4工资相同的所有职工. SELE 职工号 FROM 职工 WHERE 工资 =(SELE 工资 FROM 职工 WHERE 职工号 =“E4”) 注意:= 与 IN 之间的关系,等号可以用IN 来 替换,而IN不能用=替换 =:返回的值是一个具体的值 IN:返回的是多个值
4、几个特殊运算符
第四章 关系数据库标准语言SQL
罗盛
一、SQL概述
第4章 关系数据库标准语言——SQL
4.2 SQL的数据定义
4.2.1 基本表的创建、修改和删除 4.2.2 索引的创建和删除
4.2 SQL的数据定义
SQL的数据定义功能包括:定义基本表、定义视图、定义索引。除此之外, 还有定义数据库、定义规则、定义存储过程等。SQL的数据定义语句如表 4-2所示。 表4-2 SQL的数据定义语句
操作方式 操作对象 创建 表 CREATE TABLE 删除 DROP TABLE 修改 ALTER TABLE
视图
CREATE VIEW
DROP VIEW
索引
CREATE INDEX
DROP INDEX
4.2.1 基本表的创建、修改和删除
1.
基本表的创建 一般格式如下:
CREATE TABLE<表名>(<列名><数据类型>[列级完整性 约束条件] [,<列名><数据类型>[列级完整性约束条件]]… [,<表级完整性约束条件>] );
4.2.1 基本表的创建、修改和删除
5. 基本表的删除 随着时间的变化,有些基本表无用了,可将其删除。删除基本表命 令的一般格式为: DROP TABLE<表名>[RESTRICT│CASCADE]; 说明: CASCADE(级联):表示在删除基本表时,不仅表中的数据和 此表的定义将被删除,而且此表上建立的索引、视图、触发器等 有关对象一般也都被删除。 RESTRICT(限制):表示在删除基本表时,只有在没有视图或 约束引用基本表 S 中的列时才能执行,否则拒绝删除。 如执行DROP TABLE S语句后,将基本表S的定义(表框架)连同它 的所有元组、索引以及由它导出的所有视图全部删除,并释放相 应的存储空间。
习题4 关系数据库标准语言SQL
习题4 关系数据库标准语言SQL 一、选择题11. SQL是哪几个英文单词的缩写__________。
16.在V isual FoxPro中,使用SQL命令将学生STUDENT中的学生年龄AGE字段的值增加1,应该使用的命令是__________。
A. REPLACE AGE WITH AGE+1B. UPDA TE STUDENT AGE WITH AGE+1C. UPDA TE SET AGE WITH AGE+1D. UPDA TE STUDENT SET AGE=AGE+117.如果学生表STUDENT是使用下面的SQL语句创建的:CREA TE TABLE STUDENT(SNO C(4)PRIMARY KEY NOTNULL);SN C(8);SEX C(2);AGE N(2) CHECK(AGE>15 AND AGE<30)下面的SQL语句中可以正确执行的是________。
A. INSERT INTO STUDENT(SNO,SEX ,AGE)values("S9","男",17)B. INSERT INTO STUDENT(SNO,SEX, AGE)values("李安琦","男",20)C. INSERT INTO STUDENT(SNO,AGE)values("男",20)D. INSERT INTO STUDENT(SNO,SN)values("S9","安琦",16)18.使用SQL语句从表STUDENT中查询所有姓王的同学的信息,正确的命令是______。
A. SELECT * FROM STUDENT WHERE LEFT(姓名,2)= "王"B. SELECT * FROM STUDENT WHERE RIGHT(姓名,2)= "王"C. SELECT * FROM STUDENT WHERE TRIM(姓名,2)= "王"D. SELECT * FROM STUDENT WHERE STR(姓名,2)= "王"习题4 关系数据库标准语言SQL- 119 -26.下面有关交叉表查询的说法中,正确的是_________。
vf第四章关系数据库标准语言SQL
结果中有重复值,如果要 去掉重复值只需要指定DISTINCT短语:
SELECT DISTINCT 工资 FROM 职工 DISTINCT 短语的作用是去掉查询结果中 的重复值。
例4.2检索仓库关系中的所有元组。
sele * from 仓库
*代表要显示的所有字段
• HAVING短语必须跟随GROUP BY使用,它 用来限定分组必须满足的条件;
• ORDER BY短语用来对查询的结果进行排序。
4.2.1简单查询
基于单个表的查询,可以有简单的查询条件。这 样的查询由SELECT和FROM短语构成无条件查询, 或由SELECT 、 from 、 WHERE短语组成条件查询。 例4.1从职工表中检索所有工资值。 SELECT 工资 FROM 职工 SELECT 职工号,工资 FROM 职工
例4.7 找出工作在面积大于400的仓库的职工 号以及这些职工工作所在的城市。
SELE 职工号,城市 FROM 仓库,职工
WHERE(面积>400)AND(职工.仓库号= 仓库.仓库号)
4.2.3嵌套查询
基于多个关系的查询,这类查询所要求的结 果出自一个关系,但相关的条件却涉及多个关系。 例4.8哪些城市至少有一个仓库的职工工资为 1250元?
• 自然联接:当连接属性具有相同属性名,连接 条件取相等条件时,去掉得复属性的等值连接 称为自然连接。
SQL的核心是查询。SQL的查询命令也 称作SELECT命令,它的基本形式由 SELECT-FROM-WHERE查询块组成,多 个查询块可以嵌套执行。VFP的SQL SELECT命令的语法格式如下:(见书p128)
例4.3检索工资多于1230元的职工号。 Sele 职工号 from 职工 where 工资>1230
数据库第4章 SQL语言基础及数据定义功能
第4章SQL语言基础及数据定义功能用户使用数据库时需要对数据库进行各种各样的操作,如查询数据,添加、删除和修改数据,定义、修改数据模式等。
DBMS必须为用户提供相应的命令或语言,这就构成了用户和数据库的接口。
接口的好坏会直接影响用户对数据库的接受程度。
数据库所提供的语言一般局限于对数据库的操作,它不是完备的程序设计语言,也不能独立地用来编写应用程序。
SQL(Structured Query Language,结构化查询语言)是用户操作关系数据库的通用语言。
虽然叫结构化查询语言,而且查询操作确实是数据库中的主要操作,但并不是说SQL只支持查询操作,它实际上包含数据定义、数据查询、数据操作和数据控制等与数据库有关的全部功能。
SQL已经成为关系数据库的标准语言,所以现在所有的关系数据库管理系统都支持SQL。
本章将主要介绍SQL语言支持的数据类型以及定义基本表和索引的功能。
4.1 SQL语言概述SQL语言是操作关系数据库的标准语言,本节介绍SQL语言的发展过程、特点以及主要功能。
4.1.1 SQL语言的发展最早的SQL原型是IBM的研究人员在20世纪70年代开发的,该原型被命名为SEQUEL (Structured English QUEry Language)。
现在许多人仍将在这个原型之后推出的SQL语言发音为“sequel”,但根据ANSI SQL委员会的规定,其正式发音应该是“ess cue ell”。
随着SQL语言的颁布,各数据库厂商纷纷在其产品中引入并支持SQL语言,尽管绝大多数产品对SQL语言的支持大部分是相似的,但它们之间还是存在一定的差异,这些差异不利于初学者的学习。
因此,我们在本章介绍SQL时主要介绍标准的SQL语言,我们将其称为基本SQL。
从20世纪80年代以来,SQL就一直是关系数据库管理系统(RDBMS)的标准语言。
最早的SQL标准是1986年10月由美国ANSI(American National Standards Institute)颁布的。
北理工《实用数据库》期末考试精选题汇总【含答案解析】81
《实用数据库》课程复习提纲第1章数据库系统概述本章要点掌握数据库最常用的术语和基本概念明确常用数据模型组成要素明确最常用的数据模型的区别及优缺点掌握数据库系统的三级模式结构了解数据库系统的组成具体内容1.在数据库方式下,信息处理中占据中心位置的是数据。
2.数据库在磁盘上的基本组织形式是文件。
3.DBS是指数据库系统。
4.数据库系统中,最早出现的数据模型是层次模型。
5.数据库技术的主要目的是有效地管理和存取大量的数据资源。
6.与“文件”结构相比,“数据库”结构有些什么不同?•数据的结构化。
文件由记录组成,但各文件之间缺乏联系。
数据库中数据在磁盘中仍以文件形式组织,但这些文件之间有着广泛的联系。
数据库的逻辑结构用数据模型来描述,整体结构化。
数据模型不仅描述数据本身的特点,还要描述数据之间的联系。
•数据独立性。
文件只有设备独立性,而数据库还具有逻辑独立性和物理独立性。
•访问数据的单位。
访问文件中的数据,以记录为单位。
访问数据库中的数据,以数据项(字段)为单位,增加了系统的灵活性。
第2章数据库设计本章要点•了解数据库设计的任务与步骤•了解需求分析阶段的任务•掌握实体-联系模型•掌握E-R图的概念及设计方法•掌握关系模型的概念•了解数据库的实施、使用与维护具体内容1.实体集的联系类型有如下3种类型:(1)一对一联系设有实体集A与实体集B,如果A中的一个实体,至多与B中的一个实体关联,反过来,B中的一个实体,至多与A中的一个实体关联,称A与B是“一对一”联系类型,记作(1:1)。
(2)一对多联系设有实体集A与实体集B,如果A中的一个实体,与B中可以有多个实体关联,反过来,B中的一个实体,至多与A中的一个实体关联,称A与B是“一对多”联系类型,记作(1∶n)。
(3)多对多联系设有实体集A与实体集B,如果A中的一个实体,与B中可以有多个实体关联,反过来,B中的一个实体,与A中可以有多个实体关联,称A与B是多对多联系类型,记作(m∶n)。
关系数据库查询语言SQL
关系数据库查询语⾔SQL授课⽅式:以下所有的例⼦都在sql server 中进⾏现场调试其执⾏结果,或者让学⽣上讲台练习,让学⽣体会其具体的含义第四章关系数据库查询语⾔SQL(8学时)第1节关系数据库标准语⾔SQL ——查询部分⼀、SQL概述1.SQL标准SQL(Structured Query Language):结构化数据库查询语⾔。
SQL作为⼀个ANSI标准,现在最新的标准是SQL99!是介于关系代数和关系演算之间的结构化查询语⾔,功能包括数据查询(Data Query )、数据操纵(Data Manipulation)、数据定义(Data Definition)、数据控制(Data Control)2.SQL的特点1)综合统⼀SQL语⾔集数据定义语⾔DDL、数据操纵语⾔DML、数据控制语⾔DCL功能于⼀体,语⾔风格统⼀。
可独⽴完成数据库⽣命周期中的全部活动,包括:定义关系模式、建⽴数据库、插⼊数据、查询、更新、维护、数据库重构、数据库安全性控制等⼀系列操作要求,为数据库应⽤系统开发提供了良好的环境。
由于关系模型中实体间连续军⽤关系表⽰,这种数据结构单⼀性带来了数据操作的统⼀,查找、插⼊、删除、修改等每⼀种操作只需要⼀种操作符,从⽽克服了⾮关系系统由于信息表⽰⽅式多样性带来的操作复杂性。
2)⾼度⾮过程化SQL语⾔只要提出“做什么”,⽆须指明“怎么做”!!⽤户⽆须了解存取路径,存取路径的选择及SQL语句的操作过程由系统⾃动完成。
减轻了⽤户的负担,提⾼了数据独⽴性。
3)⾯向集合的操作⽅式Sql 语⾔采⽤集合操作⽅式,不仅操作对象、查询结果可以是元组集合,⽽且⼀次插⼊、删除、更新操作的对象可是元组的集合。
4)以同⼀种语法结构提供两种使⽤⽅式既是⾃含式语⾔,⼜是嵌⼊式语⾔。
⾃含式语⾔:能独⽴的⽤于联机交互的使⽤⽅式,⽤户可以在终端键盘上直接键⼊SQL 命令对数据库进⾏操作。
在SQL SERVER 2000种现场演⽰SQL语句的操作。
第4章 标准查询语言SQL
(2)<列名>:规定了该列(属性)的名称。一个表中不能有两列同名。 (3)<数据类型>:规定了该列的数据类型。各具体DBMS所提供的数据类型是不同的; 本书使用的是SQL Server 2005中规定的数据类型。 (4)完整性约束:完整性约束规则在该命令中较为复杂,为了学习方便,没有把命令 的全部内容一次写出来,这里主要用到下列三类子句:
SQL语言的主பைடு நூலகம்特点
(2)高度非过程化。 SQL语言与各种关系数据库DBMS中的语言一样是一 种高度非过程化语言。使用时,只要指明“做什么?” 不必像高级语言那样指明“怎样做?”,因此用户无 需了解文件与数据的存取路径,这种存取路径的SQL 语句的操作过程是由系统自动来完成。这不仅大大减 轻了编程人员的负担,还有利于提高数据的独立性。
定义数据库内基本表
实例说明: (1)“教师”表:T,由教师编号(TNO)、姓名(TN)、性别(SEX)、 年龄(AGE)、职称(ZC)和所在专业(DEPT)6个属性组成。可记为: T(TNO,TN,SEX,AGE,ZC,DEPT) (2)“课程”表:C,由课程号(CNO)、课程名(CN)、课程性质 (CX)和学分(CT)4个属性组成。可记为: C(CNO,CN,CX,CT) (3)“教师授课”表:TC,由教师编号(TNO)、课程号(CNO)、教 龄(YEAR)3个属性组成,这里的教龄是指教授这门课的教龄。可记为: TC(TNO,CNO,YEAR)
《数据库技术与应用》第4章 习题答案
第4章关系数据库标准语言SQL1. 试述关系数据库标准语言SQL的特点。
解:SQL语言是一种功能强大、通用性好又简单易学的语言,主要特点包括:●综合统一:SQL语言将数据定义语言DDL、数据操纵语言DML、数据控制语言DCL的功能集于一体,语言风格统一,可以独立完成数据库生命周期中的全部活动。
●高度非过程化:用SQL语言进行数据操作只要提出“做什么”,而无需指明“怎么做”。
●面向集合操作:SQL采用集合操作方式。
不仅查询的结果可以是元组的集合,而且一次插入、更新、删除操作的对象也可以是元组的集合。
●支持关系数据库的三级模式结构:外模式对应于视图(View),模式对应于基本表,内模式对应于存储文件。
●简洁易学,灵活易用:SQL语言简洁,只有少量关键字,语法简单。
SQL的使用方式非常灵活,可以直接通过SQL实现人机交互,还可以将SQL语句嵌入到其他高级语言程序中来使用。
2. 概述SQL的基本功能。
解:SQL语言是一种综合的、通用的、功能强大的关系数据库语言,集数据查询(Data Query)、数据操纵(Data Manipulation)、数据定义(Data Definition)和数据控制(Data Control)功能于一体。
数据定义功能。
主要用于定义、删除和修改关系数据库中的对象,数据库对象主要包括基本表、视图等。
数据查询功能。
运用SELECT语句来实现查询数据的功能。
数据操纵功能。
主要用于增加、删除和修改数据库中的数据。
数据控制功能。
主要用来控制用户对数据库的操作权限,包括数据库安全控制和事物管理两部分。
3. 什么是基本表?什么是视图?两者的区别和联系是什么?解:基本表是本身独立存在的表,在SQL中一个关系就对应一个表。
试图是从一个或几个基本表导出的表。
试图本身不独立存储在数据库中,是一个虚表。
即数据库中只存放视图的定义而不存放视图对应的数据。
视图与表的区别:概念不同。
表是使用DBMS的DDL定义的,拥有真实数据的,以独立文件的形式存储在计算机外存上的具有固定模式结构和相应元组数据的实表。
数据库原理及应用-第4章-SQL语言
建立学生表student,由学号、姓名、性别、年龄 、系别5个属性组成.
CREATE TABLE student
(Sno char(8) primary key, Sname char(20) not null ,
Ssex char(1) default ‘男’, Sage int check(Sage>=0 and Sage <=120),
Transact-SQL命令格式的约定
在Transact-SQL语言的命令格式中,
[ ]括起来的内容表示是可选的;
[,…n]表示重复前面的内容;
< >括起来表示在实际编写语句时,用相应的内容替代;
{ }括起来表示是必选的; 类似A|B的格式:表示A和B只能选择一个,不能同时都 选。
数据类型
系统数据类型 SQL Server预先定义好的,可以直接使用。
选择表中的若干行
1)消除重复的行:DISTINCT
1. 查询所有选修过课的学生的学号 SELECT Sno FROM SC
等价于:
SELECT ALL Sno FROM SC
结果中保留了重复的行
SELECT DISTINCT Sno FROM SC
结果中消除了重复的行
2)查询满足条件的元组
通过WHERE子句实现 常用的查询条件
约束 constraint
约束是SQL Server提供的自动保持数据库完整 性的一种方法 。
主键约束 primary key 主键能够唯一地确定表中的每一条记录,主键不能取空值。 主键约束可以保证实体的完整性。
唯一性约束 unique •唯一性约束用于指定一个或多个列的组合值具有唯一 性,以防止在列中输入重复的值。 •使用唯一性约束的字段允许为空值; •一个表中可以允许有多个唯一性约束; •可以把唯一性约束定义在多个字段上;
第4章 MySQL数据库及SQL语言简介
度,保存时在右侧填充空格以达到指定的长度,在访问该数据时再把空格去掉,因此CHAR类型的 数据末尾不能有空格,
VARCHAR指的是变长字符串,在定义时指定字符串的最大长度,保存时按存入字符串的实 际长度分配存储空间,在访问该数据时不会去掉尾部空格。
4.3 MySQL数据类型
4.3.1 数值型 MySQL中支持的数值型包括:整型TINYINT、SMALLINT、MEDIUMINT、
INT、BIGINT,浮点小数型FLOAT、DOUBLE,定点小数型DECIMAL。 整数类型 浮点小数类型和定点小数类型
4.3 MySQL数据类型
4.3.2 字符串型 1. 文本字符串:普通文本字符串和长文本字符串
4.2 SQL概述及功能
4.2.2 SQL的特点及命令动词 1. SQL语言的特点 支持三级数据模式 全体基本表构成了数据库的全局逻辑模式,视图和部分基本表(被用户直接操作)构成了数 据库的外模式,而数据库的存储文件和索引文件则构成了数据库的内模式。
4.2 SQL概述及功能
4.2.2 SQL的特点及命令动词 2. SQL语言的三大功能及命令动词 数据定义:create、alter和drop 数据操纵:select、insert、delete和update 数据控制:grant和revoke
4.3 MySQL数据类型
4.3.3 日期时间型 DATE类型仅存储日期而不存储时间,TIME类型仅存储时间,DATETIME和TIMESTAMP都 是既存储日期也存储时间,如果需要表示年月日时分秒,DATETIME和TIMESTAMP都是可以选 择的数据类型。 4.3.4 选择数据类型的原则
关系数据库标准语言
例:查询考试成绩有不及格的学生的学号。
SELECT DISTINCT 学号 FROM 选课 WHERE 成绩<60; 这里使用了DISTINCT短语,当一个学生有多门课程不及格,他 的学号也只列一次。
(2)确定范围
谓词BETWEEN…AND…和NOT BETWEEN…AND…可以用来查找属 性值在(或不在)指定范围内的元组,其中BETWEEN后是范围 的下限,AND后是范围的上限。 例:查询所有年龄在20岁到23岁之间的学生姓名、系别及其 年龄。
学号 95001
95001
95001
学号
95001 95002
95002
95002 95002
看书上的例子
2、查询满足条件的元组——条件查询
通过WHERE子句来实现, WHERE子句常用的查询条件有: 比较、确定范围、确定集合、字符匹配、空值与多重条件, 其谓词如书上P16所列。
(1)综合统一
SQL语言集DDL、DML、DCL的于一体,包括定义关系模式、录 入数据、建立数据库、查询、更新、维护、数据库重构、数据库安全性 控制等一系列功能。
(2)高度非过程化 用户无需了解存取路径,用户只需提出“做什么”,而不 必指明“怎么做”。存取路径的选择以及SQL语句的操作过 程由系统自动完成。 (3) SQL语言是一种面向集合的语言,每个命令的操作对 象是一个或多个关系,结果也是一个关系。 (4)以统一的语法结构提供两种使用方式——自含式和嵌 入式 自含式语言可以独立使用交互命令,适用于终端用户、 应用程序员和DBA; 嵌入式语言使其嵌入在高级语言中使用,供应用程序员 开发应用程序。
第4章 T-SQL语言
Select select select select
cast('2008-05-08 12:35:29.1234567' as time(7)) cast('2008-05-08 12:35:29.1234567' as date) cast('2008-05-08 12:35:29.123' as smalldatetime) cast('2008-05-08 12:35:29.123' as datetime)
4.1 T-SQL特点
一体化 两种使用方式,交互和嵌入 非过程化语言 简洁
4.2 T-SQL数据类型
分为系统数据类型和用户自定义数据类型 系统数据类型
数字型:整数,小数,负数、分数等
整数int,bigint,smallint,tinyint 非整型decimal(p,s),float
货币:money,smallmoney 日期:datetime,datetime2,date,time, datetimeoffset,smalldatetime
4.2 T-SQL数据类型--例子
Select cast('2007-05-03 12:35:29' as smalldatetime), cast('2007-05-08 12:35:30' as smalldatetime), cast('2007-05-08 12:59:59.998' as smalldatetime)
应用程序----作为一个批处理; 存储过程或触发器-----作为一个批处理; 由EXECUTE命令语句执行的字符串构成一个批处理
Select * from 客户表 Select * from 工作人员表 go
第4章-关系数据库标准语言SQL_Z_New
DB
数据库技术及应用
21
4.1.3 创建数据库和基本表
创建数据库方法有三种: 创建数据库方法有三种: • 使用企业管理器创建数据库; 使用企业管理器创建数据库; • 使用 使用Transact-SQL语言创建 语言创建; 语言创建 • 使用向导创建数据库(略讲)。 使用向导创建数据库(略讲)。
本节介绍使用企业管理器创建数据库。 本节介绍使用企业管理器创建数据库。
DB
数据库技术及应用
22
4.1.3 创建数据库和基本表
使用企业管理器创建数据库 (电脑操作演示,建立 电脑操作演示, 数据库)如下图 电脑操作演示 建立student数据库 如下图 数据库
DB
数据库技术及应用
23
DB
数据库技术及应用
24
4.1.3 创建数据库和基本表 2. 创建基本表
每个数据库最多可创建200万个基本表,用 万个基本表, 每个数据库最多可创建 万个基本表 户创建基本表时,最多可以定义1024个字 户创建基本表时,最多可以定义 个字 段。 • 有两种方法创建基本表: 有两种方法创建基本表: a. 使用 使用Transact-SQL创建基本表; 创建基本表; 创建基本表 b. 使用企业管理器创建基本表。 使用企业管理器创建基本表。 本节介绍使用企业管理器创建基本表。 本节介绍使用企业管理器创建基本表。
DB
数据库技术及应用
4
4.1.1 SQL Server2000概述 概述
• SQL Server的软硬件平台要求 的软硬件平台要求: 的软硬件平台要求 硬件要求: ①硬件要求: 目前的计算机CPU、内存和硬盘等都能满足 目前的计算机 、 SQL Server2000的要求。 的要求。 的要求 软件要求: ②软件要求: SQL Server 2000标准版和企业版只能安装在 标准版和企业版只能安装在 标准版和企业版 服务器版的操作系统中。 服务器版的操作系统中。 Windows 2000和Windows XP操作系统,只 操作系统, 和 操作系统 能安装个人版和开发版 个人版和开发版的 能安装个人版和开发版的SQL Server 2000。 。
sql
(4) SQL语言可以直接以命令方式交互使用,也可以 嵌入到程序设计语言中以程序方式使用。现在很多数据 库应用开发工具都将SQL语言直接融入到自身的语言之 中,使用起来更方便,Visual FoxPro就是如此。这些使 用方式为用户提供了灵活的选择余地。
第4章 关系数据库标准语言SQL
Visual FoxPro在SQL方面支持数据定义、数据查询 和数据操纵功能,但在具体实现方面仍存在一些差异。 另外,由于Visual FoxPro自身在安全控制方面的缺陷, 因此它没有提供数据控制功能。
第4章 关系数据库标准语言SQL
例4.1 在jbqk表中,检索所有记录的所有字段。
SELECT * FROM
jbqk
命令中的*表示显示所有的字段,数据来源是jbqk表,
结果如图4.1所示。
第4章 关系数据库标准语言SQL
图4.1 例4.1查询结果
第4章 关系数据库标准语言SQL
例4.2 在jbqk表中,检索所有职称名称。 SELECT DISTINCT 职称 FROM jbqk
第4章 关系数据库标准语言SQL
SUM(字段名),求所有满足条件的记录在该字段的和。 COUNT(*或字段名),求所有满足条件的记录总数, 字段名可以不写。 ③ 除COUNT函数外,能进行统计的字段必须是表示数 值的数据类型。而且用了统计函数后,视情况会将统计的记 录压缩成一条或多条。 FROM 表文件名 设定查询的数据来源。 注意:① 书写应注意各个子句之间以空格分隔,子句 内部各个项目之间使用逗号分隔。 ② 通常每个子句写一行,每行后要用“;”续行。 下列用一些例子说明SELECT命令的使用,例ቤተ መጻሕፍቲ ባይዱ中所用 到的数据表——职工基本情况表(jbqk.dbf),具体内容如表 4.1所示。
数据库系统概论:第4章 关系数据库标准语言——SQL语言1
4)删除完整性约束
例:删除“Height”属性列上的CHECK约束。 ALTER TABLE Student DROP
CONSTRAINT Chk1;
27
5)删除属性列
例:删除Student表中新增加的“Height”属性列。 ALTER TABLE Student DROP COLUMN Height;
2
2、SQL语言应用情况
(1) Oracle、Sybase、Informix、Ingres、 DB2、SQL Server、Rdb等大型数据库管理系统 实现了SQL语言; (2) Dbase、Foxpro、Acess等PC机数据库管理 系统部分实现了SQL语言; (3)可以在HTML(Hypertext Markup Language, 超文本标记语言)中嵌入SQL语句,通过WWW访 问数据库; (4)在VC、VB、Delphi、PB也可嵌入SQL语句。
/*外键约束*/ Credit NUMBER);
21
例3:建立一个学生选课表SC,所有约束条件均为表
级完整性约束。
CREATE TABLE SC
( Sno CHAR(8),
Cno CHAR(8),
Grade NUMBER,
PRIMARY KEY(Sno,Cno),
/*主键约束*/
FOREIGN KEY(Sno) REFERENCES Student(Sno)
25
3)增加完整性约束
例:给Student表中“Height”属性列增加一 个CHECK约束,要求学生的身高要超过140厘 米才行。 ALTER TABLE Student ADD CONSTRAINT Chk1 CHECK(Height>140);
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SQL命令动词
表4-1 SQL命令动词 SQL功能 数据查询 数据定义 数据操纵 数据控制 命令动词 SELECT CREATE、DROP 、ALTER INSERT、UPDATE、DELETE GRANT、REVOKE
Visual FoxPro程序设计(等级考试版)
4.2 查 询 功 能
4.2.4 嵌套查询 例:查询具有最高工资的职工的信息。 嵌套查询: SELECT * FROM zg WHERE 工资=; (SELECT MAX(工资) FROM zg) 结果显示如下图所示:
Visual FoxPro程序设计(等级考试版)
4.2.4 嵌套查询
思考:查询有职工的工资高于“E3”的工资的仓库的所
Visual FoxPro程序设计(等级考试版)
4.2.6 排序 SQL SELECT命令可以对查询结果进行排序,实现 排序的短语是ORDER 了BY,具体格式如下: ORDER BY Order_Item [ASC | DESC][,Order_Item [ASC |DESC]…]
ORDER BY短语中的每个Order_Item都必须对应查询 结果中的一列。
4.2.5 几个特殊运算符 例4.7 查询工资在1220~1270元之间的职工所有信息。
SELECT * FROM zg WHERE 工资 BETWEEN 1220 AND 1270
等价于 SELECT * FROM zg WHERE 工资>=1220 AND 工 资<=1270
Visual FoxPro程序设计(等级考试版)
例4.2 从zg关系中检索工资多于1220元的职工号。 SELECT 职工号 FROM zg WHERE 工资>1220 结果显示如图4-3所示:
图4-3 检索工资结果
Visual FoxPro程序设计(等级考试版)
例4.3 检索在仓库WH2或WH1工作,并且工资少于 1250元的职工的职工号。 SELECT 职工号 FROM zg WHERE (仓库号=“WH2” OR 仓库号=“WH1”) AND 工资<1250
4.2.5 几个特殊运算符 例: 在dgd关系中查询在2001年7月1日至7月31日之间签 订过订单的职工的职工号。 SELECT 职工号 FROM dgd WHERE 订购日期 BETWEEN {^2001-7-1} AND {^2001-7-31} 等价于 SELECT 职工号 FROM dgd WHERE 订购日期>= {^2001-7-1} AND 订购日期<={^2001-7-31}
Visual FoxPro程序设计(等级考试版)
4.2.3 简单的连接查询
例4.4 找出工作在面积大于340的仓库的职工的职工号 和职工所在的城市。
SELECT 职工号,城市 FROM ck,zg; WHERE ck.仓库号=zg.仓库号 AND 面积>340 结果显示如下图所示:
Visual FoxPro程序设计(等级考试版)
条件查询——由SELECT、FROM和WHERE短语构成 条件查询
SELECT select_Item FROM TableName WHERE FilterCondition
指定查 询条件
Visual FoxPro程序设计(等级考试版)
4.2.2 简单查询
例4.1 从zg关系中检索所有职工的工资值。
Visual FoxPro程序设计(等级考试版)
加入 DISTINCT 后的SELECT命令如下: SELECT DISTINCT 仓库号 FROM zg WHERE 工资>1210 结果显示如下图所示:
Visual FoxPro程序设计(等级考试版)
4.2.3 简单的连接查询
简单的连接查询是一类基于多个表的查询
思考:什么样的嵌套查询可以被转换为连接查询?
例:将“例4.5 查询哪些城市的仓库至少有一个职工工 资为1220元?”改用连接查询来做。
Visual FoxPro程序设计(等级考试版)
4.2.5 几个特殊运算符 SQL SELECT有如下几个特殊运算符: BETWEEN…AND——介于…和…之间,并且包括两 个边界值。
Visual FoxPro程序设计(等级考试版)
4.2.5 几个特殊运算符 例4.8 从gys关系中查询出全部公司的信息,不要工厂 和其他供应商的信息。 SELECT * FROM gys WHERE 订货商名 like “%公 司” 查询结果:
Visual FoxPro程序设计(等级考试版)
4.2.5 几个特殊运算符 例: 从学生关系中检索出所有王姓学生的信息。
在城市及其面积。
[ 参考答案 ]
注:2007年9月全国计算机等级考试二级(VFP)笔试 试卷第一大题——选择题,第(33)小题:“查询选 修课程号为‘101’的课程得分最高的同学”与此题类似。
Visual FoxPro程序设计(等级考试版)
附:嵌套查询与连接查询之间的转换 有些嵌套查询可以转换为连接查询,但也有一些嵌套 查询不能被转换为连接查询。
SQL是一种一体化的语言,它包含数据定义、数据 查询、数据操纵和数据控制等方面的功能,可以完成 数据库活动中的全部工作。
SQL是一种高度非过程化的语言
SQL非常简洁
SQL可以直接以命令方式交互使用,也可以嵌入到 程序设计语言中以程序方式使用。
Visual FoxPro程序设计(等级考试版)
4.2.4 嵌套查询 嵌套查询——在SQL中,可以将一个select查询语句嵌 入到另一个select查询语句中,这称为嵌套查询。
将内嵌的select语句称为子查询。
标准的SQL允许子查询可以嵌套多层,但在VFP中, 不允许多层嵌套,即子查询不能再嵌套了。 一般来说,当查询所要求的结果出自一个关系,但 查询条件却涉及多个关系时。例如,当检索关系X中的 元组时,它的条件依赖于相关的关系Y中的元组的属性 值,这时使用SQL的嵌套查询功能将非常方便。
第4章 关系型数据库标准语言 ——SQL
Visual FoxPro程序设计(等级考试版)
内容提要
4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 SQL概述 查询功能 操作功能 定义功能 典型例题解析 小型案例实训 本章小结 习题
Visual FoxPro程序设计(等级考试版)
4.1 SQL概述
Visual FoxPro程序设计(等级考试版)
4.2.4 嵌套查询 例4.6 查询和职工E4工资相同的所有职工的记录 嵌套查询: SELECT * FROM zg WHERE 工资=; (SELECT 工资 FROM zg WHERE 职工号=“E4”) 结果显示如下图所示:
Visual FoxPro程序设计(等级考试版)
查询是SQL的核心 SQL的查询命令——SELECT
SQL-SELECT命令可以从一个表或多个表或视图 中检索数据
Visual FoxPro程序设计(等级考试版)
4.2.1 创建SELECT命令
SELECT命令详解:
(略)
Visual FoxPro程序设计(等级考试版)
4.2.1 创建SELECT命令
Visual FoxPro程序设计(等级考试版)
4.2.4 嵌套查询 例4.5 查询哪些城市的仓库至少有一个职工工资为1220 元? 嵌套查询: SELECT 城市 FROM ck WHERE 仓库号 IN; (SELECT 仓库号 FROM zg WHERE 工资=1220)
结果显示如下图所示:
SQL——Structured Query Language(结构化查询语 言)的缩写
SQL目前已成为关系数据库的标准语言。
现在所有的关系型数据库管理系统都支持SQL, VFP也不例外。
SQL包含了数据定义、数据操纵和数据控制功能。
Visual FoxPro程序设计(等级考试版)
SQL的主要特点
LIKE——字符串匹配运算符 通配符 “%” 表示0个或多个字符
通配符 “_”(下划线)表示一个字符(可以是一个 ASCII码字符,也可以是一个汉字字符)。
!= ——在SQL中“不等于”用“!=”表示,另外还可 以用否定运算符 NOT 写出等价的命令。
Visual FoxPro程序设计(等级考试版)
排序的顺序可以是升序(ASC)或降序(DESC)
可以按一列或多列排序,当指定多列排序时,各列列 名之间用“,”分隔。
Visual FoxPro程序设计(等级考试版)
4.2.6 排序 例4.9 查找出zg表中所有职工的信息并将结果按工资升 序排序。
SELECT * FROM zg ORDER BY 工资
可以在以下3个区域中创建SELECT命令: 在命令窗口中 在VFP程序中 在查询设计器中
Visual FoxPro程序设计(等级考试版)
4.2.2 简单查询
简单查询——是针对单个表的查询
查询仅涉及一个表,是一种最简单的查询。
无条件查——由SELECT和FROM短语构成无条件查询 SELECT select_Item FROM TableName
SELECT 工资 FROM zg 结果显示如图4-2所示:
图4-2 检索所有的工资值
Visual FoxPro程序设计(等级考试版)
例:检索zg关系的所有元组。 SELECT 仓库号,职工号,工资 FROM zg 或 SELECT * FROM zg 查询结果:
Visual FoxPro程序设计(等级考试版)
或
SELECT * FROM zg ORDER BY 工资 ASC
查询结果: