导语
在当今数字化时代,数据已成为最宝贵的资源之一。无论是企业决策、科学研究还是个人兴趣,我们都需要一种有效的方式来存储、检索和分析数据。MySQL正是这样一种工具,它能够帮助我们解锁数据的潜力,发现隐藏在数字背后的模式和趋势。
学习MySQL,就像掌握了一把打开数据宝库的钥匙。MySQL是一种广泛使用的开源关系型数据库管理系统(RDBMS),以其高性能、可靠性和易用性而闻名。它支持SQL(Structured Query Language),这是一种用于管理和操作关系数据库的标准编程语言。
MySQL与生活中的联系
1 网站开发
许多流行的内容管理系统(CMS)和电子商务平台,如WordPress和Magento,都使用MySQL作为它们的数据库解决方案。
2 商业智能
企业依赖MySQL来存储和分析客户数据、交易记录和市场趋势,从而做出更明智的商业决策。
3 教育
教育机构使用MySQL来存储学生记录、课程信息和成绩,简化了教育管理流程。
4 医疗保健
医院和诊所使用MySQL来管理病人记录、药物库存和预约系统,提高了医疗服务的效率和质量。
5 科学研究
研究人员使用MySQL来管理实验数据,进行复杂的数据分析,推动科学发现。
6 政府和公共服务
政府机构使用MySQL来存储公民信息、税务记录和其他重要数据,确保公共服务的高效运行。
7 个人项目
对于个人开发者和爱好者来说,MySQL是一个强大的工具,可以帮助他们构建自己的应用程序和项目。
1 MySQL 的特点
SQL语言是一个综合的、通用的、功能极强的同时又简洁易学的语言。SQL语言集数据定义、数据查询、数据操纵和数据控制于一-体,主要特点如下。
1.综合统一
SQL语言风格统一,可以独立完成数据库生命周期中的全部活动,包括创建数据库定义关系模式、录人数据、删除数据、更新数据、数据库重构、数据库安全控制等一系列操作的要求。这就为数据库应用系统的开发提供了良好的环境。
2.高度非过程化
用SQL语言进行数据操作,用户只需提出“做什么”,而不需要指明“怎么做”。因此,用户无须了解和解释存取路径等过程化的内容,存取路径和SQL语言的操作等过程化的内容由系统自动完成。这不仅大大减轻了用户在程序实现上的负担,而且有利于提高数据的独立性。
3.面向集合的操作方式
SQl语吉采用集合的操作方式,不仅一次在找的结果可以是若干记录的集合,而且一次插人删除、更新等操作的对象也可以是若干记录的集合。
4.同一种语法结构提供两种使用方式
SQL语言既是独立式语言,又是嵌人式语言。作为独立式语言,用户可以在终端键盘上直接输人SQL命令,对数据库进行操作;作为嵌人式语言,SQL语言可以被嵌人宿主语言程序中,供编程使用。在这两种不同的使用方式下,SQL语言的语法结构基本上是致的。这种以统一的语法结构提供两种不同的使用方式的方法,为用户提供了极大的灵活性和方便性。
5.语言简洁、易学易用
SQL是一种结构化的查询语言,它的结构、语法、词汇等本质上都是精确的、典型的英语的结构、语法和词汇,这样使得用户不需要任何编程经验就可以读懂它、使用它,容易学习,容易使用。
2 MySQL的核心功能
SQL功能 | 动词 |
数据定义 | CREATE、DROP、ALTER |
数据操作 | INSERT、DELETE、UPDATE、SELECT |
数据控制 | COMMIT、ROLLBACK、GRANT、REVOKE |
SQL语言的组成
1.数据定义语言(DDL)
DDL用来定义修改、删除数据库中的各种对象,包括创建、修改、删除或者重命名模式对象(CREATE、ALTER、DROP、RENAME)的语句,以及删除表中所有行但不删除表(TRUNCATE)的语句等。
2.数据操纵语言(DML)
DMI的命令用来查询、插人、修改、删除数据库中的数据,包含用于查询数据(SELECT)、添加新行数据(INSERT)、修改现有行数据(UPDATE)、删除现有行数据(DELETE)的语句等。
3.数据控制语言(DCL)
DCL用于事务控制、并发控制、完整性和安全性控制等。事务控制用于把-组DML语句组合起来形成一个事务并进行事务控制。通过事务语句可以把对数据所做的修改保存起来(COMMIT)或者回滚这些修改(ROLLBACK)。在事务中设置一个保存点(SAVEPOINT),以便用于可能出现的回溯操作;通过管理权限(GRANT REVOKE)等语句完成安全性控制以及通过锁定一个数据库表(LOCKTABLE)限制用户对数据访向等操作,实现并发控制。
3 数据定义
3.1 数据库的定义和删除
数据库是存放数据的容器,在设计一个应用系统时必须先设计数据库。在MySQL中一个数据服务器可以包含多个数据库。
1.创建数据库
使用CREATE DATABASE 语句可以轻松创建MySQL数据库,格式如下:
CREATE DATABASE 数据库名;
【例3-1 】创建数据库company
create DATABASE company;
2.选择数据库
在使用数据库之前,必须先选择要操作的数据库,可以使用USE语句选择一个数据库,格式如下:
USE 数据库名;
【例3-2】选择数据库company
USE company;
3.删除数据库
删除数据库的操作可以使用DROP DATABASE 语句,格式如下:
DROP DATABASE 数据库名;
【例3-3】删除数据库company
DROP DATABASE company;
3.2 数据库类型
1.字符串类型
常用的字符串类型CHAR、 VARCHAR类型
CHAR:取值范围为0-255。描述定长的字符串,说明格式为CHAR(L),其中L为字符串长度,比L的值长的话会被截断,比L小的值用空格填补。
VARCHAR:描述定长的字符串,说明格式为VARCHAR(L),取值范围:0-65535其中L为字符串长度,比L的值长的话会被截断,比L小的值不用空格填补,按照实际长度储存。
字符串值引用单引号,比如:'abc',"女"
2.数据类型
常用的INT、DECIMAL类型
INT:用来表示整数,储存长度默认4个字节。
DECIMAL:用来表示所有数据类型,格式类型为DECIMAL(p,s),p表示数值数据的最大长度,s表示数值数据类型中小数点后的数字位数,(p,s)也可以省略。比如DECIMAL(5)或者DECIMAL
3.日期和时间类型
常用的日期和时间类型是DATE、TIME、DATETIME类型。
DATE:用来保存固定长度的日期数据,说明格式为DATE。
TIME:用来保存固定长度的时间数据,说明格式为TIME。
DATETIME:用来保存固定长度的日期时间数据,说明格式为DATETIME。
日期值格式为'YYYY-MM-DD';时间值格式为'HH: MM: SS';日期时间值格式为' YY Y Y-MM-DD HH: MM: SS'。
4.布尔类型
布尔类型为BOOLEAN类型,它只有两个值TRUE 和FALSE,即真值和假值。
3.3基本表的定 义、删除和修改
表是数据库存储数据的基本单元。从用户角度来看,表中存储数据的逻辑结构是一张二维表,即表由行、列两部分组成。通常称表中的一行为一条记录,称表中的一列为一个属性。
1.创建表
创建表,实际上就是在数据库中定义表的结构。表的结构主要包括表与列的名称、列的数据类型,以及建立在表或列上的约束,约束将在后面的有关章节中详细介绍。
创建表的语句是CREATE FABLE,其格式如下:
CREATE TABLE 表名
(<列名><数据类型>
[......]
);
【例3-4】创建表product
CREATE TABLE product
(
p_code DECIMAL(6),
p_name VARCHAR(30),
p_price DECIMAL(5,2)
);
可以使用DESC命令显示表的结构
DESC 表名;
显示product表
DESC prodect;
2.利用子查询来创建表
从已建立的表中提取部分记录组成新表,可利用子查询来创建新表。格式如下:
CREATE TABLE <表名>
SELECT语句;
【例3-5】创建子表product _c
CREATE TABLE product_c
SELECT *from product;
3.修改表结构
(1)在一个表中增加一个列
格式如下:
ALTER TABLE 表名
ADD 列名 数据类型;
【注】ALTER TABLE....ADD只能增加一个列
【例3-6】为product增加一个telephone新列
ALTER TABLE product_c
ADD telephone VARCHAR(11);
查询product_c
DESC product_c;
(2)在一个表中修改一个列
ALTER TABLE 表名
MODIFY 列名 数据类型 [Default <默认值>];
【例3-7】对product_c表中的telephone列进行修改,数据类型不变,将长度改为13,默认值为 0431-86571302
ALTER TABLE product_c
MODIFY telephone VARCHAR(13) Default "ALTER TABLE product_c
MODIFY telephone VARCHAR(13) Default "0431-86571302";
(3)修改一个表中的已有的列
ALTER TABLE 表名
CHANGE <旧列名><新列名><新数据类型>;
【例3-7】将表中的product_c表中的p_name修改为deptname,数据类型保持不变
ALTER TABLE product_c
CHANGE p_name deptname varchar(30);
(4)从一个表中删除一列
ALTER TABLE <表名>
DROP <列名>;
删除product_c表中的telephone列
ALTER TABLE product_c
DROP telephone;
3.4 截断表和删除表
(1)截断表
当一个表中的数据不再需要时,可以使用TRUNCATE TABLE语句将它们全部删除,即截断
TRUNCATE TABLE<表名>
(2)删除表
当不仅要删除表中的数据而且删除表结构时,可以使用DROP TABLE语句
DROP TABLE <表名>
总结
学习MySQL不仅仅是为了掌握一种技术,更是为了理解数据如何在现代社会中发挥作用,以及如何利用这些数据来创造更好的产品和服务。随着你对MySQL的深入了解,你将能够更有效地与数据对话,解锁它所蕴含的无限可能。