第4章 SQL语言基础及数据库定义 4.1 基本概念 4.2 SQL Server 提供的主要数据类型 4.3 数据定义.

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.
目 录 第 1 章 数据库技术基础 第 2 章 SQL Server基础 第 3 章 数据库管理 第 4 章 查询和视图
第5章 关系数据库标准语言SQL 主讲:张丽芳.
第2章 SQL语言初步 2.1 SQL的基本概念 2.2 基本表、索引的创建、删除和修改操作 2.3 SQL的查询语句——SELECT
数据库系统概论 华中科技大学能源与动力工程学院
第2讲 Transact-SQL语言.
第5章 索引及视图操作 数据库原理应用与实践 SQL SERver2014(第2版) 主编 贾铁军 科学出版社 编著 陈国秦 万程 邢一鸣
高等院校计算机教材系列 数据库原理与应用(第2版) 任课教师:刘雅莉
复习重点; 1. 关系模型、ER模型 2. SQL 3. 事务管理 4. 函数依赖与规范化 5. 数据库设计  复习题 一、单项选择题
数据库技术及应用 ——SQL Server 任课教师: 毕丛娣 电话: 年3月.
第3章 SQL语言初步 2017/3/14.
Access数据库程序设计 总复习.
数据库原理及应用 《数据库原理及应用》课程组 荆楚理工学院.
第4章 关系数据库标准语言SQL 4.1 SQL语言概述 4.2 SQL数据查询功能 4.3 SQL数据操作功能 4.4 SQL数据定义功能.
第3章 SQL的基础知识 数据库管理及应用 3.1 SQL简介 3.2 SQL的数据模型 3.3 标识符 3.4 使用SQL语句管理数据库
数据库概述 简而言之,数据库(DataBase)就是一个存储数据的仓库。为了方便数据的存储和管理,它将数据按照特定的规律存储在磁盘上。通过数据库管理系统,可以有效的组织和管理存储在数据库中的数据。如今,已经存在了Oracle、SQL Server、MySQL等诸多优秀的数据库。在这一章中将讲解的内容包括。
数据库原理及设计 --作业.
第 10 章 更多的查詢技巧.
创建数据库 MySql创建数据库的语法: CREATE DATABASE 数据库名; 例: CREATE DATABASE mydb;
資料庫設計 Database Design.
第三章 管理信息系统的技术基础 主要内容: 数据处理 数据组织 数据库技术 4. 计算机网络.
软件设计师培训.
计算机应用基础 上海大学计算中心.
数据库原理 Database Principles 第五章 数据库完整性 Database Principles.
第2章 数据定义功能 创建表 在关系型数据模型中,表(Table)是最基本的数据结构。
第7章 建立資料表與完整性限制條件 7-1 資料型別 7-2 資料表的建立 7-3 建立完整性限制條件 7-4 修改與刪除資料表
第11章 详细设计.
数据库技术 第十章 数据库完整性 中国科学技术大学网络学院 阚卫华.
課程名稱:資料庫系統 授課老師:李春雄 博士
PHP與MySQL 入門學習指南 凱文瑞克 著 第 23 章 資料型別.
第十一章 資料庫設計與權限設定.
数据库技术 第三章 关系数据库标准语言SQL 中国科学技术大学网络学院 阚卫华.
2、掌握SQL中各种查询方法和数据更新方法 3、掌握SQL中视图的定义方法和用法 4、掌握SQL的授权机制
Chap 10 SQL定義、操作與控制指令.
第 11 章 建立檢視表.
胡鹏 王慧锋 TEL: 数据库系统原理课程设计 实验环节1 胡鹏 王慧锋 TEL:
高等資料庫管理系統 Advanced Database Management System
題庫解析:MTA資料庫檢定 授課老師:李春雄 博士
第 7 章 建立資料表與 資料庫圖表.
資料庫安全 (Database Security)
教 师:曾晓东 电 话: 数据库技术 教 师:曾晓东 电 话:
第7章 ADO.NET操作SQL Server数据库
建立/修改/刪除資料表 建立資料表 使用Enterprise Manager工具
MySQL数据库基础与实例教程 之 MySQL表结构的管理 郭水泉.
第五章 認識 SQL語言與 資料型別.
国家“十一五”规划教材 数据库原理与应用教程(第3版).
第三章作业讲评 文洁 2012/4/10.
SQL SERVER 一些经典语句 1.
作业3-点评.
第3章 关系数据库标准语言SQL.
第十二章 SQL語言簡介 講授大綱: 新增資料庫 新增資料表 新增資料 修改資料 刪除資料 查詢資料 透視ASP.NET-第12章
Ch4.SQL Server 2005資料庫組成員元件介紹
实验二讲评 … 张榆….
数据库技术.
数据库技术与应用.
MySQL开发规范 DB组-张浩.
第3章 关系数据库的创建与维护 Microsoft SQL Server2008 概述 SQL Server数据库基础 数据库的创建与维护
4.2 视图 (1) 视图是一个虚拟表,其内容来自对表查询的基础上。
通讯录管理系统设计 常州工程职业技术学院 计算机技术系.
SQL查询语句 蔡海洋.
用int类型(4字节)去存具体时间(8字节).
第三章 SQL Server数据管理.
第 7 章 建立資料表與資料庫圖表.
第4章 表的创建与维护 4.1 数据类型 4.2 数据完整性约束 4.3 创建数据表 4.4 修改数据表 4.5 删除数据表.
第9章 视 图 教学提示:用户在查询数据库中的数据时,除了直接查看数据库中的表中的数据以外,还可以通过视图来查看表中的数据,也就是说,视图为用户提供了另外一种查看表中的数据的方式。 视图是一种虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自于定义视图的查询所引用的表,并且在引用视图时动态生成。
第4章 数据查询.
Presentation transcript:

第4章 SQL语言基础及数据库定义 4.1 基本概念 4.2 SQL Server 提供的主要数据类型 4.3 数据定义

4.1 基本概念 4.1.1 SQL语言的发展 4.1.2 SQL语言的特点 4.1.3 SQL语言功能概述

4.1 基本概念 SQL (Structured Query Language ,结构化查询语言)是关系数据库的标准语言 对关系模型的发展和商用DBMS的研制起着重要的作用。

4.1.1 SQL语言的发展 标准 发布日期 SQL/86 1986.10 SQL/89(FIPS 127-1) 1989年 标准 发布日期 SQL/86 1986.10 SQL/89(FIPS 127-1) 1989年 SQL/92 1992年 SQL99 1999年 SQL2003 2003年

4.1.2 SQL语言的特点 1.综合统一 集数据定义语言(DDL),数据操纵语言(DML),数据控制语言(DCL)功能于一体。 可以独立完成数据库生命周期中的全部活动: 定义关系模式,插入数据,建立数据库; 对数据库中的数据进行查询和更新; 数据库重构和维护 数据库安全性、完整性控制等 用户数据库投入运行后,可根据需要随时逐步修改模式,不影响数据的运行。 数据操作符统一

4.1.2 SQL语言的特点 2.高度非过程化 非关系数据模型的数据操纵语言“面向过程”,必须制定存取路径

4.1.2 SQL语言的特点 3.面向集合的操作方式 非关系数据模型采用面向记录的操作方式,操作对象是一条记录 SQL采用集合操作方式 操作对象、查找结果可以是元组的集合 一次插入、删除、更新操作的对象可以是元组的集合

4.1.2 SQL语言的特点 4.语言简洁,易学易用 SQL功能极强,完成核心功能只用了10个动词。 SQL功能 命令动词 数据定义 CREATE、DROP、ALTER 数据查询 SELECT 数据操纵 INSERT、UPDATE、DELETE 数据控制 GRANT、REVOKE、DENY

4.1.2 SQL语言的特点 5.以同一种语法结构提供多种使用方式 SQL是独立的语言 能够独立地用于联机交互的使用方式 SQL能够嵌入到高级语言(例如C,C++,Java)程序中,供程序员设计程序时使用

4.1.2 SQL语言的特点 6. 支持关系数据库三级模式结构 SQL 视图2 视图1 基本表2 基本表1 基本表3 基本表4 存储文件2 存储文件1 外模式 模 式 内模式

SQL支持关系数据库三级模式结构 SQL语言支持数据库的三级模式结构。其中外模式对应于视图和部分基本表,模式对应于基本表,内模式对应于存储文件及索引。 基本表是本身独立存在的表, SQL中一个关系就对应一个基本表,一个(或多个)基本表对应一个存储文件,一个基本表可以带若干索引,存储文件及索引组成了关系数据库的内模式。 视图是从一个或几个基本表导出的表,它本身不独立存储在数据库中,即数据库中只存储视图的定义,不存储对应的数据。因此视图是一个虚表。 用户可以用SQL语言对视图(View)和基本表(Base Table)进行查询等操作,在用户观点里,视图和基本表一样,都是关系。 SQL语言可以定义的模式种类 –基本表,索引,视图

4.1.3 SQL语言功能概述 数据定义功能、数据控制功能、数据查询功能和数据操纵功能。 SQL功能 命令动词 数据定义 CREATE、DROP、ALTER 数据查询 SELECT 数据操纵 INSERT、UPDATE、DELETE 数据控制 GRANT、REVOKE、DENY

4.2 SQL Server提供的主要数据类型 数值型 字符串型 日期时间型

4.2 SQL Server提供的主要数据类型 关系数据库的表结构由列组成 列名指明了要存储的数据的含义 每一列的的数据是同质的,在定义表结构时,要指明每个列的数据类型。 每个数据库产品所支持的数据类型并不完全相同,而且与标准的SQL也有差异 主要介绍Microsoft SQL Server支持的常用数据类型,同时对比标准SQL数据类型。

4.2.1 数值型 1.准确型 :准确型数值是指在计算机中能够精确存储的数据,比如整型数、定点小数等都是准确型数据。 SQL Server 数据类型 SQL92或SQL99数据类型 说明 Bigint   8字节,存储从–263 (–9223372036854775808) 到 263-1 (9223372036854775807) 范围的整数。 Int Integer 4字节,存储从–231 (–2,147,483,648 ) 到 231-1 ( 2,147,483,647 ) 范围的整数。 Smallint 2字节,存储从–215 (–32,768 ) 到 215-1 (32,767 ) 范围的整数。 Tinyint 存储从 0 到 255 之间的整数。 Bit 存储1或0。 numeric(p,q)或decimal(p,q) decimal 定点精度和小数位数。使用最大精度时,有效值从 –1038 +1 到 1038 -1。其中,p为精度,指定小数点左边和右边可以存储的十进制数字的最大个数。q为小数位数,指定小数点右边可以存储的十进制数字的最大个数,0 <= q <= p。q的默认值为0。

4.2.1 数值型 2.近似型:近似型是用于表示浮点型数据的近似数据类型。浮点数据为近似值,表示在其数据类型范围内的所有数据在计算机中不一定都能精确地表示。 SQL Server 数据类型 SQL92或SQL99数据类型 说明 float 8字节,存储从 –1.79E + 308 到 1.79E + 308 范围的浮点型数。 real   4字节,存储从 –3.40E + 38 到 3.40E + 38 范围的浮点型数。

4.2.2 字符串型 字符串数据由汉字、英文字母、数字和各种符号组成。 普通编码字符串类型 统一字符编码字符串类型 二进制字符串类型

4.2.2 字符串型 SQL Server 数据类型 SQL92或SQL99数据类型 说明 char(n) character varchar(n) character varying 可变长度的字符串类型,n表示字符串的最大长度,取值范围为1~8000。 text   可存储231-1 (2,147,483,647) 个字符的大文本。 nchar(n) national character 固定长度的 Unicode 数据,n表示字符串的最大长度,取值范围为1~4000 nvarchar(n) national character varying 可变长度的 Unicode 数据,n表示字符串的最大长度,取值范围为1~4000。 ntext 最多可存储230-1 (1,073,741,823) 个字符的统一字符编码文本。 binary(n) binary 固定长度的二进制字符数据,n表示最大长度,取值范围为1~8000。 varbinary(n) binary varying 可变长度的二进制字符数据,n的取值范围为1~8000。 image 大容量的、可变长度的二进制字符数据,可以存储多种格式的文件,如:Word、Excel、BMP、GIF和JPEG文件数据等。最多可存储231-1 (2,147,483,647) 个字节,约为2GB。

普通编码字符串类型 Char(n): 定长存储,n<=8000 Varchar(n):不定长存储(按实际长度存储),长度最大不超过n , n<=8000 注:n为字符个数 Text:存储大于8000字节的文本

统一字符编码字符串类型 nchar(n):定长存储,n<=4000 nvarchar(n):不定长存储,长度最大不超过n , n<=4000 ntext:存储大于8000字节的文本 特点:每个字符占两个字节

二进制字符串类型 Binary(n):固定长度,n <= 8000。 Varbinary(n):可变长度,n <=8000 。 image:大容量、可变长二进制字符数据,可用于存储文件。

4.2.3 日期时间类型 SQL Server的日期时间数据类型是将日期和时间合起来存储,它没有单独存储的日期和时间类型 SQL92或SQL99是将日期和时间类型分开,日期是Date类型,时间是Time类型。

4.2.3 日期时间类型 SQL Server的日期时间类型 SQL Server 说明 数据类型 Datetime 占用8字节空间,存储从1753年1月1日到9999年12月31日的日期和时间数据,精确到百分之三秒(或 3.33 毫秒)。 (例:’2001/08/03 10:30:00.000’ ) Smalldatetime 占用4字节空间,存储从1900年1月1日到2079年6月6日的日期和时间数据,精确到分钟。 (例:’2001/08/03 10:30:00’)

4.2.3 日期时间类型 输入日期 :在输入日期部分时可采用英文数字格式、数字加分隔符格式和纯数字格式。采用英文数字格式时,月份可用英文全名或缩写形式,不区分大小写。例如:2001年10月25日可以采用下列几种输入格式: Oct 25 2001 /* 英文数字格式 */ 2001-10-25 或 2001/10/25/* 数字加分隔符格式 */ 20011030 /* 纯数字格式 */ 输入时间:在输入时间部分时可以采用12小时格式或24小时格式。例如,要表示2001年10月25日下午3点28分56秒,可以用如下形式输入: 2001-10-25 3:28:56 PM /* 12小时格式 */ 2001-10-25 15:28:56 /* 24小时格式 */

4.2.4 货币类型 货币数据类型表示货币值。货币数据存储的精确度固定为四位小数,实际上货币类型的数据都是有4位小数的decimal类型的数据。SQL92或SQL99没有对应的货币类型。 SQL Server 数据类型 说明 money 8字节,存储的货币数据值介于–263 (–922,337,203,685,477.5808) 与 263-1 (+922,337,203,685,477.5807) 之间,精确到货币单位的千分之十。最多可以包含19位数字。 Smallmoney 4字节,存储的货币数据值介于 –214,748.3648 与 +214,748.3647 之间,精确到货币单位的千分之十。

4.3 数据定义 4.3.1 基本表的定义与删除 4.3.2 修改表结构

SQL的数据定义功能: 表定义、视图和索引的定义 . SQL 的数据定义语句 操 作 方 式 对 象 创 建 删 除 修 改 表 CREATE TABLE DROP TABLE ALTER TABLE 视 图 CREATE VIEW DROP VIEW 索 引 CREATE INDEX DROP INDEX

4.3.1 基本表的定义与删除 1.定义基本表 使用SQL语言中的CREATE TABLE语句实现,其一般格式为: CREATE TABLE <表名> (<列名> <数据类型>[ <列级完整性约束条件> ] [,<列名> <数据类型>[ <列级完整性约束条件>] ] … [,<表级完整性约束条件> ] ); 注:如果完整性约束条件涉及到该表的多个属性列,则必须定在表级上,否则既可以定义在列级也可以定义在表级。

4.3.1 基本表的定义与删除 在列定义同时定义的约束称为列级完整性约束定义 在表定义的最后定义的完整性约束我们称为表级完整性约束 在列级完整性约束定义处可以定义如下约束: NOT NULL:限制列取值非空。 DEFAULT:给定列的默认值,使用形式为:DEFAULT 常量 UNIQUE:限制列取值不重。 CHECK:限制列的取值范围,使用形式为:CHECK(约束表达式)。 PRIMARY KEY:指定本列为主码。 FOREIGN KEY:定义本列为引用其他表的外码。使用形式为:[FOREIGN KEY][<列名>] REFERENCES <外表名>(<外表列名>) 在上述约束中,除了NOT NULL和DEFAULT不能在表级完整性约束处定义之外,其他约束均可在表级完整性约束处定义。

示例:定义Student表 列名 数据类型 约束 Sno 普遍编码定长字符串,长度为7 主码 Sname 普遍编码定长字符串,长度为10 非空 Ssex 普遍编码定长字符串,长度为2 Sage 微整型 Sdept 普遍编码定长字符串,长度为20 CREATE TABLE Student ( Sno char(7) PRIMARY KEY, Sname char(10) NOT NULL, Ssex char(2), Sage tinyint, Sdept char(20) )

示例:定义Course表 列名 数据类型 约束 Cno 普遍编码定长字符串,长度为6 主码 Cname 普遍编码定长字符串,长度为20 非空 Credit 微整型 Semster CREATE TABLE Course ( Cno char(6) NOT NULL, Cname char(20) NOT NULL, Credit tinyint, Semester tinyint, PRIMARY KEY(Cno) )

示例:定义SC表 列名 数据类型 约束 Sno 普遍编码定长字符串,长度为7 主属性,外码(参照Student的主码) Cno 普遍编码定长字符串,长度为6 主属性,外码(参照Course的主码) Grade 微整型 CREATE TABLE SC ( Sno char(7) NOT NULL, Cno char(6) NOT NULL, Grade tinyint, PRIMARY KEY(Sno, Cno), FOREIGN KEY(Sno) REFERENCES Student(Sno), FOREIGN KEY(Cno) REFERENCES Course(Cno) )

学生-课程数据库 三张表: 学生表:Student(Sno,Sname,Ssex,Sage,Sdept) 课程表:Course(Cno,Cname,Cpno,Ccredit) 学生选课表:SC(Sno,Cno,Grade)

学生-课程数据库 1. Student表结构 列名 说明 数据类型 约束 Sno 学号 字符串,长度为7 主码 Sname 姓名 字符串,长度为10 非空 Ssex 性别 字符串,长度为2 取‘男’或‘女’ Sage 年龄 整数 取值15~45 Sdept 所在系 字符串,长度为20 默认为‘计算机系’

学生-课程数据库 Student表数据

学生-课程数据库 2. Course表结构 列名 说明 数据类型 约束 Cno 课程号 字符串,长度为6 主码 Cname 课程名 字符串,长度为20 非空 Ccredit 学分 整数 取值大于0 Semster 学期 Period 学时

学生-课程数据库 Course表数据

学生-课程数据库 3. SC表结构 列名 说明 数据类型 约束 Sno 学号 字符串,长度为7 主属性,外码(参照Student的主码值) Cno 课程名 字符串,长度为6 主属性,外码(参照Course的主码值) Grade 成绩 整数 取值0~100

学生-课程数据库 SC表数据

创建学生数据库的三张表 CREATE TABLE Student ( Sno char ( 7 ) PRIMARY KEY, Sname char ( 10 ) NOT NULL, Ssex char (2) CHECK (Ssex = '男' OR Ssex = '女'), Sage tinyint CHECK (Sage >= 15 AND Sage <=45), Sdept char (20 ) DEFAULT '计算机系' )

创建学生数据库的三张表 CREATE TABLE Course ( Cno char(10) NOT NULL, Cname char(20) NOT NULL, Ccredit tinyint CHECK (Ccredit > 0), Semester tinyint CHECK (Semester > 0), Period int CHECK (Period > 0), PRIMARY KEY(Cno) )

创建学生数据库的三张表 CREATE TABLE SC ( Sno char(7) NOT NULL, Cno char(10) NOT NULL, Grade tinyint, CHECK (Grade >= 0 and Grade <= 100), PRIMARY KEY ( Sno, Cno ), FOREIGN KEY ( Sno ) REFERENCES Student ( Sno ), FOREIGN KEY ( Cno ) REFERENCES Course ( Cno ) )

3.删除表 当确信不再需要某个表时,可以将其删除,删除表时会将与表有关的所有对象一起删掉,包括表中的数据。 删除表的语句格式为: DROP TABLE <表名> { [, <表名> ] … } 例:删除test表的语句为: DROP TABLE test

4.3.2 修改表结构(自学) 在定义完表之后,如果需求有变化,比如添加列、删除列或修改列定义,可以使用ALTER TABLE语句实现。 不同的数据库产品的ALTER TABLE语句的格式略有不同,这里给出SQL Server的ALTER TABLE语句的部分格式,对于其他的数据库管理系统,可以参考它们的语言参考手册。

注:‘--’为SQL语句的单行注释符。 ALTER TABLE <表名> [ ALTER COLUMN <列名> <新数据类型>] -- 修改列定义 | [ ADD [COLUMN] <列名> <数据类型> <约束>] -- 添加新列 | [ DROP COLUMN <列名> ] -- 删除列 | [ADD 约束定义] --添加约束 | [DROP <约束名>] --删除约束 | [ADD PRIMARY KEY(列名 [,… n ] )] -- 添加主码约束 | [ADD FOREIGN KEY(列名)REFERNECES 表名(列名)] -- 添加外码约束 注:‘--’为SQL语句的单行注释符。

示例 例.为Student表添加“专业”列,此列的定义为:Spec char(10),允许空。 ALTER TABLE Student ADD Spec char(8) NULL 例.将新添加的“专业”列的类型改为char(20)。 ALTER COLUMN Spec char(20) 例.删除新添加的“专业”列。 DROP COLUMN Spec

例.为SC表添加“修课类别”列,此列的定义为:XKLB char(4) ALTER TABLE SC ADD XKLB char(4) NULL 例.将新添加的XKLB的类型改为char(6)。 ALTER COLUMN XKLB char(6) 例.删除Course表的Period列 ALTER TABLE Course DROP COLUMN Period