第一章 数据库基础
什么是数据库
数据库是程序开发中十分重要且关键的一环,是十分重要也是必要的用来存储数据的方式和手段。和普通的在内存中存储不同,数据库可以将大量的数据更加方便的和快捷地进行管理。因此数据库水平是衡量一个程序员水平的重要指标。
目前主流的数据库有以下几个。
1、SQL Server。
2、Oracle。
3、MySQL。
4、PostgreSQL。
……
而本博选用一种在Linux下开源的控制台版本的数据库:MariaDB。此款数据库是MySQL的一个分支,是MySQL之父在MySQL闭源之后重新依据MySQL制作的开源版本,并以自己女儿Maria的名字进行命名。其实与其叫MariaDB为MySQL的替代品,不如称之为升级版本。因为MariaDB在性能上对MySQL多多少少都有所提升,并且还对一些方面的技术有所创新。除此之外MariaDB与MySQL的语法几乎完全一致(其实大多数据库的语法都是相似的,几乎没有很大的区别),也是为了熟悉Linux下的控制台操作我选做MariaDB为例进行学习。
安装及配置
以下的所有操作均是在root用户下执行。
1、安装MariaDB服务。
yum install -y mariadb-server
2、安装 mariadb 命令行客户端
yum install -y mariadb
3、安装 mariadb C library
yum install -y mariadb-libs
4、安装 mariadb 开发包
yum install -y mariadb-devel
5、更改相关配置
用vim打开/etc/my.cnf.d/client.cnf
文件,vim /etc/my.cnf.d/client.cnf
。[client]
下加一行配置 default-character-set=utf8
。
最终内容1
2
3
4
5
6
7
8
9
10
11
12
13#
# These two groups are read by the client library
# Use it for options that affect all clients, but not the server
#
[client]
default-character-set = utf8
# This group is not read by mysql client library,
# If you use the same .cnf file for MySQL and MariaDB,
# use it for MariaDB-only client options
[client-mariadb]
用vim打开/etc/my.cnf.d/mysql-clients.cnf
文件,vim /etc/my.cnf.d/mysql-clients.cnf
。[mysql]
下加一行配置 default-character-set=utf8
。
最终内容1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23#
# These groups are read by MariaDB command-line tools
# Use it for options that affect only one utility
#
[mysql]
default-character-set = utf8
[mysql_upgrade]
[mysqladmin]
[mysqlbinlog]
[mysqlcheck]
[mysqldump]
[mysqlimport]
[mysqlshow]
[mysqlslap]
用vim打开/etc/my.cnf.d/server.cnf
文件,vim /etc/my.cnf.d/server.cnf
。[mysqld]
下加配置1
2
3
4
5
6
7collation-server = utf8_general_ci
init-connect='SET NAMES utf8'
character-set-server = utf8
sql-mode = TRADITIONAL
最终内容1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32#
# These groups are read by MariaDB server.
# Use it for options that only the server (but not clients) should see
#
# See the examples of server my.cnf files in /usr/share/mysql/
#
# this is read by the standalone daemon and embedded servers
[server]
# this is only for the mysqld standalone daemon
[mysqld]
collation-server = utf8_general_ci
init-connect = 'SET NAMES utf8'
character-set-server = utf8
sql-mode = TRADITIONAL
# this is only for embedded server
[embedded]
# This group is only read by MariaDB-5.5 servers.
# If you use the same .cnf file for MariaDB of different versions,
# use this group for options that older servers don't understand
[mysqld-5.5]
# These two groups are only read by MariaDB servers, not by MySQL.
# If you use the same .cnf file for MySQL and MariaDB,
# you can put MariaDB-only options here
[mariadb]
[mariadb-5.5]
使用mysql -h 127.0.0.1 -P 3306 -u root -p
来测试是否安装成功,成功后返回以下信息。并进入MariaDB。1
2
3
4
5
6
7Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.60-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
经过以上步骤,使用quit
退出MariaDB,就算是成功安装完毕了,我们就能轻松的开始学习了。
数据库基础介绍
1、所谓数据库服务器,不过是数据库的系统管理程序,这个管理程序可以管理多个数据库,易班来说,我们每开发一个项目就会单独建立一个数据库来进行数据的存储。同时为了保存应用中实体的数据,一般会在数据库中建立多个表,以保存实体的数据。也就是说在MySQL中我们可以建立多个数据库,而每个数据库中又可以建立多个表,分类进行数据管理。
2、MySQL数据库可以在多个平台上运行,
当今几乎所有的操作系统都可以运行MySQL,并且在哥哥系统上MySQL可以做到很好的物理体系结构的一致性。
3、在MySQL语法中其实包含着多个数据操作语言,他们各自有各自独立的语法,一起合作构成了MySQL这个强大的体系。
DDL:数据定义语言,用来维护存储数据的结构。
DML:L数据操纵语言,用来对数据进行操作。
DCL:数据控制语言,主要负责权限管理和事务。
4、存储引擎是数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。MySQL的核心就是插件式存储引擎,支持多种存储引擎,每种存储引擎都各有各的优缺点,在早期学习数据库过程中仅做了解。