第1章 数据库系统与SQL基础知识
1.1 数据库系统基本概念
数据库和SQL构成了整个数据库系统,两者一个是用来存储数据,一个是用来读取数据。本节通过简单的概念入手,让读者对数据库系统有个大概的认识。
1.1.1 什么是SQL
SQL的全称是Structured Query Language,中文名字是“结构化查询语言”。前面提到数据库用来存储数据,而SQL用来查询,之所以称其为一种语言,是因为SQL具备各种语言常有的类型、变量、函数、表达式等特色。
我们可以用一段SQL代码实现多个操作,这一段SQL代码可以保存在扩展名为.sql的脚本文件中,几乎所有的数据库(如Oracle、SQL Server等)都可以直接执行这类脚本文件。
1.1.2 什么是数据库
数据库,顾名思义,就是类似数据保存的仓库,其英文名称是Database。严格意义上来说,数据库是按照数据结构来组织、存储和管理数据的仓库。
在日常生活中,数据库无处不在,如某单位的人事部门需要把本单位职工的基本情况(工号、姓名、年龄、性别、工资、住址、简历等)存放在表中,这张表就可以看成是一个数据库。
目前的技术应用中,Oracle、SQL Server和MySQL是3大主流数据库。
1.1.3 什么是数据库管理系统
数据库管理系统的英文是Database Management System,是一种操纵和管理数据库的软件,用于建立、使用和维护数据库。数据库管理系统简称DBMS。
比如我们有一个员工数据库,同时还有一个客户数据库,那我们就可以将这些数据库保存在一个地方,然后有一个专门的管理员来管理,所谓的管理就是数据库管理系统的作用,它就是对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。
数据库管理员的英文名称是Database Administrator,简称DBA。你可能经常在一些招聘网站中看到DBA职位的招聘,这个管理员在整个技术项目中处于非常关键的地位,因为数据是最重要的。
数据库管理系统的主要作用包括一下几个方面。
(1)数据的定义。这些员工信息之间复杂的关系都需要梳理和搭建。
(2)数据的操作。程序员可以轻松的获取员工资料和各种信息,如获取员工的地址等。
(3)数据库的运行管理。这个对程序员可能不重要,但对老板很重要,如某些用户的访问权限,管理不慎,可能导致数据外泄。
(4)数据库的保护。最简单的就是数据的备份和安全。
然数据库管理系统不仅仅这些功能,这里只进行了简单的分类,如果读者对这些感兴趣,还可以看一些数据挖掘、数据仓库和数据性能调优等方面的书籍。
1.2 SQL基础知识
前面提到,SQL其实算是一种程序设计语言,用它可以完成一系列功能,如添加某个员工的同时,检测是否已经存在这个员工。要学习这门语言,先了解好本节的内容。
1.2.1 SQL类型
SQL语言包含4个部分内容。
- 数据定义语言(DDL),例如:CREATE、DROP、ALTER等语句。
- 数据操作语言(DML),例如:INSERT(插入)、UPDATE(修改)、DELETE(删除)语句。
- 数据查询语言(DQL),例如:SELECT语句。
- 数据控制语言(DCL),例如:GRANT、REVOKE、COMMIT、ROLLBACK等语句。
随着各种数据库的发展,其实SQL又出了两种分身:
- T-SQL:主要用在SQL Server中。
- PL/SQL:主要用在Oracle中。
本书以标准SQL为准,如果碰到有上面两种SQL的特殊语法,还会再重点说明。我们一般把用SQL标准书写的代码称为SQL语句,不直接叫某某定义语言或某某控制语言。
1.2.2 在SQL Server中执行SQL语句
SQL Server安装后,其安装后的菜单中,会有一项“SQL Server Management Studio”菜单(如图1.1),这是SQL Server的服务器管理主窗口。单击这个菜单后会出现一个登录界面,这个时候选择服务器(一般为本机),输入用户名和密码(如图1.2),单击“连接”按钮,就可以进入SQL Server管理器界面,如图1.3所示。
图1.1 安装后的SQL Server菜单 图 1.2 SQL Server登录界面
在SQL Server管理界面中,按以下步骤执行SQL语句,整个效果如图1.3所示。
(1)先单击工具栏中的“新建查询”按钮,这个时候管理界面的右侧会有一个空白窗口出现,可以在这里输入SQL语句。
(2)因为不知道你要查询哪个数据库的数据,所以需要先在工具栏的第2行中,有个选择数据库的下拉列表框,在其中选择你想查询的数据库,本例演示用“eBookShop”数据库。
(3)选择完数据库后,就可以在SQL窗口中输入SQL语句,这里先输入一个简单的查询语句“select * from e_UserInfo”。
(4)输入完语句后,单击工具栏的“执行”按钮。
(5)系统执行这条SQL语句后,就会在右侧窗口的下侧显示一个结果栏。
图 1.3 执行SQL语句的过程
1.2.3 在Oracle中执行SQL语句
在Oracle安装完成后,其安装后的菜单中,会有一项“应用程序开发”菜单,里面有“SQL Plus”(如图1.4),这是用于执行SQL语句的窗口。单击“SQL Plus”菜单,会出现一个登录窗口,如图1.5所示。这里输入登录用户名,一般为system,密码是你创建数据库时的密码,Oracle要求以字母开头,如果忘记了,可以在网络上搜索下各种找到密码的方法。输入用户名和密码后单击“确定”按钮,会出现以“SQL >”开头的界面,如图1.6所示。
在图1.6中执行SQL语句非常简单,因为已经选定了数据库,这里只需要选择表即可,输入“select * from userinfo”,会出现图1.6下方的结果。
图1.4 安装后的Oracle菜单 图1.5 Oracle登录窗口
图1.6 在Oracle中执行SQL语句
1.2.4 在PL/SQL Developer工具中执行SQL语句
PL/SQL Developer是一个集成开发环境,专门面向Oracle数据库存储程序单元的开发。使用PL/SQL Developer 的命令窗口能够开发并运行SQL脚本。该窗口具有同SQL*Plus相同的感观,另外还增加了一个内置的带语法加强特性的脚本编辑器。这样,您就可以开发自己的脚本,无需编辑脚本、保存脚本、转换为SQL*Plus和运行脚本过程等操作。
说明:本书中的大部分SQL语句应用示例,都是在PL/SQL Developer工具执行并输出结果的。
安装PLSQL Developer工具之后,运行PL/SQL Developer工具,首先回弹出一个登录窗口,在该登录窗口中输入用户名和密码信息,并且选择要连接的Oracle数据库,如图1.7所示。单击“OK”按钮登录到PL/SQL Developer工具当中。
图1.7 PL/SQL Developer工具的登录页面
登录到PL/SQL Developer工具当中之后,进入到PL/SQL Developer工具的管理页面当中。在该页面中按以下步骤执行SQL语句,整个效果如图1.8所示。
(1)先单击工具栏中的“New”按钮,然后选择“SQL Window”菜单项。这个时候管理界面中会弹出一个空白窗口,可以在这里输入SQL语句。
(2)在SQL窗口中输入SQL语句,这里先输入一个简单的查询语句“select * from t_goods”。
(3)输入完语句后,按下“F8”键执行SQL语句。
(4)系统执行这条SQL语句后,就会在窗口的下侧显示一个结果栏。
图1.8 在PL/SQL Developer工具中执行SQL语句
说明:在PL/SQL Developer工具中,除了可以查询数据信息之外,还可以创建数据库、创建视图、维护存储过程和触发器等操作。
1.2.5 在MySQL中执行SQL语句
MySQL是安装和使用都非常简单的数据库,其安装后只有一个菜单,如图1.9所示。这是一个执行SQL语句的命令窗口,不提供任何管理界面。
技巧:如果从菜单中无法进入命令窗口,可以先在“开始”菜单中,通过输入CMD命令进入命令窗口,然后将当前文件夹转换到MySQL的安装目录下,如图1.10中的文件夹所示。
在命令窗口执行mysql –u root –p 指令,其中-u表示登录用户是root,-p表示登录密码(但是先不用写出来,当窗口提示时再写入)。这时就可以进入MySQL的工作界面,它也是以SQL>开头,与Oracle相似。
然后直接输入查询SQL语句“select * from userinfo”,可以看到如图1.8所示的查询结果(查询结果如果有中文,可能会有乱码情况,这个要从网络上来寻找原因了,这里不再多叙述)。
图1.9 安装后的Oracle菜单 图1.10 在MySQL中执行SQL语句
提示:MySQL是一个练习SQL语句的好地方,因为这里没有任何按钮,没有任何界面,也没有什么自动完成函数的功能。这里需要你一个字母一个字母的敲入你的SQL语句。