大家都有过以下经历吧?
收到曾经为自己诊治过的牙医寄来的明信片,上面写着“距上次检查已有半年,请您再来做个牙齿健康检查”。在生日的前一个月,收到曾入住过的旅店或宾馆发来的“生日当月入住优惠”的邮件或者明信片。在网上商城购物之后,收到内附“推荐商品列表”的邮件。这可能是因为牙医、酒店或商场经营者掌握了客户的最后就诊日期、生日和购买历史,并且拥有能够从大量汇总信息中快速获取所需信息(如您的地址或爱好)的设备(计算机系统)。我真的不知道手工完成同样的工作需要多长时间。
此外,各地区图书馆现在都配备了计算机,实现了图书的自动查询。使用这个系统,你可以通过搜索书名或出版年份,快速找到你想借的书的位置,以及是否已经借出。正是因为有了能保存书名、出版年份、存放地点、借阅情况,并能按需查询的设备,这一切才有可能。
这样保存了大量的数据,计算机可以高效访问的数据集称为数据库(DB)。将姓名、地址、电话号码、电子邮件地址、爱好、家庭构成等数据保存在数据库中,随时可以快速获取想要的信息。
数据库管理系统
用于管理数据库的计算机系统被称为数据库管理系统。为什么要使用专用系统(DBMS)来管理数据?
当我们用计算机管理数据时,我们通常使用文本文件或Excel等电子表格软件,这很简单。但是也有一些缺点。下面举几个有代表性的例子。
无法多人共享数据存储在连接到网络的计算机中的文件可以由多个用户通过共享设置在线读取或编辑。但是,当一个用户打开文件时,其他用户无法编辑它。如果是网购商城,当某个用户购买商品时,其他用户无法购买。
无法提供操作大量数据所需的格式要想瞬间从几十万或几百万的数据中获取想要的数据,必须将数据保存为合适的格式,但是文本文件和Excel工作表无法提供相应的格式。
实现读写自动化需要编程能力数据读取和编辑的自动化可以通过编写计算机程序来实现,但必须以理解数据结构为基础,必须具备一定的计算机编程技术。
无法应对突发事故文件误删,硬盘故障等。,导致文件不可读,重要数据可能会丢失,数据很容易被他人读取或窃取。
DBMS可以克服这些缺点,实现多个用户可以安全、简单地同时操作大量数据(图1-2)。这就是为什么一定要用DBMS的原因。
图1-2 DBMS能够实现多个用户同时安全简单地操作大量数据图1-2数据库管理系统使多个用户能够安全简单地同时操作大量数据
数据库管理系统的类型DBMS主要根据存储格式(数据库的类型)对数据进行分类,目前有五种类型。
1.分级数据库(HDB)
最古老的数据库之一,它以层次结构(树形结构)呈现数据。分层数据库曾经是数据库的主流,但是随着关系数据库的出现和普及,现在已经很少使用了。
2.关系数据库(RDB)
关系数据库是目前应用最广泛的数据库。关系数据库诞生于1969年,历史悠久。和Excel工作表一样,它也是用一个由行和列组成的二维表来管理数据,所以很容易理解(表1)。同时,它还使用特殊的SQL(结构化查询语言)对数据进行操作。
表1 关系数据库中的数据表1关系数据库中的数据
这种类型的数据库管理系统被称为关系数据库管理系统(RDBMS)。有五个代表性的关系数据库管理系统如下。 Oracle Database:甲骨文公司的RDBMS(通常简称为Oracle)SQL Server :微软公司的RDBMSDB2:IBM 公司的RDBMSPostgreSQL:开源的RDBMSMySQL :开源的RDBMS3.面向对象数据库
其中一种编程语言叫做面向对象语言。数据和对数据的操作是由对象收集和管理的,因此得名。面向对象数据库是用来存储这些对象的数据库。
4.可扩展标记语言数据库
近年来,XMLB作为一种网络交互数据的形式逐渐流行起来。XML数据库可以高速处理大量的XML形式的数据。
5.关键价值商店(KVS)
这是一种数据库,简单地用于保存查询中使用的键和值的组合。有编程语言知识的读者可以把它想象成关联数组或散列。近年来,随着键值存储系统在谷歌等需要超高速查询大量数据的Web服务中的应用,逐渐引起人们的关注。
下面介绍使用SQL语言的数据库管理系统的操作方法,即关系数据库管理系统(RDBMS)。除非另有说明,下面提到的数据库和DBMS指的是RDBMS。
数据库结构
关系数据库管理系统的通用体系结构
在使用RDBMS时,最常见的系统结构是客户机/服务器类型(C/S类型)(图1)。
图1 使用RDBMS时的系统结构图1使用关系数据库管理系统时的系统结构
服务器是指用于接收来自其他程序的请求并相应地处理这些请求的程序(软件),或者是安装这些程序的设备(计算机)。继续在计算机上处理,并等待收到下一个请求。RDBMS也是一种服务器,可以从存储在硬盘上的数据库中读取数据并返回,也可以将数据更改为指定的内容。相反,向服务器或安装程序的设备(计算机)发送请求的程序(软件)称为客户机。访问由RDBMS管理的数据库并读写数据的程序称为RDBMS客户端。RDBMS客户端通过SQL语句向RDBMS服务器发送它想要获取什么样的数据或者想要做什么样的更改等信息。关系数据库管理系统根据语句的内容返回请求的数据,或者更新存储在数据库中的数据。
客户就像委托人,而服务器就像受托人。因为它们之间的关系类似于受托人执行委托人发出的指令,所以得名。
这样,就可以用SQL语句读写关系数据库了。
此外,RDBMS可以与其客户端安装在同一台计算机上,也可以安装在不同的计算机上。这样,它们不仅可以通过网络相互关联,而且多个客户端可以访问同一个关系数据库管理系统(图2)。
图2 通过网络可以实现多个客户端访问同一个数据库图2多个客户端可以通过网络访问同一个数据库
客户端不需要使用同一个程序,只要能把SQL发送到RDBMS,就能操作数据库。此外,多个客户端可以同时读写同一个数据库。此外,RDBMS不仅需要同时接收多个客户端的请求,还需要操作数据量较大的数据库,因此通常安装在性能比客户端更好的计算机上。在操作一个数据量巨大的数据库时,多台计算机也可以组合使用。
虽然RDBMS 的系统结构多种多样,但是从客户端发来的SQL 语句基本上都是一样的。什么是SQLSQL是一种为操作数据库而开发的语言。
最初是为了提高数据库查询的效率而开发的,现在不仅可以查询数据,而且基本上可以通过SQL插入和删除数据。
国际标准化组织(ISO)为SQL 制定了相应的标准,以此为基准的SQL 称为标准SQL。以前,完全基于标准SQL 的RDBMS 很少,通常需要根据不同的RDBMS来编写特定的SQL 语句。这样一来,就会造成能够在Oracle 中使用的SQL 语句却无法在SQL Server 中使用,反之亦然。近来,对标准SQL 的支持取得了一些进展,因此希望准备学习SQL 的人们能够从现在开始就牢记标准SQL 的书写方式。学会标准SQL 就可以在各种RDBMS 中书写SQL 语句了。SQL语句及其类型
SQL使用由关键字、表名、列名等组成的语句(SQL语句)。描述操作内容。关键词是指含义或用法已经事先定义好的英文单词,有“查询表”或“参照此表”等各种含义的关键词。
根据给关系数据库管理系统的不同类型的指令,可以将SQL语句分为以下三类。
● DDL
DDL(数据定义语言)用于创建或删除数据库,以存储数据、数据库中的表和其他对象。DDL包含以下说明。
CREATE: 创建数据库和表等对象DROP: 删除数据库和表等对象ALTER: 修改数据库和表等对象的结构●DML
DML(数据操作语言)用于查询或更改表中的记录。DML包含以下说明。
SELECT:查询表中的数据INSERT:向表中插入新数据UPDATE:更新表中的数据DELETE:删除表中的数据●DCL
DCL(数据控制语言)用于确认或取消对数据库中数据所做的更改。此外,还可以设置RDBMS用户是否有权限操作对象(数据库表等)。)在数据库中。DCL包含以下说明。
COMMIT: 确认对数据库中的数据进行的变更ROLLBACK: 取消对数据库中的数据进行的变更GRANT: 赋予用户操作权限REVOKE: 取消用户的操作权限SQL 根据功能不同可以分为三类,其中使用最多的是DML。SQL的基本编写规则
编写SQL语句时,必须遵守一些规则。这些规则很简单,让我们一个一个去了解。
■ SQL语句应该是分号(;)结束
一条SQL语句可以描述一个数据库操作。在RDBMS中,SQL语句也是一条一条执行的。
众所周知,我们用标点符号来标记一个句子的结尾,汉语句子以句号结尾。),英文以点(.)结尾。),而SQL语句使用分号(;)结束。
■ SQL语句不区分大小写
SQL对关键字不区分大小写。比如无论写成select还是SELECT,解释都是一样的。表名和列名也是如此。
虽然可以根据个人喜好选择大写或小写(或大小写混合),但为了更容易理解,可以使用以下规则编写SQL语句。
关键字大写表名的首字母大写其余(列名等)小写但是插入到表中的数据是区分大小写的。例如,在操作过程中,数据Computer、COMPUTER 或computer,三者是不一样的。■常量的书写方法是固定的
SQL语句经常需要直接写字符串、日期或数字。例如,编写将字符串、日期或数字等数据插入表中的SQL语句。
直接写在SQL语句中的字符串、日期或数字称为常量。常数写如下。
当一个SQL语句包含一个字符串时,它需要像“abc”一样用单引号(')括起来,以标识它是一个字符串。
当SQL语句包含日期时,它们也需要用单引号括起来。日期有多种格式(“2010年1月26日”或“2010年1月10日”等)。),也可以使用' 2010-01-26 '的格式。
在SQL语句中写数字时,不需要用任何符号来标识。可以直接写1000这样的数字。
■单词需要用半角空或换行符隔开
SQL语句中的单词应该用半角空网格或新的行字符分隔。像下面这样不可分割的语句会导致错误,并且不能正常执行。
○创建表格产品
× CREATETABLE产品
× CREATE TABLEProduct
但是不能用全角空网格作为单词的分隔符,否则会出现错误,出现意想不到的结果。
表格内容的创建
在我们学习表查询、数据变更等SQL语句之前。我们需要创建学习这些SQL语句所需的数据库和表。
表2 举例用的商品表表2商品示例列表
这张表是一家小商店出售的商品清单。商品并不多,但我们可以把它们看作是大量数据的一部分(毕竟这只是一个为学习SQL而创建的表)。我们可以认为,0003号商品的登记日期、0006号商品的购买单价等空白色内容,由于店主的疏忽,忘记输入。我们可以看到表2由6列8行组成。最上面一行是数据的项目名,真正的数据从第二行开始。
备忘接下来,我们会逐步学习创建数据库和表所使用的SQL 语句的书写方式。在这之前,请先准备好学习环境(PostgreSQL)。创建数据库(CREATE DATABASE语句)
如前所述,在创建表之前,您必须首先创建一个数据库来存储该表。运行CREATE DATABASE语句在RDBMS上创建一个数据库。CREATEDATABASE语句的语法如下。
这里我们仅指定了使用该语法所需的最少项目,实际开发数据库时还需要指定各种其他项目。语法1-1用于创建数据库的CREATE DATABASE语句
创建数据库& lt数据库名称>:;
这里我们命名数据库商店,然后执行清单1-1中的SQL语句。
代码清单1-1创建数据库商店的CREATE DATABASE语句
创建数据库商店;
另外,数据库名、表名、列名要用半角字符(英文字母、数字、符号),具体情况后面会介绍。
创建表(CREATE TABLE语句)
创建数据库后,我们使用CREATE TABLE语句在其中创建一个表。CREATE TABLE语句的语法如下
语法1-2创建表格创建表格的语句
创建表格& lt表格名称>:
以前,所有的介绍都是关于创建产品表的内容。现在,我们来介绍一下删除表的方法。删除一个表的SQL语句非常简单,只需要一个DROP TABLE语句。
语法1-3删除表格时使用的删除表格语句
删除表格& lt表名>:;
如果您想要删除产品表,您只需要编写类似清单1-3的SQL语句。
代码清单1-3删除产品表
降表产品;
DROP在英语中的意思是“扔掉”和“放弃”。请务必注意,已删除的表无法恢复。即使是误删的表也无法恢复,只能重新创建,然后才能重新插入数据。
其实很多RDBMS 都预留了恢复的功能,但还是请大家认为是无法恢复的。如果不小心删了重要的业务表,那就悲剧了。特别是,存储大量数据的表恢复起来既耗时又费力。请注意!
表定义的更新(ALTER TABLE语句)
有时,在发现缺少几列之前,很难创建一个表。事实上,您不需要删除和重新创建表,只需使用ALTER TABLE语句来更改表定义。ALTER在英语中的意思是“改变”。下面介绍一下这个说法的常用用法。
首先是添加列时使用的语法。
语法1-4用于添加列的ALTER TABLE语句
ALTER TABLE <。表名>:ADD COLUMN & lt列的定义>:;
特定的SQLOracle 和SQL Server 中不用写COLUMN。ALTER TABLE <。表名>:ADD & lt列名>:;
另外,在Oracle 中同时添加多列的时候,可以像下面这样使用括号。ALTER TABLE <。表名>:ADD(& lt;列名>:,& lt列名>:,……);
例如,我们可以使用清单1-4中的语句向Product表中添加这样一个列,product_name_pinyin,它可以存储一个100位的可变长度字符串。
代码清单1-4添加了一个product _ name _拼音列,可以存储100位可变长度字符串
DB2 PostgreSQL MySQL
ALTER TABLE Product ADD COLUMN Product _ name _拼音VARCHAR(100);
神谕
ALTER TABLE Product ADD(Product _ name _拼音varchar 2(100));
数据库
ALTER TABLE Product ADD Product _ name _拼音VARCHAR(100);
相反,删除表中一列的语法如下。
语法1-5删除列的ALTER TABLE语句
ALTER TABLE <。表名>:DROP COLUMN & lt列名>:;
特定的SQLOracle 中不用写COLUMN。ALTER TABLE <。表名>:DROP & lt列名>:;
另外,在Oracle 中同时删除多列的时候,可以像下面这样使用括号来实现。ALTER TABLE <。表名>:DROP(& lt;列名>:,& lt列名>:,……);
例如,我们可以使用清单1-5中的语句删除之前添加的product _ name _拼音列。
代码清单1-5删除产品名称拼音列
SQL Server DB2 PostgreSQL MySQL
ALTER TABLE Product DROP COLUMN Product _ name _拼音;
神谕
ALTER TABLE Product DROP(Product _ name _拼音);
ALTER TABLE语句与DROP TABLE语句一样,在执行后无法恢复。错误添加的列可以通过ALTER TABLE语句删除,也可以删除并重新创建所有表。
将数据插入产品表
最后,让我们尝试将数据插入表中。清单1-6显示了向产品表中插入数据的SQL语句。
代码清单1-6用于将数据插入产品表的SQL语句
SQL Server PostgreSQL
- DML:插入数据
开始交易;—————————①
插入产品价值(' 0001 ','t恤','衣服',1000,500,' 2009-09-20 ');
插入产品价值(' 0002 ','打孔','办公用品',500,320,' 2009-09-11 ');
插入产品价值(' 0003 ','运动t恤','衣服',4000,2800,空);
插入产品价值(' 0004 ','菜刀','厨具',3000,2800,' 2009-09-20 ');
插入产品价值(' 0005 ','高压锅','厨房用具',6800,5000,' 2009-01-15 ');
插入产品价值(' 0006 ','叉子','厨房用具',500,空,' 2009-09-20 ');
插入产品价值(' 0007 ','砧板','厨房用具',880,790,' 2008-04-28 ');
插入产品价值(' 0008 ','圆珠笔','办公用品',100,空,' 2009-11-11 ');
COMMIT
特定的SQLDBMS 不同,代码清单1-6中的DML语句也略有不同。在MySQL 中运行时,需要把①中的BEGIN TRANSACTION;改写成开始交易;
在Oracle 和DB2中运行时,无需使用①中的BEGIN TRANSACTION;(请予以删除)。您可以使用insert指令语句INSERT将表1-2中的所有数据插入到表中。开头的BEGIN TRANSACTION语句是开始插入行的指令语句,结尾的COMMIT语句是确定插入行的指令语句。
怎么入门SQL?近年来,与其他系统领域一样,数据库领域也取得了快速发展,应用范围不断扩大。不仅出现了具有新功能的数据库,而且操作的数据量也大大增加了。
估计以后会有很多读者逐渐积累各种领域、各种规模的系统开发经验(也可能已经开始从事开发工作),然后所有系统都必须使用数据库。他们使用的数据库,即使不是关系数据库,也必须基于关系数据库。从这个意义上说,如果你掌握了关系数据库和SQL,你就可以成为任何系统开发所需要的数据库专家。
1.《什么是数据库管理系统 什么是数据库?什么是SQL?怎么入门SQL?》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《什么是数据库管理系统 什么是数据库?什么是SQL?怎么入门SQL?》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/guoji/1194640.html