1. SQL概述 2。DDL 3。DML DCL(第四部分安全性讲) 4。嵌入式使用 5。PL/SQL

Slides:



Advertisements
Similar presentations
第二章 简单的 SQL 语句. 本章要点  创建一个简单的表  SQL 语句介绍  最简单的查询语句 select  带有限制条件的查询  查询结果的排序显示.
Advertisements

作業一 : USING DBMS ( 使用 DB2 及 SQL 基本練習 ) 報告人:學生楊群期 學號: 課程 : 高等資料庫 講師 : 楊維邦教授.
2010 年 6 月课件制作人:王亚楠 1 模块 2 项目开发概论 教学课件 年 6 月课件制作人:王亚楠 2 目录 目标 了解:数据库技术的基本概念与结构 理解:数据模型的分类与结构组成 掌握:关系数据库及 SQL 的基本理论 知识 掌握:数据库设计的方法与步骤 内容 2.1 数据库技术基础.
Java 技术与应用 数据库应用 ( 第 14 章 ) 西安交大 卫颜俊 2008 年 12 月 电子信箱: QQ: 网站 : /java.
第 7 章 数据库 1. Overview  数据库概述  数据库管理系统  数据库的体系结构和数据库模型  SQL 语言  数据库技术  构建数据库系统 2.
Chapter 3: SQL.
第5章 关系数据库标准语言SQL 主讲:张丽芳.
第2章 SQL语言初步 2.1 SQL的基本概念 2.2 基本表、索引的创建、删除和修改操作 2.3 SQL的查询语句——SELECT
第2讲 Transact-SQL语言.
第5章 索引及视图操作 数据库原理应用与实践 SQL SERver2014(第2版) 主编 贾铁军 科学出版社 编著 陈国秦 万程 邢一鸣
第2章 数据模型 2.1 实体联系模型 2.2 关系模型 2.3 面向对象的数据模型 习 题 2.
复习重点; 1. 关系模型、ER模型 2. SQL 3. 事务管理 4. 函数依赖与规范化 5. 数据库设计  复习题 一、单项选择题
第3章 SQL语言初步 2017/3/14.
数据库原理及应用 《数据库原理及应用》课程组 荆楚理工学院.
第4章 关系数据库标准语言SQL 4.1 SQL语言概述 4.2 SQL数据查询功能 4.3 SQL数据操作功能 4.4 SQL数据定义功能.
資料庫 (Database) SQL Server 2008實作
第3章 SQL的基础知识 数据库管理及应用 3.1 SQL简介 3.2 SQL的数据模型 3.3 标识符 3.4 使用SQL语句管理数据库
数据库概述 简而言之,数据库(DataBase)就是一个存储数据的仓库。为了方便数据的存储和管理,它将数据按照特定的规律存储在磁盘上。通过数据库管理系统,可以有效的组织和管理存储在数据库中的数据。如今,已经存在了Oracle、SQL Server、MySQL等诸多优秀的数据库。在这一章中将讲解的内容包括。
数据库原理及设计 --作业.
第 八 章 資料庫安全 本投影片(下稱教用資源)僅授權給採用教用資源相關之旗標書籍為教科書之授課老師(下稱老師)專用,老師為教學使用之目的,得摘錄、編輯、重製教用資源(但使用量不得超過各該教用資源內容之80%)以製作為輔助教學之教學投影片,並於授課時搭配旗標書籍公開播放,但不得為網際網路公開傳輸之遠距教學、網路教學等之使用;除此之外,老師不得再授權予任何第三人使用,並不得將依此授權所製作之教學投影片之相關著作物移作他用。
创建数据库 MySql创建数据库的语法: CREATE DATABASE 数据库名; 例: CREATE DATABASE mydb;
第三章 管理信息系统的技术基础 主要内容: 数据处理 数据组织 数据库技术 4. 计算机网络.
高级数据库技术 金培权
计算机应用基础 上海大学计算中心.
Oracle数据库 Oracle 子程序.
数据库原理 Database Principles 第五章 数据库完整性 Database Principles.
数据库应用与程序设计.
第7章 建立資料表與完整性限制條件 7-1 資料型別 7-2 資料表的建立 7-3 建立完整性限制條件 7-4 修改與刪除資料表
An Introduction to Database System An Introduction to Database System
第11章 详细设计.
数据库技术 第十章 数据库完整性 中国科学技术大学网络学院 阚卫华.
第六章 學習SQL語言.
課程名稱:資料庫系統 授課老師:李春雄 博士
第十一章 資料庫設計與權限設定.
第4章 SQL语言基础及数据库定义 4.1 基本概念 4.2 SQL Server 提供的主要数据类型 4.3 数据定义.
2、掌握SQL中各种查询方法和数据更新方法 3、掌握SQL中视图的定义方法和用法 4、掌握SQL的授权机制
Chap 10 SQL定義、操作與控制指令.
胡鹏 王慧锋 TEL: 数据库系统原理课程设计 实验环节1 胡鹏 王慧锋 TEL:
高等資料庫管理系統 Advanced Database Management System
第三章 关系数据库标准查询语言SQL 3.1 SQL概述 3.2数据定义语言(DDL) 3.3 SQL的数据查询(DML)
題庫解析:MTA資料庫檢定 授課老師:李春雄 博士
第 7 章 建立資料表與 資料庫圖表.
資料庫安全 (Database Security)
教 师:曾晓东 电 话: 数据库技术 教 师:曾晓东 电 话:
第十章 数据库表.
課程名稱:資料庫系統 授課老師:李春雄 博士
課程名稱:資料庫系統 授課老師:李春雄 博士
建立/修改/刪除資料表 建立資料表 使用Enterprise Manager工具
MySQL数据库基础与实例教程 之 MySQL表结构的管理 郭水泉.
第三章作业讲评 文洁 2012/4/10.
SQL SERVER 一些经典语句 1.
第四讲 数据库对象(视图、序列、同义词、索引)
作业3-点评.
段磊 王慧锋 TEL: qq群: 数据库系统原理课程设计 实验环节2 段磊 王慧锋 TEL: qq群:
Ch4.SQL Server 2005資料庫組成員元件介紹
实验二讲评 … 张榆….
数据库技术.
数据库技术与应用.
4.2 视图 (1) 视图是一个虚拟表,其内容来自对表查询的基础上。
CS, ZJU 4/18/2019 Chapter 7 数据库.
3.2 Mysql 命令行 1 查看数据库 SHOW DATABASES; 2 创建一个数据库test1 CREATE DATABASE test1; 3 选择你所创建的数据库 USE test1; (按回车键出现Database changed 时说明操作成功!) 4 查看现在的数据库中存在什么表.
通讯录管理系统设计 常州工程职业技术学院 计算机技术系.
SQL查询语句 蔡海洋.
本讲内容 SQL 概述 SQL 的查询功能 SQL 的操作功能 SQL 的定义功能.
第三章 SQL Server数据管理.
第 7 章 建立資料表與資料庫圖表.
第4章 表的创建与维护 4.1 数据类型 4.2 数据完整性约束 4.3 创建数据表 4.4 修改数据表 4.5 删除数据表.
第六讲 SQL语言之数据定义 第三讲 SQL Server 2000 数据库技术.
11 檢視表的建立 11-1 檢視表的基礎 11-2 建立檢視表 11-3 修改與刪除檢視表 11-4 編輯檢視表的內容.
第4章 数据查询.
Presentation transcript:

1. SQL概述 2。DDL 3。DML DCL(第四部分安全性讲) 4。嵌入式使用 5。PL/SQL

1、SQL概述 1)SQL的发展历程 2)SQL数据库中的术语 3)SQL数据库的三级体系结构 4)SQL的组成

1)、SQL的发展历程 1972:IBM开始研究System R系统,配置了数据库语言SQUARE SQUARE ( Specifying Queries As Relational Expressions) 使用了大量的数学符号 1974:Boyce和Chamberlin将SQUARE修改为SEQUEL SEQUEL (Structured English QUEry Language ) 去掉了数学符号,以英语单词和结构式语法代替查询 后简称为SQL (Structured Query Language)

1)、SQL的发展历程 1970s末起:主流的数据库厂商纷纷在其产品中支持SQL 1986.10:ANSI颁布了美国标准的SQL Oracle、DB2、Sybase 1986.10:ANSI颁布了美国标准的SQL 1987.4:ISO采纳美国标准为国际标准,后称“SQL86” 1989.4:SQL89,增强了完整性特征 1992:SQL92(“SQL2”) 1999:SQL3

2)、SQL数据库中的术语 (基本)表——关系 记录——元组 字段(列)——属性 字段值——属性值 字段类型(列类型)——域 码——键 主码——主键 外码——外键

3)、SQL数据库的三级体系结构 SQL数据库:支持SQL语言的关系数据库 SQL用户 外模式 关系子模式 视图(View) 概念模式 关系模式 基本表 内模式 存储模式 文件 ANSI/SPARC 关系数据库 SQL数据库

3)、SQL数据库的三级体系结构 一个SQL数据库的总体逻辑结构是基本表(Table)的集合,对应于ANSI/SPARC的概念模式 用户所见的数据结构以视图(View),对应外模式 用户可以通过SQL对基本表和视图进行操作

4)、SQL的组成 Create Table/Alter Table/Drop Table:定义基本表 DDL Create View/Drop View:视图操作 Create Index/Drop Index:索引操作 Insert Delete Select Update DML 记录操作 SQL Grant Revoke DCL 权限管理 嵌入式SQL的使用规定

2、SQL的数据定义——DDL 基本表的组成 创建基本表:Create Table 修改基本表:Alter Table 删除基本表:Drop Table

1)、基本表的组成 列 完整性约束

(1)列 列名 列类型 字母开头,可含字母、数字、#、$、_ <=30字符 Char(n)【定长字符串类型】 Varchar2(n)【可变长字符串类型】 Number【数值型】 Date【日期时间型】 ……

(1)列 Oracle数据类型与ANSI有一定的差别 若使用ANSI类型,Oracle自动转换为Oracle类型 ANSI/ISO 字符型 Char(n) Character(n) Character Varying(n) Varchar2(n) Char Varying(n) 数值型 Numeric Number Decimal Integer Int Float Double Real 日期型 Date Time Oracle数据类型与ANSI有一定的差别 若使用ANSI类型,Oracle自动转换为Oracle类型

这些约束既可以定义在列上,也可以定义在基本表之上 表约束:在全部列定义后定义,可定义多个列上的约束 (2)完整性约束 主键约束(Primary Key) 实体完整性 唯一键约束(Unique) 外键约束(Foreign Key) 参照完整性 检查约束(Check) 用户自定义完整性 这些约束既可以定义在列上,也可以定义在基本表之上 列约束:在每列后定义,只对当前列有效 表约束:在全部列定义后定义,可定义多个列上的约束

在SQL数据库中,不一定必须定义主键,这与关系模型有差别 2)、创建基本表 基本表构成:表名,列和约束 Create Table <基本表名>( 列名1 列类型1 [列约束1], 列名2 列类型2 [列约束2], …… [表约束] ) 在SQL数据库中,不一定必须定义主键,这与关系模型有差别 Create Table Student( S# Varchar2(10) Constraint PK Primary Key, Sname Varchar2(20), Age Number(3), Sex Char(1) )

NOT NULL表示不允许空值,实际上是Check约束的简化 (1)定义列 完整格式 <列名> <列类型> [ DEFAULT <默认值>] [[NOT] NULL] [<列约束>] Create Table Student( S# Varchar2(10) Constraint PK Primary Key, Sname Varchar2(20) NOT NULL, Age Number(3), Sex Char(1) DEFAULT ‘F’ ) NOT NULL表示不允许空值,实际上是Check约束的简化

A)默认值 当往表中插入一条新记录时,如果某列上有默认值,并且新记录中未指定该列的值,则自动以默认值填充 S# Sname Age Sex Insert Into Student(s#,sname,age) Values(‘001’,’John’,20) 自动以默认值填充 S# Sname Age Sex 001 John 20 F

B)列约束 必须更在每个列定义后定义 只对当前列有效 可以使用四种类型的约束 格式 例 [Constraint <约束名>] <约束类型> 例 S# char(n) Constraint PK_Student Primary Key S# char(n) Primary Key

Where we are? 创建基本表 定义列 定义约束

(2)定义约束 列约束:在每个列后定义,可以有多个约束子句 表约束:在全部列定义完成后定义,可以有多个约束子句 不能定义多个列上的约束 表约束:在全部列定义完成后定义,可以有多个约束子句 多个列上的约束必须使用表约束 单列上的约束可以用列约束,也可用表约束 四种约束都可以作为列约束或表约束

A)列约束和表约束举例 Create Table Student( S# Varchar2(10) Constraint PK_S Primary Key, Sname Varchar2(20), Age Number(3) Constraint CK_S Check (age>14 and age<100), Sex Char(1), Constraint UQ_S Unique(Sname), Constraint CK_SS Check (Sex IN (‘M’,’F’)) )

B)Primary Key约束 定义主键:不许有空值,也不可重复 Create Table Student( S# Varchar2(10) Constraint PK_S Primary Key, Sname Varchar2(20), Age Number(3) , Sex Char(1)) 一个表只能有一个主键!!! Create Table SC( --选课表 S# Varchar2(10) C# Varchar2(20), Score Number(3) , Constraint PK_SC Primary Key(S#,C#))

C)Unique约束 唯一性约束:值不可重复,但可以为空 多个列上的约束只能用表约束来实现 Create Table Student( S# Varchar2(10) Constraint PK_S Primary Key, Sname Varchar2(20) Constraint UQ_S Unique, Age Number(3) , Sex Char(1), Constraint UQ_SS Unique(Sname) ) Create Table Department( NO Varchar2(10), NAME Varchar2(20), SCHOOL Char(20), Constraint UQ_D Unique(NAME,SCHOOL) ) 多个列上的约束只能用表约束来实现 Create Table Student( S# Varchar2(10) Constraint PK_S Primary Key, Sname Varchar2(20) Constraint UQ_S Unique, Age Number(3) , Sex Char(1) )

若约束列中有一列不为空,就实施约束;若约束列都为空,则不实施约束 D)Unqiue约束对空值的处理 若约束列中有一列不为空,就实施约束;若约束列都为空,则不实施约束 NO NAME SCHOOL 1 管理系 商学院 2 管理学院 OK 值唯一 3 Error! 值重复 4 5 6 实施约束 7 约束列都空,不实施约束 8

E)Foreign Key约束 外键约束:表中某列值引用其它表的主键列或Unique列,参照完整性含义 Create Table Student( S# Varchar2(10) Constraint PK_S Primary Key, Sname Varchar2(20), Age Number(3)) Create Table SC( --选课表 S# Varchar2(10) Constraint FK_SC References Student(S#), C# Varchar2(20), Score Number(3) , ) Constraint FK_SC Foreign Key(S#) References Student(S#))

F)Foreign Key约束示例 被参照表(主表):Student表 参照表(子表):SC表 S# SNAME AGE 001 John 20 002 Rose 21 S# C# Score 001 c001 90 Insert Into SC values(‘003’,’c001’,85); --Error occurs!! Delete From Student where S#=‘001’; - - Error occurs!! 在子表中(如SC)插入记录时,若主表中对应的列值不存在,则插入出错; 删除主表中的记录时,若有子表中的相应记录存在,也出错。--若设置了级联删除则不会出错

G)Foreign Key约束的选项 级联删除:删除主表中的记录时,同时删除子表中相关联的记录: On Delete Cascade 级联设空:删除主表中的记录时,同时将子表中相应记录的外键列值设为空: On Delete Set NULL Create Table SC( --选课表 S# Varchar2(10) , C# Varchar2(20), Score Number(3) , Constraint FK_SC Foreign Key(S#) References Student(S#) On Delete Cascade )

H)Check约束 检查约束:自定义某些列上的约束 Constraint CK_S1 Check (age>15) Constraint CK_S2 Check (Sex In (‘M’,’F’)) Constraint CK_SC Check (Score>=0 and Score<=100) Constraint CK_S3 Check (Sname Is Not NULL) = NOT NULL

2)、修改基本表 Alter Table <表名> [Add <列定义>] | [Modify <列定义>] | [Drop Column <列名>] | [Add <表约束>] | [Drop Constraint <约束名>]

(1)增加列 Alter Table <表名> Add <列定义> <列定义>与Create Table中相同 Alter Table Student( Add Class Varchar2(10) ) Alter Table Student( Add Dept Varchar2(10) Constraint UQ_S3 UNIQUE )

(2)删除列 Alter Table <表名> Drop Column <列名> Alter Table Student( Drop Column age )

(3)修改列 Alter Table <表名> Modify <列定义> <列定义>与Create Table中相同 但列名不能修改 Alter Table Student( Modify age Integer NOT NULL )

(4)增加约束 Alter Table <表名> Add <表约束> 只能增加表约束 表约束格式与创建表时相同 Alter Table Student( Add Constraint PK_Student Primary Key(S#) )

(5)删除约束 Alter Table <表名> Drop Constraint <约束名> Create Table SC( --选课表 S# Varchar2(10) , C# Varchar2(20), Score Number(3) , Constraint FK_SC Foreign Key(S#) References Student(S#) On Delete Cascade ) Alter Table SC( Drop Constraint FK_SC )

3)、删除基本表 Drop Table <表名> [Cascade Constraints] Drop Table Student Drop Table Student Cascade Constraints