关系数据库标准语言_第1页
关系数据库标准语言_第2页
关系数据库标准语言_第3页
关系数据库标准语言_第4页
关系数据库标准语言_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、关系数据库标准语言 第1页,共25页,2022年,5月20日,7点22分,星期一本节内容SQL概述数据定义数据查询数据操纵第2页,共25页,2022年,5月20日,7点22分,星期一 SQL概述SQL是结构化查询语言Structured Query Language的缩写。可以说查询是SQL语言的重要组成部分,但不是全部,SQL还包括数据定义、数据操纵和数据控制功能等部分。SQL已成为关系数据库的标准数据语言,所以现在的关系数据库管理系统都支持SQL。SQL的特点:(1)一体化。集数据定义、数据查询、数据操纵、数据控制于一体。(2)高度非过程化。只需告诉计算机做什么(what),无需告诉计算机

2、怎么做(how)。(3)功能强大,简捷易用。(4)提供两种使用方式:命令方式和嵌入方式。第3页,共25页,2022年,5月20日,7点22分,星期一SQL命令动词SQL功能命令动词数据查询Select数据定义Create、drop、alter数据操纵Insert、update、delete数据控制Grant、revoke第4页,共25页,2022年,5月20日,7点22分,星期一表结构表数据createalterdropselectinsertupdatedelete创建修改删除增加更新删除查询第5页,共25页,2022年,5月20日,7点22分,星期一10.6表结构定义(数据定义)SQL语言

3、的数据定义功能包括表结构的增、删、改。内容:用create table 表名()创建一个表的结构;用drop table 表名删除一个表(结构及数据);用alter table 表名 add|drop|alter修改表的结构。第6页,共25页,2022年,5月20日,7点22分,星期一SQR数据类型VB数据类型 描述 Char String定长字符串 Date Date 日期 Datetime Date 日期时间 Decimal Currency Int LongFloat Double Real Single Money Currency Number Currency Smallint I

4、nteger Varchar String 第7页,共25页,2022年,5月20日,7点22分,星期一10.6.1 定义表的结构考查一下表的结构,它由如下两部分组成: 字段定义(字段名,类型,宽度,精度,索引,空值否) 主关键字和外部关键字1、create table 语句基本结构 create table 表名(字段名1 类型(宽度,精度)NULL|NOT NULL,字段名2 类型(宽度,精度)NULL|NOT NULL )例1:建立仓库表 create table 仓库(仓库号 CHAR(3) NOT NULL,城市 CHAR(10),面积 INTEGER)第8页,共25页,2022年,

5、5月20日,7点22分,星期一 (2)当主关键字或外部关键字是单个属性时 更为简捷的方法是直接在该字段的定义后加上primary key或references 表名。建立班级表时加入主键:例1create table 班级 (班级代码 integer not null primary KEY,名称 char(12),班长 char(8),电话 CHAR(12)建立学生表时加入主键: 例2create table 学生 (学号 char(12) not null primary key,姓名 char(8),性别 char(2),籍贯 char(8),班级代码 integer,计算机 integ

6、er,外语 integer,数学 integer,平均成绩 integer,总成绩 integer)第9页,共25页,2022年,5月20日,7点22分,星期一10.6.2 删除数据库中的表 drop table 表名 功能是直接从数据库中删除表名所对应的表。例:删除学生表例3: drop table 学生10.6.3 修改表的结构 alter table 表名 add|drop|alter,其中add、drop、alter分别表示增、删、改。1、增加新字段例4 : alter table 学生 add 评语 char(10)2、删除字段例5 : alter table 学生 drop 评语第

7、10页,共25页,2022年,5月20日,7点22分,星期一3、 修改旧字段 alter table 表名 alter column 字段名 类型(宽度,精度)NULL|NOT NULL set default 表达式set checkdrop defaultdrop check将计算机字段的类型改为字符型例6:Alter table 学生 alter 计算机 char(10)第11页,共25页,2022年,5月20日,7点22分,星期一10.7 数据操纵INSERT数据的插入UPDATE数据的更新(修改)DELETE数据的删除第12页,共25页,2022年,5月20日,7点22分,星期一10

8、.7.1 插入记录格式:insert into 表名(字段名1,字段名2,) values(表达式1,表达式2,)功能:在指定表中增加一条新记录。例7:在班级表中增加一条记录。 INSERT INTO 班级表 ( 班级代码, 名称, 班长, 电话 )VALUES (1, “企业管理”, “刘平, 7668000)例8:在仓库表中增加一条记录。 insert into 仓库表 values(WH5,太原,380)例9:在学生表中增加记录insert into 学生表 (学号,姓名,性别) values(200801011110,李平,女)注意当前记录其它未插入数据的字段处为空。第13页,共25页

9、,2022年,5月20日,7点22分,星期一10.7.2 更新记录 格式:update 表名 set 字段名1=表达式1,字段名2=表达式2 where 条件功能:更新满足条件记录的字段值。例10:给WH1仓库中的全体职工工资上调10% update 职工 set 工资=工资*1.1 where 仓库号=“WH1”例11:求所有学生的平均成绩和总成绩。 update 学生 set 平均成绩=(数学+外语+计算机)/3,总成绩=数学+外语+计算机例12:在仓库表中将所有城市名前加上“中国”两字。 update 仓库 set 城市=“中国”+trim(城市)第14页,共25页,2022年,5月20

10、日,7点22分,星期一10.7.3 删除记录 格式: delete from 表名 where 条件功能:删除表中满足条件的记录。例13:删除职工表中仓库号值为WH2的元组。 delete from 职工 where 仓库号=“WH2”例14:删除仓库表中仓库号值为WH2的元组。 delete from 仓库 where 仓库号=“WH2”第15页,共25页,2022年,5月20日,7点22分,星期一10.8 数据查询select查询(select语句)是SQL的核心。基本格式: SELECT 目标列表达式 输出项列表 FROM 源表或视图列表 数据来源 WHERE 查询条件投影联接选择第16

11、页,共25页,2022年,5月20日,7点22分,星期一10.8.1 目标列表达式1、查询指定列(投影运算) 在大多数情况下,用户只对表中的部分字段感兴趣,此时可在SELECT子句的目标列表达式中指定要查询的属性。例15:查询全体职工的职工号和工资 select 职工号,工资 from 职工注意:目标列表达式中的字段顺序应和题意要求一致,而不受表中字段顺序的影响。2、去掉重复行例16:从职工表中检索所有工资值 select distinct 工资 from 职工第17页,共25页,2022年,5月20日,7点22分,星期一 由于有些职工的工资是相同的,输出结果中可能有重复行,此时,可在目标列表

12、达式前加distinct短语以去掉重复。即:例17: select distinct 工资 from 职工3、查询全部列 要将表中所有属性列列出,一种方法是在SELECT后列出所有列名,另一种更为简单,将目标列表达式用*代替。例18:检索仓库关系中的所有信息 select * from 仓库例19:查询仓库“WH2”中所有职工的所有基本情况。 select * from 职工 where 仓库号=“WH2”4、查询经过计算的值 SELECT子句的目标列表达式不仅可以是表中的属性列,还可以是含有各种运算及函数的表达式。第18页,共25页,2022年,5月20日,7点22分,星期一 集函数(字段函

13、数) 在SELECT语句中可使用的函数:count(),sum(),avg(),max(),min(),分别用于计数、求和、求平均值、求最大值和求最小值。它们的参数均可以为一个特定的列名,列名前可加distinct短语以去掉重复。另外count(*)用于统计记录数。例20:求仓库WH1每月支付的工资总数。 select sum(工资) from 职工 where 仓库号=“WH1”例21:求仓库WH1中职工的最高工资和最低工资。 select max(工资),min(工资) from 职工 where 仓库号=“WH1”第19页,共25页,2022年,5月20日,7点22分,星期一例8:查询工

14、资在12001500之间的职工及其所属仓库。Select 职工号,仓库号 from 职工 where 工资 between 1200 and 1500 (闭区间)例22:查询地处太原、北京、上海的所有供应商。 select 供应商号,供应商名 from 供应商 where 地址 in (“太原”,“北京”,“上海”)例23:查询不在北京、上海的所有仓库的仓库号及面积。 select 仓库号,面积 from 仓库 where 城市 not in (“北京”,“上海”)例24: 查询城市名以”北”开头的城市select 仓库号,城市,面积from 仓库表 where 城市 like(北*)第20页

15、,共25页,2022年,5月20日,7点22分,星期一例25: 闭区间上查询 select 仓库号,城市,面积from 仓库表 where 面积 between 390 and 500例26 查询面积在300平米以上,500平米以下(不包括500平米)的仓库信息。 select * from 仓库 where 面积=300 and 面积=2 having短语总是跟在group by 子句之后,不可单独使用。Where子句和having短语的区别在于作用对象不同。Where子句作用于基本表或视图,从中选择满足条件的元组;而having短语作用于组,从中选择满足条件的组。第22页,共25页,202

16、2年,5月20日,7点22分,星期一 .联接查询 在查询的数据涉及到多个表时,必须用联接条件将这些表联接起来。例30:找出工资多于1230元的职工号和他们所在的城市。 分析:职工号来源于职工表,城市来源于仓库表,所以应在FROM后列出涉及到的表,在WHERE后加上联接条件。 select 职工号,城市 from 职工,仓库; where 职工.仓库号=仓库.仓库号 and 工资1230 外部关键字 联接条件 主关键字第23页,共25页,2022年,5月20日,7点22分,星期一例31:职工号来源于职工表,城市来源于仓库表,二表通过同名字段仓库号联接。select 职工号,城市,面积 from 职工表,仓库表where 职工表.仓库号=仓库表.仓库号 and 面积400例32select 职工号,城市,工资 from 职工表,仓库表where 职工表.仓库号=仓库表.仓库号 and 工资1230第24页,共25页,2022年,5月20日,7点22分,星期一 嵌套查询 一个select-from-where称为一个查询块

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论