MySQL从⼊门到精通
第4章数据库操作
本章中将对操作MySQL数据库中的创建数据库、修改数据库、查看数据库、选择数据库和删除数据库进⾏详细介绍。
4.1 认识数据库
在进⾏数据库操作前,⾸先需要对其有⼀个基本的了解。本节将对数据库的基本概念、数据库对象及其相关知识进⾏详细的介绍。
4.1.1 数据库基本概念
数据库(DataBase)是按照数据结构来组织、存储和管理数据的仓库,是存储在⼀起的相关数据的集合。其优点主要体现在以下⼏⽅⾯。
(1)减少数据的冗余度,节省数据的存储空间;
(2)具有较⾼的数据独⽴性和易扩充性;
mysql查看所有存储过程
(3)实现数据资源的充分共享。
下⾯介绍与数据库相关的⼏个概念。
landmark分析是啥1.数据库系统
数据库系统(DataBase System,DBS)是采⽤数据库技术的计算机系统,是由数据库(数据)、数据库管理系统(软件)、数据库管理员(⼈员)、硬件平台(硬件)和软件平台(软件)5部分构成的运⾏实体。其中,数据库管理员(DataBase Administrator,DBA)是对数据库进⾏规划、设计、维护和监视等的专业管理⼈员,在数据库系统中起着⾮常重要的作⽤。
2.数据库管理系统
数据库管理系统(DataBase Management System,DBMS)是数据库系统的⼀个重要组成部分,是位于⽤户与操作之间的⼀层数据管理软件,负责数据库中的数据组织、数据操纵、数据维护和数据服务等。主要具有如下功能。
(1)数据存取的物理构建:为数据模式的物理存取与构建提供有效的存取⽅法与⼿段。
(2)数据操纵功能:为⽤户使⽤数据库的数据提供⽅便,如查询、插⼊、修改、删除等以及简单的算术运算和统计。
(3)数据定义功能:⽤户可以通过数据库管理系统提供的数据定义语⾔(Data Definition Language, DDL)⽅便地对数据库中的对象进⾏定义。
(4)数据库的运⾏管理:数据库管理系统统⼀管理数据库的运⾏和维护,以保障数据的安全性、完整性、并发性和故障的系统恢复性。
(5)数据库的建⽴和维护功能:数据库管理系统能够完成初始数据的输⼊和转换、数据库的转储和恢复、数据库的性能监视和分析等任务。
3.关系数据库
关系数据库是⽀持关系模型的数据库。关系模型由关系数据结构、关系操作集合和完整性约束3部分组成。
(1)关系数据结构:在关系模型中数据结构单⼀,现实世界的实体以及实体间的联系均⽤关系来表⽰,实际上关系模型中数据结构就是⼀张⼆维表。
(2)关系操作集合:关系操作分为关系代数、关系演算、具有关系代数和关系演算双重特点的语⾔(SQL)。
(3)完整性约束:完整性约束包括实体完整性、参照完整性和⽤户定义完整性。
4.1.2 数据库常⽤对象
在MySQL的数据库中,表、视图、存储过程和索引等具体存储数据或对数据进⾏操作的实体都被称为数据库对象。下⾯介绍⼏种常⽤的数据库对象。
1.表
表是包含数据库中所有数据的数据库对象,由⾏和列组成,⽤于组织和存储数据。
2.字段
表中每列称为⼀个字段,字段具有⾃⼰的属性,如字段类型、字段⼤⼩等。其中,字段类型是字段最重要的属性,它决定了字段能够存储哪种数据。
SQL规范⽀持5种基本字段类型:字符型、⽂本型、数值型、逻辑型和⽇期时间型。
3.索引
索引是⼀个单独的、物理的数据库结构。它是依赖于表建⽴的,在数据库中索引使数据库程序⽆须对整个表进⾏扫描,就可以在其中到所需的数据。
4.视图
视图是从⼀张或多张表中导出的表(也称虚拟表),是⽤户查看数据表中数据的⼀种⽅式。表中包括⼏个被定义的数据列与数据⾏,其结构和数据建⽴在对表的查询基础之上。
5.存储过程
存储过程(Stored Procedure)是⼀组为了完成特定功能的SQL语句集合(包含查询、插⼊、删除和更新等操作),经编译后以名称的形式存储在SQL Server服务器端的数据库中,由⽤户通过指定存储过程的名字来执⾏。当这个存储过程被调⽤执⾏时,这些操作也会同时执⾏。
4.1.3 系统数据库
系统数据库是指安装完MySQL服务器后,会附带⼀些数据库。例如,在默认安装的MySQL Workbench中,会默认创建如图4.1所⽰的5个数据库,这些数据库就称为系统数据库。系统数据库会记录⼀些必需的信息,⽤户是不能直接修改这些系统数据库的。test和sakila除外,这两个数据库中的信息对于系统不是必需的,可以进⾏修改。下⾯将对图4.1中所列的系统数据库分别进⾏介绍。
1.information_schema数据库
information_schema数据库主要⽤于存储数据库对象的相关信息。例如,⽤户表信息、列信息、权限信息、字符集信息和分区信息等。
2.performance_schema数据库
performance_schema数据库主要⽤于存储数据库服务器性能参数。
3.sakila数据库
sakila数据库是MySQL提供的样例数据库。该数据库共有16张数据表,这些数据表都是⽐较常见的,在设计数据库时,可以参照这些样例数据表来快速完成所需的数据表。
4.test数据库
test数据库是MySQL数据库管理系统⾃动创建的测试数据库,该数据库中没有创建任何数据表,对于任何⽤户都可以使⽤这个数据库。⼀般情况下,不建议直接使⽤该数据库。
5.world数据库
linux查看shell脚本内容world数据库是MySQL数据库管理系统⾃动创建的数据库,该数据库中只包括3张数据表,分别保存城市、国家和国家使⽤的语⾔等内容。
说明
在MySQL中,使⽤最多的是⽤户数据库,也就是⽤户根据实际需求所创建的数据库,例如在图4.2中的db_mrsoft就是我们创建的⽤户数据库。
图4.1 系统数据库
default input图4.2 ⽤户数据库
4.2 创建数据库
在MySQL中,可以使⽤CREATE DATABASE语句和CREATE SCHEMA语句创建MySQL数据库,其语法如下。
CREATE {DATABASE|SCHEMA} [IF NOT EXISTS] 数据库名
[
[DEFAULT] CHARACTER SET [=] 字符集 |
[DEFAULT] COLLATE [=] 校对规则名称
];
说明
在语法中,花括号“{}”表⽰必选项;中括号“[]”表⽰可选项;竖线“|”表⽰分隔符两侧的内容为“或”的关系。在上⾯的语法中,{DATABASE|SCHEMA}表⽰要么使⽤关键字DATABASE,要么使⽤SCHEMA,但不能全不使⽤。前端开发工程师绩效指标
图4.3 字符集的校对规则
参数说明如下。
(1)[IF NOT EXISTS]:可选项,表⽰在创建数据库前进⾏判断,只有该数据库⽬前尚未存在时才执
⾏创建语句。
(2)数据库名:必须指定的,在⽂件系统中,MySQL的数据存储区将以⽬录⽅式表⽰MySQL数据库。因此,这⾥的数据库名必须符合操作系统⽂件夹的命名规则,⽽在MySQL中是不区分⼤⼩写的。
(3)[DEFAULT]:可选项,表⽰指定默认值。
(4)CHARACTER SET [=]字符集:可选项,⽤于指定数据库的字符集。如果不想指定数据库所使⽤的字符集,那么就可以不使⽤该项,这时MySQL会根据MySQL服务器默认使⽤的字符集来创建该数据库。这⾥的字符集可以是GB2312或者GBK(简体中⽂)、UTF8(针对Unicode的可变长度的字符编码,也称万国码)、BIG5(繁体中⽂)、Latin1(拉丁⽂)等。其中最常⽤的就是UTF8和GBK。
(5)COLLATE [=]校对规则名称:可选项,⽤于指定字符集的校对规则。例如,utf8_bin或者gbk_chinese_ci。具体都有哪些校对规则,可以在MySQL的图形化⼯具Workbench的创建数据库的窗⼝中到,如图4.3所⽰。
在创建数据库时,数据库命名有以下⼏项规则。
(1)不能与其他数据库重名,否则将发⽣错误。
(2)名称可以由任意字母、阿拉伯数字、下划线(_)和“$”组成,可以使⽤上述的任意字符开头,但不能使⽤单独的数字,否则会造成它与数值相混淆。
(3)名称最长可为64个字符,⽽别名最多可长达256个字符。
(4)不能使⽤MySQL关键字作为数据库名、表名。
(5)默认情况下,在Windows下数据库名、表名的⼤⼩写是不敏感的,⽽在Linux下数据库名、表名的⼤⼩写是敏感的。为了便于数据库在平台间进⾏移植,建议读者采⽤⼩写来定义数据库名和表名。
4.2.1 通过CREATE DATABASE语句创建基本数据库
例4.1 通过CREATE DATABASE语句创建⼀个名称为db_admin的数据库,具体代码如下。
create database db_admin;
运⾏效果如图4.4所⽰。
图4.4 通过CREATE DATABASE语句创建
4.2.2 通过CREATE SCHEMA语句创建基本数据库
上⾯介绍的例4.1是最基本的创建数据库的⽅法,实际上,还可以通过语法中给出的CREATE SCHEMA来创建数据库,两者的功能是⼀样的。在使⽤MySQL官⽹中提供的MySQL Workbench图形化⼯具创建数据库时,使⽤的就是这种⽅法。idea基本用法
例4.2 通过CREATE SCHEMA语句创建⼀个名称为db_admin1的数据库,具体代码如下。
create schema db_admin1;
运⾏效果如图4.5所⽰。
图4.5 通过CREATE SCHEMA语句创建
4.2.3 创建指定字符集的数据库
在创建数据库时,如果不指定其使⽤的字符集或者是字符集的校对规则,那么将根据my.ini⽂件中指定的default-character-set变量的值来设置其使⽤的字符集。从创建数据库的基本语法中可以看出,在创建数据库时,还可以指定数据库所使⽤的字符集,下⾯将通过⼀个具体的例⼦来演⽰如何在创建数据库时,指定字符集。
例4.3 通过CREATE DATABASE语句创建⼀个名称为db_test的数据库,并指定其字符集为GBK,具体代码如下。 (实例位置:光盘
\TM\sl\4\4.3)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论