SQL的特点
(1)功能一体化
(2)高度非过程化
(3)面向集合的操作方式
(4)两种使用方式:命令行和嵌入到其他宿主语言(如Java等)方式
(5)简洁易学
(6)大大减轻了用户的负担,并有利于提高数据独立性
(7)非关系数据模型采用的是面向记录的操作方式,操作对象是一条记录。而SQL采用集合操作方式,其查找对象查找结果都是数据的集合,每次插入删除更新操作的对象也是数据的集合。这种操作方式极大的提高了数据操作的效率。
(8)SQL语言可以直接以命令方式与数据库进行交互,也可以作为嵌入式语言嵌入到其他程序设计语言(如Java、C等)中,并且两种不同使用方式中SQL语言的语法结构基本上是一致的。
SQL的组成部分
常见的数据库应用系统
银行系统
医学诊断系统
网站系统(购物、影视、小说、新闻…)
超市管理系统
图书馆管理系统
天气预报
交通、旅馆预订
接下来我们看一张数据
××班期末考试成绩单
讲到这里,可能大家还没明确数据库到底是个什么样子?让我们来看几个实际的例子。从我们上小学开始,每学期期末都会看到类似这样的成绩单。
如果把这张成绩单保存在计算机中,就可以看做一个数据库。
我们再往下看一个由多张表组成的数据库,一个简单的图书管理系统的后台数据库,有三张表:图书表、读者表、借阅情况表。
数据库中的二维表特点
(1)每一张表都有一个名字;
(2)表中每一列也都有一个名字,放在最上方一行当中;
(3)表中每一列的数据类型都是相同的;
(4)表格当中的每一列都不可以继续分解,是最小的数据单元。
数据库基本概念
数据库(Database,简称DB)
简单而言,目前常用的关系数据库是由一系列有内部联系的特定二维表格构成的。
严格的定义:数据库是保存在计算机内的、有组织的、可共享的数据集合。
数据库的3个性质:
(1)保存在计算机内:
对于上面的成绩单,如果没有保存在计算机中,而是以书面的形式印刷出来,锁在保险柜中,那么它不能称作数据库,充其量只能称为一个小型资料库。
(2)数据有组织:
仅仅有大量的数据还不能构成数据库,要知道保存大量数据的目的在于对数据进行处理,从中得到我们想要的内容。如果数据库中的数据组织无序,那么就很难对其进行快速的操作处理。
(3)数据可共享:
随着互联网的普及,我们能够接收到的信息越来越多,可以说是“足不出户,便可知晓天下事”,这得益于互联网的数据共享性,数据库也是如此。
比如说上面的成绩单,通过这个成绩单,教务部可以知道学生的成绩的分布情况,以便制定下一步的教学计划;
任课教师可以知道哪些学生成绩最好,哪些学生还有潜力可挖,并制定下一步的培养计划,针对哪些学生采取什么措施,以便使学生进步;
而同样是通过这一份成绩单,毕业办也可以对毕业生的毕业率和升学率进行预测分析。所有这些部门可以共享同一份数据,既减少了数据的录入工作量,又减少了数据的冗余度,确保了数据的一致性。
否则三个部门对三份相同的数据做出不同的修改,最终就不知道应该以哪一份为准了。
数据库系统
Database System,简称DBS
数据库系统是与数据库相关的一整套系统,包括数据库、软件、硬件和人员四个部分。
数据库管理系统:Database Management System,简称DBMS
数据库管理系统是能够对数据库进行各种控制并保持数据库中数据的完整性和一致性的系统软件。
数据库就好像一个大的容器、仓库,里面包含了很多的有组织的、可共享的数据。
那么要想操纵这些数据,就需要一套语言和软件,这个软件就称为数据库管理系统。
通过数据库管理系统这个软件,可以很方便地对数据库进行各种管理操作:比如对数据进行增、删、改、查,对权限进行划分和控制,对数据库进行备份、恢复等。
数据库系统的组成部分
数据库:
就是存放在存储设备(如磁盘)上的数据库;
软件:
是指数据库管理系统以及程序员开发出来的针对特定项目的软件(例如图书馆管理系统),有些文献中还把操作系统和高级语言的编译系统也包含进去。
硬件:
指的是运行数据库相关软件需要的硬件设备,如要有足够大的硬盘、内存,有足够快的CPU,另外还要有足够大的网络带宽。
人员:
包括数据库项目的设计开发人员、终端用户以及数据库管理员(Database Administrator,简称DBA)
数据库发展简史
人工管理阶段
20世纪40年代中——50年代中
主要应用于科学计算,人工管理
缺少直接存取存储设备,数据不存储
没有操作系统
批处理,无共享、数据完全依赖于程序,应用程序人工控制
文件管理阶段
20世纪50年代末——60年代中
可以应用于数据管理出现磁盘、磁鼓,数据可长期存储
数据由文件系统管理,文件由记录组成,可联机实时处理、批处理,共享性差、冗余度大,独立性差,数据的逻辑结构改变必须修改应用程序,可以使用excel表或者文件管理
数据库管理阶段
数据库管理阶段 (网状数据库、层次数据库、关系数据库、面向对象的数据库)
20世纪60年代末——现在
出现大容量磁盘,应用于大规模数据管理
数据由DBMS统一管理和控制
处理方式可以联机实时处理,分布处理和批处理
数据结构化
数据独立性高
数据的共享性高,冗余度低,易扩充
含义
ON关键字表示数据库是根据后面的参数来创建的;
n 是一个占位符,表明可为新数据库指定多个文件;
LOG ON 子句用于指定该数据库的事务日志文件;
NAME 用于指定数据库文件的逻辑文件名;
FILENAME 用于指定数据库文件的存放位置及在磁盘上的文件名;
SIZE 用于指定数据库文件的初始大小,可以加上MB或KB,默认为MB;
MAXSIZE 用于指定数据库文件的最大大小,可以加上MB或KB,默认为MB。省略此项表示最大大小无限制;
FILEGROWTH 用于指定数据库文件的增加量,可以加上MB或KB或%,默认为MB。省略此项表示不自动增长。
SQL中的数据类型
数值型
字符串型
日期型
货币型
数值型
不同的数据库系统支持的数据类型不完全相同。这里主要讲解SQL Server 2008中支持的数据类型。
字符串型
普通字符编码:不同国家或地区的编码长度不一样,英文字符占一个字节(8位),中文汉字占2个字节(16位);
Unicode编码(统一字符编码):将世界上所有的字符统一进行编码,所有字符均2字节
日期时间类型
数据类型 | 描述 |
DATE | 日期类型,如'2018-05-01' |
DATETIME | 日期和时间类型,如'2018-05-01 14:12:00' |
TIMESTAMP | 时间戳类型,用于操作记录日期和时间 |
TIME | 时间类型 |
YEAR | 年份类型,默认四位 |
常量
数值型数据常量:12313,2.343
字符串类型的数据常量两端需用单引号括起来,如'how are you','1234','中国'
日期时间类型的数据常量也用单引号括起来,书写格式有以下几种:
–'May 25 2012'
–'2012-05-25'(最常用的书写格式)
–'2012/05/25'
–'20120525'
货币类型
货币数据类型表示货币值。货币数据存储的精确度固定为四位小数,实际上货币类型的数据都是有4位小数的decimal类型的数据。
比如说DECIMAL(5,2),意思就是一共五位数,其中两位是小数,如果小数位超了两位,那么会四舍五入,但还是会显示两位