數據庫由一批數據構成有序集合,這些數據被存在結構化的數據表中。數據表之間互相關聯,反應客觀事物間的本質聯繫。數據庫系統提供對數據的安全控制和完整性控制。數據庫的發展大致劃分爲幾個階段:人工管理階段、文件系統階段、數據庫系統階段、高級數據庫階段。其種類大概有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' |