MySQL基礎1
術語:
數據庫:按照數據結構來組織,存儲和管理的數據倉庫
數據庫管理系統DBMS:是一種操縱和管理數據庫的大型軟件,用於建立,使用和維護數據庫
結構化查詢語言SQL:功能包括查詢,操縱,定義和控制,是一個綜合的,通用的關系型數據庫語言,同時又是一種高度非過程化的語言,只要求用戶指出做什麽而不需要指出怎麽做
RDBMS(關系型數據庫管理系統)術語:
表:具有固定的列數和任意的行數
數據庫:是一些關聯表的集合
列:一個數據項field字段
行:一條記錄row
主鍵:主鍵是唯一的,一個數據表中只能包含一個主鍵,可以使用主鍵來查詢數據
外鍵:用於關聯兩個表
索引:使用索引可快速訪問數據庫表中的特定信息,索引是對數據庫表中一列或多列的值進行排序的結果,類似書籍的目錄
常用數據庫命令:
命令行進入數據庫:mysql -u 用戶名 -p
mysql -u root -p
創建數據庫:create database 數據庫名稱;
creat database test;
刪除數據庫:drop database 數據庫名稱;
drop database test;
查看數據庫:show databases;
show databases;
使用數據庫:use 數據庫名稱;
use test;
查看數據庫當中有多少張表:show tables;
show tables;
(先查看數據庫,再使用數據庫,再查有多少張表)
MySQL存儲引擎:
數據庫對象:存儲,管理和使用數據的不同結構形式,如表,視圖,存儲過程,函數,觸發器,事件等
數據庫:存儲數據庫對象的容器
存儲引擎:MySQL數據庫用各種不同的技術存儲在文件(或內存)中,每一種技術都使用不同的存儲機制,索引技巧,鎖定水平並且最終提供廣泛的不同的功能和能力,通過選擇不同的技術,能夠獲得額外的速度或者功能,從而改善你的應用的整體功能.不同的存儲引擎性能是不一樣的
事務:作為單個邏輯工作單元執行的一系列操作,要麽全部執行,要麽全部不執行.比如轉賬
存儲引擎分類:
MYISAM:不支持事務也不支持外鍵,尤其是訪問速度快對事務完整性沒有要求或者以SELECT,INSERT為主的應用基本都可以使用這個引擎來創建表,每個MYISAM在磁盤上存儲3個文件,其中文件名和表名都相同,但是擴展名分別為.frm(存儲表定義), MYD(MYData,存儲數據),MYI(MYIndex,存儲索引)
INNODB:提供了具有提交,回滾和奔潰恢復能力的事務安全,但是對比MYSIAM的存儲引擎,INNODB處理的效率差些並且會占用更多的磁盤空間以保留數據和索引
MERORY:使用存在內存中的內容來創建表,每個MERORY表實際對應一個磁盤文件,格式是.frm,MERORY類型的表訪問的非常快,因為它的數據是放在內存中的,並且默認使用HASH索引,但是一旦服務器關閉,表中的數據就會丟失,但表還會繼續存在
MySQL數據庫分為兩種:
系統數據庫(數據庫服務器自帶的4個):
information_schema:存儲數據庫對象信息,如用戶表信息,列信息,根除,字符,分區裏面的內容我們不能動
performance_schema:存儲數據庫服務器性能參數信息
mysql:存儲數據庫用戶權限信息
sys:通過這個庫可以快速的了解系統的元數據信息,這個庫是通過視圖的形式把information_schema和performance_schema結合起來,查詢出更加容易理解的數據
SQL功能分類:
DDL:數據定義語言, 用來定義數據庫對象:創建庫,表,列等
DML:數據操作語言,用來操作數據庫表中的記錄
DQL:數據查詢語言,用來查詢數據
DCL:數據控制語言,用來定義訪問權限和安全級別
SQL數據類型:
數值類型:
字符串類型:
日期和時間類型:
常用數據類型:
double:浮點型,例如double(5,2)表示最多5位,其中必須有2位小數,即最大值為999.99
char:固定長度字符串類型; char(10) ‘abc ‘
varchar:可變長度字符串類型;varchar(10) ‘abc‘
text:字符串類型
blob:二進制類型
date:日期類型,格式為:yyyy-MM-dd
time:時間類型,格式為:hh:mm:ss
datetime:日期時間類型 yyyy-MM-dd hh:mm:ss
MySQL基礎1