当前位置:文档之家› 数据库第四章-1数据库定义语言

数据库第四章-1数据库定义语言

▪ 非关系数据模型的数据操纵语言“面向过程”,必须 制定存取路径
▪ SQL只要提出“做什么”,无须了解存取路径。 ▪ 存取路径的选择以及SQL的操作过程由系统自动完成。
4.1.2 SQL语言的特点
面向集合的操作方式
▪ 非关系数据模型采用面向记录的操作方式,操作对象 是一条记录
▪ SQL采用集合操作方式 • 操作对象、查找结果可以是元组的集合 • 一次插入、删除、更新操作的对象可以是元组的集 合
▪ SQL语言是1974年由Boyce和Chamberlin提出,1975年 至1979年IBM公司San Jose Research Laboratory研制 的关系数据库管理系统原型系统System R实现了这种 语言。
▪ 1986 年由美国国家标准局(ANSI)公布,所以也称 SQL86标准,1987年国际标准化组织(ISO) 也通过了 这一标准,作为关系数据库的标准语言。
4.1.1 SQL的发展
标准
大致页数
SQL/86
SQL/89(FIPS 127-1) 120页
SQL/92
622页
SQL99
1700页
SQL2003
发布日期 1986.10 1989年 1992年 1999年 2003年
4.1.2 SQL语言的特点
综合统一
▪ 集数据定义语言(DDL),数据操纵语言(DML), 数据控制语言(DCL)功能于一体。
示例说明
SC表
Cno
002 003 004 006 002 003 001 002 003 001 007 002
Grade
100 95 90 100 98
99 80 98 90 97 37
4.2 数据定义语言
SQL的数据定义功能: 数据库定义、表定义、视图和索引的定义
操作对象
数据库 表
视图 索引
表 3.1 SQL 语言的动词
SQL 功能 数据查询
动词 SELECT
数据定义 数据操纵 数据控制
CREATE,DROP,ALTER INSERT,UPDATE,DELETE GRANT,REVOKE
4.1.2 SQL语言的的基本概念
SQL支持关系数据库三级模式结构
SQL
视图1
视图2
外模式
基本表1
InnoDB –default
❖ 给MySQL表提供事务、回滚、崩溃修复能力、多 版本并发控制的事务安全。
❖支持自动增长列 auto_increment,自增列不能 为空,值唯一,必须是主键。
❖支持外键 foreign key ❖ 创建表存在.frm文件中,数据和索引存储在
innodb_data_home_dir和 innodb_data_file_path定义的表空间中。
数据库原理及应用
Database Theory and Application
第4章 关系数据库标准语言SQL
学习目标:
熟悉SQL语言中各种语句的语法,熟悉SQL 数据定义语言(DDL)语句;掌握SQL语言中数 据查询、数据操纵语言、数据控制语言的详细 语法,并能深刻理解、综合应用,以便为今后 深层次的学习打下更加坚实的基础。
Sno
08001 08002 08003 08004 08005 08006 08007 08008 08009 08010
示例说明
Student表
Sname
Sex
张力

李丽

赵海

张那


刘晨

刘丹丹

刘立

王江

高晓

张丽

Sage
18 19 20 17 18 17 21 19 20 19
Sdept
SQL语言主要由数据查询、数据操纵、数据定义和数 据控制四个方面功能组成。是一个通用的、功能极强的关 系数据库语言。
目前已成为关系数据库的标准语言。各种关系数据库 必须支持SQL-92标准。
4.1 SQL语言概述
4.1.1 SQL的发展 4.1.2 SQL语言的特点 4.1.3 SQL的基本概念
4.1.1 SQL的发展
▪ 1989年ISO第二次公布了SQL标准(SQL89标准) ▪ 目前新的SQL标准是1992年制定的SQL92国际标准,
在1993年获得通过,简称SQL92。
4.1.1 SQL的发展
▪ 在SQL2基础上,增加了许多新特征,产生了SQL3标准,表示 第三代SQL语言,在1999年提出,名字改成SQL:1999 。
4.2 数据定义语言
4.2.1 定义基本表 4.2.2 完整性约束的实现 4.2.3 索引的定义与维护
示例说明
学生-课程模式 S-T ▪ 学生
Student(Sno,Sname,Ssex,Sage,Sdept)
▪ 课程表
Course(Cno,Cname,Cpno,Ccredit)
▪ 学生选课表
SC(Sno,Cno,Grade)
4.1.2 SQL语言的特点 以同一种语法结构提供两种使用方式
▪ SQL是独立的语言 – 能够独立地用于联机交互的使用方式
▪ SQL又是嵌入式语言 – SQL能够嵌入到高级语言(例如C,C++,Java) 程序中,供程序员设计程序时使用
4.1.2 SQL语言的特点 语言简洁,易学易用
SQL功能极强,完成核心功能只用了9个动词。
新数据和读出记录可以选择MyISAM ❖ 需要数据处理快,对表大小要求不是很严格可以
选择MEMORY
4.2.1 基本表的定义
使用CREATE TABLE 语句,用户可以创建一个表结构, 还可以为某个域设定缺省值。
定义基本表
CREATE TABLE <表名> ( <列名><数据类型> [列级完整性约束条件] [ ,<列名><数据类型> [列级完整性约束条件]...] [ ,<表级完整性约束条件>] );
表 3.2 SQL 的数据定义语句
操作方式
创建
删除
CREATE DATABASE DROP DATABASE
CREATE TABLE
DROP TABLE
CREATE VIEW
DROP VIEW
CREATE INDEX
DROP INDEX
修改 ALTER TABLE
定义数据库
(1)定义数据库 [例1]定义一个学生-课程数据库
据库名、表名大小写敏感。为了便于数据库在平台间进行移植,建议 用小写定义数据库名和表名。
定义数据库
(2)删除数据库 DROP DATABASE 数据库名;
删除数据库的同时把该数据库中所有的数据库对象全部删除 ➢ 注意:当该数据库中没有任何下属的对象时才能执行,否则会 将数据库中所有对象(包含数据)全部删除。
教学内容
4.1 SQL语言概述 4.2 数据定义语言 4.3 数据查询语言 4.4 数据更新 4.5 SQL的数据控制功能 4.6 视图
4.1 SQL语言概述
SQL是Structure Query Language的缩写,即结构 化查询语言,是一种介于关系代数与关系演算之间的语言。 它是一种用来与关系数据库管理系统通信的标准计算机语 言。
4.1.2 SQL语言的的基本概念
数据定义功能
通过DDL(DDL Data Definition Language)语言来实现。可用来支 持创建、删除、修改数据库对象(如数据库、表、索引、视图等)等。定义 关系数据库的模式、外模式、内模式。常用DDL语句包含的动词有: CREATE、ALTER、 DROP三个。
基本表2
基本表3
基本表4 模 式
存储文件1
存储文件2 内模式
4.1.2 SQL语言的的基本概念
基本表
本身独立存在的表 SQL中一个关系就对应一个基本表 一个(或多个)基本表对应一个存储文件 一个表可以带若干索引
存储文件
逻辑结构组成了关系数据库的内模式 物理结构是任意的,对用户透明
视图
从一个或几个基本表导出的表 数据库中只存放视图的定义而不存放视图对应的数据 视图是一个虚表 用户可以在视图上再定义视图
❖ 优势在于提供良好的事务管理、崩溃修复能力和 并发控制。缺点是读写效率稍差,占用空间相对 较大。
MEMORY
❖ 在内存中创建表,且数据存储在内存中,有利于 数据快速处理,提高整个表处理效率。表的大小 受限制,取决于两个参数max_rows和 max_heap_table_size。每个基于MEMORY存 储引擎的表实际对应一个磁盘文件。该文件的文 件名和表名相同,类型是frm类型。该文件只存 储表的结构,其数据文件也存在内存中。服务器 需要足够的内存维持MEMORY存储引擎的表使用 ,如果表不需要使用,可以释放内存,甚至可以 删除不需要的表。
▪ 大多数数据库均用SQL作为共同的数据存取语言和标准接口, 使不同数据库系统之间的互操作有了共同的基础。但各厂家又 在SQL标准的基础上进行扩充,形成自己的语言。
▪ 大多数数据库开发商支持SQL92,但并不是百分之百符合这个 标准。目前市场上存在一些不同风格的SQL,因为每一个 RDBMS开发商都试图扩展这个标准,以增强产品的功能,提 高产品的吸引力,因此各个DBMS产品在实现标准SQL语言时 也各有差别,读者在使用某个DBMS产品时,应仔细阅读系统 提供的有关手册。
▪ 可以独立完成数据库生命周期中的全部活动: • 定义关系模式,插入数据,建立数据库; • 对数据库中的数据进行查询和更新; • 数据库重构和维护 • 数据库安全性、完整性控制等
▪ 用户数据库投入运行后,可根据需要随时逐步修改模 式,不影响数据的运行。
▪ 数据操作符统一
相关主题