数据库由一批数据构成有序集合,这些数据被存在结构化的数据表中。数据表之间互相关联,反应客观事物间的本质联系。数据库系统提供对数据的安全控制和完整性控制。数据库的发展大致划分为几个阶段:人工管理阶段、文件系统阶段、数据库系统阶段、高级数据库阶段。其种类大概有3种:层次式数据库、网络式数据库和关系式数据库。
文本数据库缺陷:数据冗余和不一致,数据访问困难,数据孤立,完整性问题,原子性问题并发访问问题,安全性问题。
数据库系统的特性:数据管理独立性;有效地完成数据存取;数据完整性和安全性;数据集中管理;并发存储与故障恢复;减少应用程序开发时间。
数据库系统由硬件部分和软件部分共同构成,硬件主要用于存储数据库中的数据,包括计算机、存储设备等。软件部分则主要包括DBMS、支持DBMS运行的操作系统,以及支持多种语言进行应用开发的访问技术等。
MySQL是一个小型关系数据库管理系统,与其他大型数据库管理系统(Oracle、DB2)相比,MySQL规模小、功能有限,但是它体积小、速度快、成本低,且它提供的功能对稍微复杂的应用来说已经够用。
数据类型
字符:CHAR(n) VARCHAR(n) BINARY(n) VARBINARY(n) TEXT(n) BLOB(n)
数值:
整型:TINYINT SMALLINT MEDIUMINT INT BIGINT
修饰符:UNSIGNED NOT NULL
浮点型:FLOAT DOUBLE
日期时间:DATE TIME DATETIME STAMP
布尔
NULL
内置:ENUM, SET
字段修饰符:
NOT NULL 非空
NULL 空
UNSIGNED 无符号
DEFAULT 不适用于TEXT类型
PRIMARY KEY 主键
UNIQUE KEY 唯一键
AUTO_INCREMENT:自动增长类型的字段必须为主键或惟一键
数据约束:
域约束:数据类型约束
外键约束:引用完整性约束
主键约束:某字段能惟一标识此字段所属的实体,并且不允许为空,一张表中只能有一个主键。
惟一性约束:每一行的某字段都不允许出现相同值,可以为空一张表中可以有多个
检查性约束:用户自定义有效取值范围。
MySQL安装
centos6: yum -y install mysql-server
yum -y install mysql
service mysqld start
centos7: yum -y install mariadb -server
yum -y install mariadb
service mariadb start
MySQL安装完成后,将在其data目录下自动创建几个必须的数据库,可以使用SHOW DATABASES语句来查看当前所有存在 的数据库。
1 2 3 4 5 6 7 8 9 10 | mysql> SHOW DATABASES; + --------------------+ | Database | + --------------------+ | information_schema | | mysql | | performance_schema | | test | + --------------------+ 4 rows in set (0.00 sec) |
MySQL命令主要分为以下几类:
DML:Data Manapulate Language: 数据操作语言(操作表中数据)
INSERT, REPLACE, UPDATE, DELETE
DDL:Data Defination Lanuage: 数据定义语言(操作表)
CREATE, ALTER, DROP
DCL:Data Control Language: 数据控制语言
GRANT, REVOKE
DQL:Data Query Language:数据查询语言
SELECT,WHERE,ORDER BY,GROUPBY,HAVING
TPL:事物处理语言
BEGIN,TRANSACTION,COMMIT
创建数据库是在系统磁盘上划分一块用于数据的存储和管理,如果管理员在设置权限的时候为用户创建了数据库,则可以直接使用,否则,需要自己创建数据库。MySQL创建数据库的基本SQL语法格式为:
1 2 | CREATE DATABASE db_name; #直接创建数据库 CREATE DATABASE [IF NOT EXISTS] db_name; #当数据库不存在时创建 |
数据库创建好后可以使用SHOW CREATE DATABASES声明查看数据库的定义。
1 2 3 4 5 | mysql> SHOW CREATE DATABASE test\G *************************** 1. row *************************** Database : test Create Database : CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET utf8 */ 1 row in set (0.00 sec) |
删除数据库是将已经存在的数据库从磁盘空间上清除,清除后,数据库中的所有数据也将一同被删除。MySQL中删除数据库的基本语法格式为:
1 | DROP DATABASE [IF EXISTS] db_name; |
1 2 3 4 5 6 | mysql> CREATE DATABASE test_tb; Query OK, 1 row affected (0.00 sec) mysql> DROP DATABASE test_tb; Query OK, 0 rows affected (0.02 sec) mysql> SHOW CREATE DATABASE test_tb\G ERROR 1049 (42000): Unknown database 'test_tb' |