已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6讲SQL语言基础及数据定义功能 本讲内容 6 1SQL概述 SQL StructuredQueryLanguage 结构化查询语言 是关系数据库的标准语言 SQL是一个通用的 功能极强的关系数据库语言 现在所有的关系数据库管理系统都支持SQL 就连个人计算机上使用的数据库也不例外 6 1SQL概述 一 SQL语言的发展 最早的SQL原型是IBM的研究人员在70年代开发的 该原型被命名为SEQUEL 由StructuredEnglishQUEryLanguage 随着SQL语言的颁布 各数据库厂商纷纷在他们的产品中引入并支持SQL语言 但尽管绝大多数产品对SQL语言的支持大部分是相似的 但它们之间也存在着一定的差异 SQL就是关系数据库管理系统 RDBMS 的标准语言 最早的SQL标准是1986年10月由美国ANSI公布的 随后 ISO于1987年6月也正式采纳它为国际标准 并在此基础上进行了补充 到1989年4月 ISO提出了具有完整性特征的SQL 并称之为SQL 89 在SQL89的基础上 经过3年多的研究和修改 ISO和ANSI共同于1992年8月又公布了SQL的新标准 即SQL 92 或称为SQL2 SQL 92标准也不是非常完备的 1999年又颁布了新的SQL标准 称为SQL 99或SQL3 二 SQL语言特点 1 综合统一 集数据定义语言 DDL 数据操纵语言 DML 数据控制语言 DCL 功能于一体 可以独立完成数据库生命周期中的全部活动 用户数据库投入运行后 可根据需要随时逐步修改模式 不影响数据的运行 数据操作符统一 定义关系模式 插入数据 建立数据库 对数据库中的数据进行查询和更新 数据库重构和维护数据库安全性 完整性控制等 2 高度非过程化 非关系数据模型的数据操纵语言 面向过程 必须制定存取路径 SQL只要提出 做什么 无须了解存取路径 存取路径的选择以及SQL的操作过程由系统自动完成 3 简洁易用 SQL功能极强 完成核心功能只需9个动词 4 面向集合的操作方式 非关系数据模型采用面向记录的操作方式 操作对象是一条记录 SQL采用集合操作方式 操作对象 查找结果可以是元组的集合一次插入 删除 更新操作的对象可以是元组的集合 5 以多种方式使用 SQL语言可以直接以命令方式交互使用 是独立的语言 SQL又是嵌入式语言 SQL能够嵌入到高级语言 例如VisualBasic C C Java等 程序中 供程序员设计程序时使用 三 SQL的基本概念 1 三级模式结构 SQL支持关系数据库三级模式结构 2 基本表 本身独立存在的表SQL中一个关系就对应一个基本表一个 或多个 基本表对应一个存储文件一个表可以带若干索引 3 存储文件 逻辑结构组成了关系数据库的内模式物理结构是任意的 对用户透明 4 视图 从一个或几个基本表导出的表数据库中只存放视图的定义而不存放视图对应的数据视图是一个虚表用户可以在视图上再定义视图 6 2学生 课程数据库简介 1 学生 课程模式S T 学生表 Student Sno Sname Ssex Sage Sdept 课程表 Course Cno Cname Cpno Ccredit 学生选课表 SC Sno Cno Grade 2 Student表数据 3 Course表数据 4 SC表数据 6 3SQL语言功能概述 SQL按其功能可分为四大部分 数据定义功能 数据控制功能 数据查询功能和数据操纵功能 数据定义功能用于定义 删除和修改数据库中的对象 数据查询功能用于实现查询数据的功能 数据操纵功能用于实现对数据库数据的增加 删除和修改 数据控制功能用于实现控制用户对数据库的操作权限 6 4数据定义功能 一 定义基本表 CreateTable的一般格式为 CREATETABLE 列级完整性约束定义 列级完整性约束定义 表级完整性约束定义 所要定义的基本表的名字 表中所包含的属性列的名字 指明列的数据类型 在定义表的同时可以定义与表有关的完整性约束条件 如果完整性约束只涉及到表中的一个列 则可以在列级完整性约束定义处定义 也可以在表级完整性约束定义处定义 如果完整性约束条件涉及表中多个属性列 则必须在表级完整性约束定义处定义 在定义基本表时可以同时定义列的取值约束 在列定义同时定义的约束我们称为列级完整性约束定义 在表定义的最后定义的完整性约束我们称为表级完整性约束 在列级完整性约束定义处可以定义如下约束 NOTNULL 限制列取值非空DEFAULT 给定列的默认值 使用形式为 DEFAULT常量UNIQUE 限制列取值不重CHECK 限制列的取值范围 使用形式为 CHECK 约束表达式 PRIMARYKEY 指定本列为主码FOREIGNKEY 定义本列为引用其他表的外码 使用形式为 FOREIGNKEY REFERENCES NOTNULL和DEFAULT不能在表级完整性约束处定义之外 其他约束均可在表级完整性约束处定义 但有些约束必须在表级约束处定义 第一 如果CHECK约束是定义多列之间的取值约束 第二 如果表的主码由多个列 超过1列 组成 第三 如果在表级完整性约束处定义外码 则FOREIGNKEY和均不能省 且必须用括号括起来 用SQL语句创建Student表 Student表结构如下 CREATETABLEStudent Snochar 7 PRIMARYKEY Snamechar 10 NOTNULL Ssexchar 2 CHECK Ssex 男 ORSsex 女 SagetinyintCHECK Sage 15ANDSage 45 Sdeptchar 20 DEFAULT 计算机系 用SQL语句创建Course表 course表结构 CREATETABLECourse Cnochar 10 NOTNULL Cnamechar 20 NOTNULL CcredittinyintCHECK Ccredit 0 SemestertinyintCHECK Semester 0 PeriodintCHECK Period 0 PRIMARYKEY Cno 用SQL语句创建SC表 SC表结构 CREATETABLESC Snochar 7 NOTNULL Cnochar 10 NOTNULL Gradetinyint CHECK Grade 0andGrade 100 PRIMARYKEY Sno Cno FOREIGNKEY Sno REFERENCESStudent Sno FOREIGNKEY Cno REFERENCESCourse Cno 删除表的语句格式为 二 删除表 DROPTABLE 例 删除test表的语句为 DROPTABLEtest 在定义完表之后 如果需求有变化 比如添加列 删除列或修改列定义 可以使用ALTERTABLE语句实现 三 修改表结构 ALTERTABLE ALTERCOLUMN 修改列定义 ADD COLUMN 属性 添加新列 DROPCOLUMN 删除列 ADDPRIMARYKEY 列名 n 添加主码约束 ADDFOREIGNKEY 列名 REFERN
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年永和县公务员招聘笔试模拟试题及答案解析
- 2026年和县事业单位人员招聘笔试参考题库及答案解析
- 2026年平定县事业单位人员招聘考试模拟试题及答案解析
- 建筑基坑工程培训课件
- 2026年抚顺县公务员招聘考试备考试题及答案解析
- 2026年全南县事业单位人员招聘考试备考试题及答案解析
- 2026年广平县事业单位人员招聘笔试备考试题及答案解析
- 密度分析仪安装应用手册
- 给排水管网改造工程技术实施手册
- 2026年偏关县公务员招聘笔试参考题库及答案解析
- 2025年成都中和中学初一入学数学分班考试真题含答案
- GB/T 47827.1-2026航空器全生命周期xBOM定义与管理第1部分:总则
- 绿色简约风新能源汽车充电桩模板
- 沪科版七年级数学上册《第三章一次方程与方程组》单元测试卷(带答案)
- 湖南省2026年高考招生计划-历史类
- 2026年陕西省中考英语试题(含答案)
- 护理文书书写质量评价标准
- 2026年郑州财税金融职业学院教师招聘考试参考题库及答案解析
- 肝硬化失代偿期患者的护理
- 2026年植物学复习通关试题库带答案详解(完整版)
- 管理会计(第五版)邵敬浩全套教学课件
评论
0/150
提交评论