1、數(shù)據(jù)庫:存儲數(shù)據(jù)的倉庫恒水、高效地存儲和處理數(shù)據(jù)的介質(zhì)(介質(zhì)主要是兩種:磁盤和內(nèi)存)
分類:基于存儲介質(zhì)的不同:分為關(guān)系型數(shù)據(jù)庫(SQL)和非關(guān)系型數(shù)據(jù)庫(NoSQL:Not Only SQL)
2会放、關(guān)系型數(shù)據(jù)庫:是一種建立在關(guān)系模型(數(shù)學(xué)模型)上的數(shù)據(jù)庫
? ? ?? 大型{Oracle、DB2}钉凌、中型{SQL Server咧最、MySQL}、小型{Access甩骏、SQLite等}
? ? ?? 安全(保存磁盤窗市,基本不可能丟失),容易理解饮笛,比較浪費空間(二維表)
p:關(guān)系模型:包含數(shù)據(jù)結(jié)構(gòu)咨察、操作指令集合、完整性約束
3福青、非關(guān)系型數(shù)據(jù)庫:Memcached摄狱、MongoDB、Redis
? ? ? ? ?? 效率高无午,不安全(斷電丟失)
數(shù)據(jù)庫系統(tǒng):DBS(Database System):是一種虛擬系統(tǒng)媒役,將多種內(nèi)容關(guān)聯(lián)起來的稱呼(DBS = DBMS + DB)
DBMS:Database Management System,數(shù)據(jù)庫管理系統(tǒng)宪迟,專門管理數(shù)據(jù)庫
DBA:Database Administrator酣衷,數(shù)據(jù)庫管理員
4、SQL:(Structured Query Language)結(jié)構(gòu)化查詢語言
SQL分為三個部分:DDL數(shù)據(jù)定義語言次泽、DML數(shù)據(jù)操作語言穿仪、DCL數(shù)據(jù)控制語言
DDL:用來維護存儲數(shù)據(jù)的結(jié)構(gòu)(數(shù)據(jù)庫、表)意荤,代表指令:create啊片、drop、alter等
DML:用來對數(shù)據(jù)進行操作(數(shù)據(jù)表中的內(nèi)容)玖像,代表指令:insert紫谷、delete、update等捐寥。其中DML內(nèi)部又單獨進行了一個分類:DQL笤昨,如select
DCL:主要是負責(zé)權(quán)限管理(用戶),代表指令:grant握恳、revoke等
5咬腋、交互方式:*客戶端連接認證:連接服務(wù)器、認證身份(mysql.exe -hPup)
*客戶端發(fā)送SQL指令
*服務(wù)器接收SQL指令睡互,并處理SQL指令根竿,返回操作結(jié)果
*客戶端接收結(jié)果陵像,并顯示結(jié)果
*斷開連接
6、MySQL服務(wù)器內(nèi)部對象:系統(tǒng)(DBMS)寇壳、數(shù)據(jù)庫(DB)醒颖、數(shù)據(jù)表(Table)、字段(Field)
SQL基本操作:庫操作壳炎、表操作(包含字段操作)泞歉、數(shù)據(jù)操作
7、庫操作:create database 數(shù)據(jù)庫名字 [庫選項];
字符集設(shè)定:charset/character set 具體字符集(數(shù)據(jù)存儲的編碼格式匿辩,常用的有:GBK和UTF8)
校對集設(shè)定:collate 具體校對集(數(shù)據(jù)比較的規(guī)則)
數(shù)據(jù)庫名字不能用關(guān)鍵字(已經(jīng)被系統(tǒng)使用的字符)或者保留字(將來系統(tǒng)可能會用到的字符)
每個數(shù)據(jù)庫下都有一個opt文件腰耙,保存了庫選項
查看所有數(shù)據(jù)庫:show databases;
查看指定部分的數(shù)據(jù)庫(模糊查詢):show databases like 'pattern';
查看數(shù)據(jù)庫的創(chuàng)建語句:show create database 數(shù)據(jù)庫名字;
數(shù)據(jù)庫名字不可以修改
數(shù)據(jù)庫的修改僅限庫選項,即字符集和校對集(校對集依賴字符集)
alter database 數(shù)據(jù)庫名字 [庫選項];
charset/character set [=] 字符集
collate 校對集
刪除數(shù)據(jù)庫:drop database 數(shù)據(jù)庫名字;
8铲球、表操作:
*新增數(shù)據(jù)表
create table [if not exists] 表名(
字段名字 數(shù)據(jù)類型,
……
字段名字 數(shù)據(jù)類型
) [表選項];
*控制表的表現(xiàn)
字符集:charset/character set 具體字符集;? ?? -- 保證表中數(shù)據(jù)存儲的字符集
校對集:collate 具體校對集
存儲引擎:engine 具體的存儲引擎(innodb和myisam)
出錯解決:1create table 數(shù)據(jù)庫名.表名();?? 2進入數(shù)據(jù)庫環(huán)境:use 數(shù)據(jù)庫名字;
查看數(shù)據(jù)表:
查看所有表:show tables;
查看部分表(模糊查詢):show tables like 'pattern';
查看表的創(chuàng)建語句:show create table 表名;
查看表結(jié)構(gòu)(表中的字段信息):desc/describe/show columns from 表名;
修改數(shù)據(jù)表:修改表名:rename table 舊表名 to 新表名;
修改表選項(字符集挺庞、校對集、存儲引擎都可以修改):alter table 表名 表選項 [=] 值;
刪除數(shù)據(jù)表:drop table 表名1,表名2……;
9稼病、字段操作:
新增字段:alter table 表名 add [column] 字段名 數(shù)據(jù)類型 [列屬性] [位置];
first:第一個位置
after:在哪個字段之后:after 字段名;
修改字段:alter table 表名 modify 字段名 數(shù)據(jù)類型 [列屬性] [位置];
重命名字段:alter table 表名 change 舊字段 新字段名 數(shù)據(jù)類型 [列屬性] [位置];
刪除字段:alter table 表名 drop 字段名;
10选侨、數(shù)據(jù)操作:
insert into 表名 values(值列表)[,(值列表)];
insert into 表名 (字段列表) values (值列表) [,(值列表)];
查看所有數(shù)據(jù):select * from 表名 [where 條件];
查看指定字段、指定條件的數(shù)據(jù):select 字段列表 from 表名 [where 條件];
update 表名 set 字段 = 值 [where 條件];
建議都有where然走,否則就是更新全部
刪除是不可逆的援制,謹慎刪除:delete from 表名 [where條件];
11:、小注意點:
行/記錄:row/record
列/字段:column/field
p:pattern是匹配模式:%表示匹配多個字符芍瑞、_表示匹配單個字符