当前课程知识点:数据库概论 > 第三章 结构化查询语言SQL > 3.1 SQL概述 > SQL概述
各位同学 大家好
我是来自云南大学软件学院的张璇
下面由我为大家介绍SQL语言
SQL是Structured Query Language的缩略语
其含义是结构化查询语言
使用SQL可以帮助我们定义
操作和控制关系数据库中存储的数据
那么
按照对数据的定义 操作和控制
SQL语言就可以分为三类
自然分别就是数据定义语言
数据操作语言和数据控制语言
数据定义语言
Data Definition Language
简称为DDL
用于定义数据库 数据表 视图和索引等数据库对象
数据操作语言
Data Manipulation Language
简称为DML
用于完成数据的查询和更新两类操作
其中更新主要指插入删除或更新数据
数据控制语言
Data Control Language
简称为DCL
用于数据表和视图等数据库对象的访问授权
完整性规则的描述和事务控制等
那么
如何使用SQL语言完成定义操作和控制呢
下面
我们首先介绍一下SQL语言的基本结构
然后再介绍SQL语言的使用
一个SQL语言的构成由定义操作的动词
定义数据库对象的标识符
定义操作数据的数据类型
运算符号
常量
变量和函数构成
下面我们来介绍这些结构成分
首先
SQL的动词定义SQL的基本操作命令
例如
在定义数据库时使用CREATE动词
如果定义一个数据库就使用CREATE DATABASE
如果定义一个数据表就使用CREATE TABLE
而数据查询则使用SELECT动词等等
而标识符是是数据库对象的名称
比如说
我们所有课程内容会使用两个数据库给大家做介绍
一个是CAP数据库
另一个是Student_DB数据库
CAP和Student_DB就是两个定义数据库名称的标识符
如果我们使用的标识符与数据库保留字冲突时
可以使用双引号或方括号等
定界符标识这些特殊的标识符
数据类型是存储常量和变量的数据特性
它决定了数据的存储格式
代表着不同的信息类型
数据类型分为系统定义数据类型和用户定义数据类型
系统定义数据类型是由系统定义的常用数据类型
我们可以直接使用
具体系统数据类型我们后面稍微详细介绍一下
用户定义数据类型可以使用系统存储过程sp_addtype
或者在数据库管理窗口中采用交互式方式进行定义
在定义后可以像系统定义数据类型一样使用
运算符自然是用来执行数据之间的数学运算和比较操作了
例如
数学运算包括基本的加 减 乘和除运算
比较操作包含基本的大于 等于和小于等等
常量是存储的具体数据
而变量则可以接收不同的输入数据完成数据运算
函数则用于在数据上执行某些操作
例如
我们会经常使用聚合函数完成数据的汇总
求平均值 统计数量 求最大最小值等等
我们也可能用字符串函数完成字符的ASC码转换
大小写转换 抽取部分字符数据等
还可以使用数学函数进行四舍五入 求圆周率 产生随机数据等等
上述结构成分中的系统定义数据类型我们要稍作介绍
这样子我们后面才可以给大家介绍SQL语言的使用
系统定义数据类型
我们来看一下这个表格
系统定义数据类型包括日期时间型
整数型
精确数值型
近似数值型
货币型
位型
字符型
Unicode字符型
二进制数据类型和特殊数据类型
日期时间数据类型代表日期和时间
这种数据类型分为datetime和smalldatetime两种
它们的区别主要在于存储长度表示的时间范围和精度不同
在输入日期时间型数据时一般需要将数据放在单引号中
与日期时间数据类型相似
整数数据类型分为bigint int smallint和tinyint四种
它们的区别同样是存储长度表示的数值范围和精度不同
精确数值数据类型由整数和小数两部分组成
在SQL Server中提供了两种不同精度与范围的精确数值类型
decimal[(p[, s])] 和 numeric[(p[, s])]
其参数由精度p和小数位数s构成
精度p表示所存十进制数据的位数总和
包括整数和小数部分
s存储小数部分
需要注意的是
我们在讲结构的时候说过
方括号表示列出的选项是可选的
用户可以不选择
也就意味着小数位数s可以不在精确数值数据中设置
近似数值数据类型也称为浮点数
在SQL Server中
单精度浮点数real和双精度浮点数float
分别是两种不同精度的近似数值数据类型
货币数据类型有8字节构成的money和4字节构成的smallmoney两类
位数据类型用bit关键字声明
数据有0和1两种取值
通常可以作为逻辑变量使用
用于表示真 假
或是 否等二值选择
字符数据类型数据由字母 符号和数字组成
在输入字符数据时应将数据放在单引号内
字符型数据有定长char
变长varchar和文本text三种类型
Char和Varchar类型的取值范围相同
不同的是char类型长度固定
当实际存储数据长度小于给定长度值时
存储字符串的后面将被填充空格保证固定长度
而varchar类型则长度不固定
text类型长度也可变
不过可以存储更大范围的字符数据
Unicode数据类型用于支持国际上的非英语语种
也分为nchar nvarchar和ntext三种
对于Unicode字符常量数据应在前面加上标识符N
但是存储时并不存储该字符只是为了标识是Unicode类型
二进制数据类型在SQL Server中
包括binary varbinary和image三种通常用于存储图象
有格式的文本
比如说Word文件 Excel文件等等
也可以存储程序文件数据等等
以上
是系统定义数据类型
用户定义数据类型
我们前面大致说过
可以使用系统存储过程sp_addtype生成用户定义数据类型
不使用的时候
用sp_droptype删除即可
比如说
我们执行Exec sp_addtype phone ‘char(13)’
这里就定义了一个长度限定为
13个字符的电话数据类型
需要注意是
如果任何数据表使用用户定义数据类型
就不能删除这个用户定义数据类型
当然我们前面也说过
用户定义数据类型可以在数据库管理交互界面中添加或删除
现在我们已经学习了SQL语言的基本概念和基本结构
也了解了系统定义数据类型
下面
我们来具体看看
如何使用SQL语言定义 操作或控制数据
谢谢大家
-数据库概述
--Video
-导论--数据库概述
-1.1 数据库基础
--Video
-第一章 数据库基础--1.1 数据库基础
-2.1 CAP数据库
--CAP数据库
-第二章 关系运算--2.1 CAP数据库
-2.2 自然关系运算1
-- 自然关系运算1
-第二章 关系运算--2.2 自然关系运算1
-2.3 自然关系运算2
--自然关系运算2
-第二章 关系运算--2.3 自然关系运算2
-3.1 SQL概述
-- SQL概述
-3.1 SQL概述--作业
-3.2 数据定义DDL
--数据定义DDL
-3.2 数据定义DDL--作业
-3.3 SQL数据更新DML
-3.3 SQL数据更新DML--作业
-3.4 复杂SQL查询操作1
-第三章 结构化查询语言SQL--3.4 复杂SQL查询操作1
-3.5 复杂SQL查询操作2
-第三章 结构化查询语言SQL--3.5 复杂SQL查询操作2
-4.1 数据完整性
-4.1 数据完整性--作业
-4.2 完整性约束
--完整性约束
-4.2 完整性约束--作业
-4.3 外键约束
--外键约束
-4.3 外键约束--作业
-4.4 触发器
--触发器
-4.4 触发器--作业
-4.5 视图
--视图
-4.5 视图--作业
-4.6 安全性
--安全性
-4.6 安全性--作业
-5.1 索引
--Video
-5.2 B+树索引
--Video
-6.1 函数依赖
--Video
-6.2 Armstrong公理
--Video
-6.3 无损分解
--Video
-6.4 范式举例
--Video
-6.5 三种范式
--Video
-6.5 三种范式--作业
-7.1-E-R模型概述
--E-R模型概述
-7.2 E-R模型详解
--Video
-7.3 E-R模型的拓展
--Video
-7.4 E-R模型实例分析
--Video
-8.1 事务的ACID性质介绍
--ACID介绍
-8.1 事务的ACID性质介绍--作业
-8.2 事务经历
--事务经历
-8.2 事务经历--作业
-8.3 可串行化调度和前趋图
-8.3 可串行化调度和前趋图--作业
-8.4 两阶段封锁
--两段锁协议
-8.4 两阶段封锁--作业
-8.5 隔离级别
--隔离级别
-8.5 隔离级别--作业
-8.6 事务恢复
--事务恢复
-8.6 事务恢复--作业
-9.1 数据库使用介绍
--数据库使用介绍
-9.2 Java访问数据库
-9.2 Java访问数据库--作业
-10.1 数据库新技术概述
--Video