本章要点
● 了解数据库的基本知识。
● 了解常见的数据库。
● 了解SQL。
● 了解MySQL。
● 了解MySQL的数据类型。
1.什么是数据库
数据库(Database,DB)是指长期存储在计算机内的、有组织的、可共享的大量数据的集合。数据库是互联网技术的重要组成部分之一,有了数据库才能存储大量的数据,才能支撑人工智能、金融、数字货币、电商、数据分析等行业的快速发展。
目前,随着互联网的迅速发展,中国正处于信息化时代,这离不开数据存储技术和数据处理技术。数据库能存储、处理和分析数据,是信息化和信息管理数字化的必然产物。
2.创建数据库的原因
创建数据库是为了将零散的数据全部存储至数据库中。数据库能存储海量的数据。为了使数据库中的数据更有价值,可通过程序进一步加工和处理数据,从而读取、调用有用的信息,并将有用的信息展示为网页或数据报表。
例如,某班级共有5名学生,当期末考试结束后,这5名学生的成绩被公布:学生A考了99分,学生B考了90分,学生C考了85分,学生D考了70分,学生E考了50分。
若老师不将学生的成绩存储在数据库中,而是直接将试卷交还给学生,则一段时间后,老师很难记得每个学生的具体成绩,更无法准确地计算出全班的平均成绩和合格率。如果老师将学生的姓名、学号、成绩存储在数据库中,则可将学生的成绩转化为有价值的数据。老师甚至可对比学生第一次和第二次考试的成绩,总结学生进步或退步的情况。
3.数据库的特点
(1)数据独立性高
数据独立性是指程序和数据之间相互独立、互不影响。提高数据独立性是设计数据库时最重要的目标之一。数据与程序之间相互独立,把数据从程序中分离出去,数据的存取由数据库负责,简化了程序的编写流程,更容易维护和修改程序。
(2)数据冗余少
数据冗余发生在数据库系统(Database System)中,是指一个数据字段在多个数据表中重复出现。规范的数据表结构可减少冗余产生,节省存储空间。例如,一个数据表存储了用户的姓名、学号、成绩,另一个数据表存储了用户的姓名、学号、爱好、星座。因为用户的学号是唯一的,所以两个数据表可通过关联学号调取数据,其中的一个数据表不用存储用户的姓名等重复数据,从而节省存储空间。
(3)数据共享
数据库中的数据是面向整体的,可被多个用户或程序共同使用,这样可大大减少数据冗余,节省存储空间,避免出现数据不相容的情况。
4.常用的数据库
常用的数据库有Excel、Access、MySQL、Oracle。下面分别介绍这些数据库。
● Excel: 非计算机专业的人员通常会使用Excel存储数据。例如,财务人员通常使用Excel存储和整理财务报表。
● Access: 小型企业经常使用Access进行数据存储与管理。Access可简化存储和使用数据的操作,维护起来也比较简单。
● MySQL: 计算机专业的人员通常会组合使用SQL Server和MySQL存储数据,大中型企业也经常使用MySQL进行数据存储与管理。除此之外,编程开发语言也可与MySQL组合使用,从而更好地管理数据。例如,组合使用PHP与MySQL管理数据。
● Oracle: 计算机专业的人员和大中型企业会使用Oracle进行数据存储与管理。
5.数据库的存储能力
数据库的种类不同,存储能力也不同。下面介绍常用数据库的存储能力。
(1)Excel
Excel的版本不同,存储能力也不同。Excel 2003最多只能存储65536条数据,Excel 2010最多只能存储1048576条数据。当用户使用Excel存储最大限度的数据后,打开Excel需要花很长时间,甚至在打开Excel时,会直接闪退或死机。通俗地说,Excel是存储几万条或几十万条数据的微型数据库。如图1-1所示,当用户使用Excel 2010存储数据时,最多能存储1048576条数据。
(2)Access
与Excel不同,Access没有限制数据的储存数量,但限制了数据的存储空间。Access一次最多能存储2GB的数据。当用户使用Access存储2GB的数据后,打开Access需要花很长时间。Access可存储几百万条数据,是一种小型数据库。Access的操作界面如图1-2所示。
图1-1
图1-2
(3)MySQL
MySQL大约能存储21902400条数据。在默认情况下,使用MySQL创建的MyISAM表最多可存储4GB的数据。一般来说,MySQL是能存储几千万条数据的大中型数据库。图1-3展示了phpMyAdmin软件中MySQL的操作界面。
图1-3
(4)Oracle
因为Oracle的数据存储空间大,很多大中型企业会使用Oracle进行数据存储与管理。Oracle是需要付费的商业数据库,企业需要付费才能进行使用。中小型企业的预算有限,很少使用Oracle。一般来说,Oracle是能存储数亿条数据的大型数据库。Oracle的安装界面如图1-4所示。
图1-4
1.SQL是什么
除了Excel,Access、MySQL、Oracle等数据库都需要有结构化查询语言(Structured Query Language,SQL)的知识基础。换言之,学会SQL可管理各种数据库。SQL是一种数据库查询语言和程序设计语言,用于存储数据,以及查询、更新、管理关系型数据库。
1974年,Boyce和Chamberlin首次提出SQL的概念,并在IBM公司研制的关系型数据库系统System R上实现了SQL。后来,SQL被许多数据库软件公司所接受,逐渐成为数据库行业的标准编程语言。由于SQL具有功能丰富、使用方便、语言简洁易学等优点,深受用户的喜爱。
SQL支持创建、查询、修改、插入、删除等操作。通过上述操作,用户可方便地维护数据库,并进行数据分析。
2.SQL的组成
SQL由如下语言组成。
● 数据查询语言(DQL)。
● 数据操作语言(DML)。
● 数据控制语言(DCL)。
● 数据定义语言(DDL)。
● 事务控制语言(TCL)。
● 指针控制语言(CCL)。
3.SQL的语法规则
SQL的语法规则如下。
● SQL语句使用分号结尾。
● SQL语句无须区分大小写。
● SQL语句可占用一行或多行。如图1-5所示,这条SQL语句占用了两行。
图1-5
● 关键字不能分隔、不能省略、不能跨行。如SEL ECT、SEL都是错误的,必须使用关键字SELECT。
● 用空格分隔各个单词。如SELECT*,没有使用空格分开SELECT和*,这是错误的,必须使用SELECT *。
● 字符常量需要使用引号,如'汉族'或'计算机'。数字常量不需要使用引号。
4.SQL的常用关键字
如图1-6所示,SQL常用的关键字可分为如下几类。
● 数据类关键字: SELECT、INSERT、UPDATE、DELETE、FILE。
● 结构类关键字: CREATE、ALTER、INDEX、DROP、CREATE TEMPORARY TABLES、SHOW VIEW、CREATE ROUTINE、ALTER ROUTINE、EXECUTE、CREATE VIEW、EVENT、TRIGGER。
● 管理类关键字: GRANT、SUPER、PROCESS、RELOAD、SHUTDOWN、SHOW DATABASES、LOCK TABLES、REFERENCES、REPLICATION CLIENT、REPLICATION SLAVE、CREATE USER。
图1-6
MySQL的图标如图1-7所示。
图1-7
目前,MySQL是较为流行的关系型数据库,一步步占领了商业数据库的市场,很多著名的游戏企业、互联网企业、电商企业、科技企业、金融企业都使用MySQL存储重要的数据。
MySQL是开源的数据库,这意味着任何人都可在MySQL源代码的基础上“创造”自己的MySQL,这是开源软件赋予用户的权利。也正是由于MySQL开源、能存储千万条数据的特性,很多企业都会选择MySQL。
MySQL Command Line Client是命令行工具,是MySQL提供的官方客户端。用户在安装并运行MySQL Command Line Client后,即可进入如图1-8所示的主界面。用户直接输入SQL,即可对数据库进行操作。
图1-8
数据库支持多种数据类型。本节以 MySQL 为例,介绍数据库的数据类型。MySQL 常用的数据类型大致可分为三种,分别是字符串类型、数值类型和日期时间类型。
● 字符串类型: 用于存储文本类数据。
● 数值类型: 用于存储数值类数据。
● 日期时间类型: 用于存储日期和时间数据。
字符串类型的存储空间和描述如表1-1 所示。
表1-1 字符串类型的存储空间和描述
数值类型的存储空间和描述如表1-2 所示。
表1-2 数值类型的存储空间和描述
日期时间类型的存储空间、格式和描述如表1-3 所示。
表1-3 日期时间类型的存储空间、格式和描述
注意
DATETIME和TIMESTAMP会返回相同的时间格式,但它们的工作方式不同。在INSERT或UPDATE查询中,TIMESTAMP会自动设置为当前的日期和时间。TIMESTAMP可设置不同的格式。