| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> 数据库五章其二第一讲 ——SQL -> 正文阅读 |
|
[大数据]数据库五章其二第一讲 ——SQL |
目录????????本人会用几天时间把在学校学到的整个数据库知识全盘托出,如果能看懂并且明白我接下来所写的博文,相信对你数据库提升、对行业软件理解、以后工作有很大帮助。 由于SQL部分内容实在太多,我会把整个第二章分成四个小部分来细讲 其二第一讲目录???????? CREATE? DATABASE???? 图书管理 ????????DROP DATABASE 数据库名 [ , … n ] ? ? ? ? ?DROP DATABASE MY1, MY2 ?2.1 SQL概述?SQL的产生和发展?
?
1970
年,美国
IBM
研究中心的
E.F.Codd
连续发表多篇论文,提出关系模型。
?
1972
年,
最初的
SQL
原型
SQUARE
出现,
作为
IBM
公司
San Jose
研究室的
SYSTEM? R
的一部分。
?
1974
年,
Boyce
和
Chamberlin
把
SQUARE
修改为
SEQUEL
语言。后来
SEQUEL
简称为
SQL (Structured Query Language )
,即
“
结构化查询语言
”
。
?
1986
年
10
月,
ANSI
公布最早的
SQL
标准,并将其作为关系数据库管理系统的标准语言。
?
1987
年
6
月,
ISO
采纳
SQL
为国际标准。
?
目前最新的
SQL
版本是
SQL-2003
,又称
SQL4
。
?SQL的组成部分
?SQL的特点(1)功能一体化 (2)高度非过程化 (3)面向集合的操作方式 (4)两种使用方式:命令行和嵌入到其他宿主语言(如Java等)方式 (5)简洁易学
1.
SQL
语言集数据定义语言
DDL
、数据操纵语言
DML
、数据控制语言
DCL
于一体;
2.
相对于其他过程化语言(如
C
语言等编程语言),使用
SQL
语言进行数据操作,只须描述清楚要做什么,无须告诉计算机怎么做才能得到结果,即数据的存取路径、
SQL
语句操作过程都由系统自动完成。这大大减轻了用户的负担,并有利于提高数据独立性。
3.
菲关系数据模型采用的是面向记录的操作方式,操作对象是一条记录。而
SQL
采用集合操作方式,其查找对象查找结果都是数据的集合,每次插入删除更新操作的对象也是数据的集合。这种操作方式极大的提高了数据操作的效率。
4.
SQL
语言可以直接以命令方式与数据库进行交互,也可以作为嵌入式语言嵌入到其他程序设计语言(如
Java
、
C
等)中,并且两种不同使用方式中
SQL
语言的语法结构基本上是一致的。
5.
SQL
语言虽然功能强大,但其命令数量有限,共
9
个动词,其语法也比较简单,且使用习惯接近于自然语言(英语),因此很容易学习和掌握。
?2.2?SQ数据定义语言?创建数据库?
?
CREATE DATABASE
数据库名
????????
[ON?? [? <
文件格式
> [ , … n ]? ]??? ]
?
??????? [ LOG? ON {? <
文件格式
> [ , … n ]? } ]
?
??????? <
文件格式
> ::=
?
??????? ( [ NAME =
逻辑文件名
, ]
?
??????? FILENAME = ‘
操作系统下的物理路径和文件名’
????????
[, SIZE =
文件初始大小
]
?
??????? [, MAXSIZE =
文件最大大小
| UNLIMITED ]
?
??????? [, FILEGROWTH =
增量值
] )? [ ,? … n]
提醒:各个数据库产品在创建数据库语句的细节会都有些不同,在这里以SQL SERVER2008创建数据库的语句为例进行讲解。 含义
?
ON
关键字表示数据库是根据后面的参数来创建的;
?
n
是一个占位符,表明可为新数据库指定多个文件;
?
LOG ON
子句用于指定该数据库的事务日志文件;
?
NAME
用于指定数据库文件的逻辑文件名;
?
FILENAME
用于指定数据库文件的存放位置及在磁盘上的文件名;
?
SIZE
用于指定数据库文件的初始大小,可以加上
MB
或
KB
,默认为
MB
;
?
MAXSIZE
用于指定数据库文件的最大大小,可以加上
MB
或
KB
,默认为
MB
。省略此项表示最大大小无限制;
?
FILEGROWTH
用于指定数据库文件的增加量,可以加上
MB
或
KB
或
%
,默认为
MB
。省略此项表示不自动增长。
?【例2.1】创建数据库“图书管理”???????? CREATE? DATABASE???? 图书管理???? 数据库管理系统会创建“图书管理”数据库,并自动为其创建数据文件和日志文件,且使用默认的名称和默认的存储空间分配方案。 ?【例2.4】删除数据库????????DROP DATABASE 数据库名 [ , … n ]
?
被删除的数据库不能是当前正在使用的数据库。
?
使用数据库删除语句可以一次删除多个数据库。
?【例2.3】删除“图书管理”数据库:? ? ? ? ?DROP DATABASE 图书管理?【例2.4】删除MY1和MY2数据库:? ? ? ? ?DROP DATABASE MY1, MY2?SQL中的数据类型
?
数值型
?
字符串型
?
日期型
?
货币型
??????
数值型
???????不同的数据库系统支持的数据类型不完全相同。这里主要讲解SQL Server 2008中支持的数据类型。
字符串型 普通字符编码:不同国家或地区的编码长度不一样,英文字符占一个字节(8位),中文汉字占2个字节(16位); Unicode编码(统一字符编码):将世界上所有的字符统一进行编码,所有字符均2字节。
日期时间类型 ?? ??SQL Server的日期时间数据类型是将日期和时间合起来存储,它没有单独存储的日期和时间类型,但SQL92或SQL99是将日期和时间类型分开,没有日期时间合起来存储的类型,在SQL92或SQL99中日期是Date类型,时间是Time类型。?
常量
?
数值型数据常量:
12313
,
2.343
?
字符串类型的数据常量两端需用
单引号
括起来,如‘
how are you’
,
’1234’
,
’
中国
’
?
日期时间类型的数据常量也用单引号括起来,书写格式有以下几种:
–
‘May 25 2012’
–
‘2012-05-25’
(最常用的书写格式)
–
‘2012/05/25’
–
‘20120525’
?货币类型 ? 货币数据类型表示货币值。货币数据存储的精确度固定为四位小数,实际上货币类型的数据都是有4位小数的decimal类型的数据。SQL92或SQL99没有对应的货币类型。?????????
在创建表之前需要掌握的知识 ?????????? 1. SQL中的数据类型数据完整性约束
?
主码约束:
PRIMARY????? KEY
?
非空约束:
NOT NULL
?
检查约束:
CHECK
(
条件表达式
)
?
唯一值约束:
UNIQUE
?
默认值约束:
DEFAULT
默认值
?
外码约束:
?FOREIGN KEY (外码列) REFERENCES 表名(主码列) 举例说明?????????? 2. 表中的约束条件创建表的语法结构 CREATE? TABLE? <表名> ( ?? <列名>? <数据类型>? [列级完整性约束定义] ?? {,? <列名>? <数据类型>? [列级完整性约束??????? ????????????????????????????????????????????????? 定义] … } ?? [, 表级完整性约束定义 ] ) 注释: <表名>:所要定义的基本表的名字 <列名>:组成该表的各个属性(列) <列级完整性约束条件>:涉及相应属性列的完整性约束条件 <表级完整性约束条件>:涉及一个或多个属性列的完整性约束条件 例一:?接下来我们用student表进行举例
student的结构
例??? 创建“student”表?
例二:接下来我们用stulesson(选课表)表进行举例
stulesson 的结构?
例??? 创建“stulesson”表
修改表
?
语法格式:
ALTER TABLE <表名>? {[ ALTER? COLUMN <列名> <新数据类型>]? ?????????????????????????????????????????????????? -- 修改列定义 | [ ADD? <列名> <数据类型> [约束]? ]??????? ?????????????????????????????????????????????????? -- 添加新列 | [ DROP? COLUMN <列名>? ]? }????????????? ?????????????????????????????????????????????????? -- 删除列
?【例】为student表添加“班级”列,列的定义为 class?? CHAR(30)
?????? ALTER TABLE student? ADD class?? CHAR(30)
?【例】将class列修改为varchar(30)
????? ALTER TABLE student ALTER COLUMN class VARCHAR(30)
?【例】删除class列?
????? ALTER TABLE student DROP COLUMN class 删除表?
?语法:DROP TABLE <表名>{[,<表名>]…}
?【例】删除“student ”
??????? DROP?? TABLE?? student
?注意:有外码参照的表只能在外码所在表删除后才可以被删除。
下面我们再创建图书表Book
创建图书表Book语句?
其中?PRIMARY KEY 为主码约束,CHECK为检查约束 下面我们再创建读者表Reader
创建读者表Reader语句?
下面我们再创建借阅表Borrow
?创建借阅表Borrow语句
其中Book_ID 是外码,参照Book表的Book_ID Reader_ID 是外码,参照Reader表的Reader_ID |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 13:25:57- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |