1、數(shù)據(jù)庫:存儲(chǔ)數(shù)據(jù)的倉庫较剃、高效地存儲(chǔ)和處理數(shù)據(jù)的介質(zhì)(介質(zhì)主要是兩種:磁盤和內(nèi)存)
分類:基于存儲(chǔ)介質(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等}
? ? ? 安全(保存磁盤偿短,基本不可能丟失),容易理解馋没,比較浪費(fèi)空間(二維表)
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分為三個(gè)部分:DDL數(shù)據(jù)定義語言澈缺、DML數(shù)據(jù)操作語言幔妨、DCL數(shù)據(jù)控制語言
DDL:用來維護(hù)存儲(chǔ)數(shù)據(jù)的結(jié)構(gòu)(數(shù)據(jù)庫鹦赎、表),代表指令:create误堡、drop古话、alter等
DML:用來對(duì)數(shù)據(jù)進(jìn)行操作(數(shù)據(jù)表中的內(nèi)容),代表指令:insert锁施、delete陪踩、update等。其中DML內(nèi)部又單獨(dú)進(jìn)行了一個(gè)分類:DQL悉抵,如select
DCL:主要是負(fù)責(zé)權(quán)限管理(用戶)肩狂,代表指令:grant、revoke等
5姥饰、交互方式:*客戶端連接認(rèn)證:連接服務(wù)器傻谁、認(rèn)證身份(mysql.exe -hPup)
*客戶端發(fā)送SQL指令
*服務(wù)器接收SQL指令,并處理SQL指令列粪,返回操作結(jié)果
*客戶端接收結(jié)果审磁,并顯示結(jié)果
*斷開連接
6、MySQL服務(wù)器內(nèi)部對(duì)象:系統(tǒng)(DBMS)岂座、數(shù)據(jù)庫(DB)态蒂、數(shù)據(jù)表(Table)、字段(Field)
SQL基本操作:庫操作费什、表操作(包含字段操作)钾恢、數(shù)據(jù)操作
7、庫操作:create database 數(shù)據(jù)庫名字 [庫選項(xiàng)];
字符集設(shè)定:charset/character set 具體字符集(數(shù)據(jù)存儲(chǔ)的編碼格式鸳址,常用的有:GBK和UTF8)
校對(duì)集設(shè)定:collate 具體校對(duì)集(數(shù)據(jù)比較的規(guī)則)
數(shù)據(jù)庫名字不能用關(guān)鍵字(已經(jīng)被系統(tǒng)使用的字符)或者保留字(將來系統(tǒng)可能會(huì)用到的字符)
每個(gè)數(shù)據(jù)庫下都有一個(gè)opt文件瘩蚪,保存了庫選項(xiàng)
查看所有數(shù)據(jù)庫:show databases;
查看指定部分的數(shù)據(jù)庫(模糊查詢):show databases like 'pattern';
查看數(shù)據(jù)庫的創(chuàng)建語句:show create database 數(shù)據(jù)庫名字;
數(shù)據(jù)庫名字不可以修改
數(shù)據(jù)庫的修改僅限庫選項(xiàng),即字符集和校對(duì)集(校對(duì)集依賴字符集)
alter database 數(shù)據(jù)庫名字 [庫選項(xiàng)];
charset/character set [=] 字符集
collate 校對(duì)集
刪除數(shù)據(jù)庫:drop database 數(shù)據(jù)庫名字;
8稿黍、表操作:
*新增數(shù)據(jù)表
create table [if not exists] 表名(
字段名字 數(shù)據(jù)類型,
……
字段名字 數(shù)據(jù)類型
) [表選項(xiàng)];
*控制表的表現(xiàn)
字符集:charset/character set 具體字符集;? ? -- 保證表中數(shù)據(jù)存儲(chǔ)的字符集
校對(duì)集:collate 具體校對(duì)集
存儲(chǔ)引擎:engine 具體的存儲(chǔ)引擎(innodb和myisam)
出錯(cuò)解決:1create table 數(shù)據(jù)庫名.表名();? 2進(jìn)入數(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 新表名;
修改表選項(xiàng)(字符集募舟、校對(duì)集、存儲(chǔ)引擎都可以修改):alter table 表名 表選項(xiàng) [=] 值;
刪除數(shù)據(jù)表:drop table 表名1,表名2……;
9闻察、字段操作:
新增字段:alter table 表名 add [column] 字段名 數(shù)據(jù)類型 [列屬性] [位置];
first:第一個(gè)位置
after:在哪個(gè)字段之后: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辕漂,否則就是更新全部
刪除是不可逆的,謹(jǐn)慎刪除:delete from 表名 [where條件];
11:吴超、小注意點(diǎn):
行/記錄:row/record
列/字段:column/field
p:pattern是匹配模式:%表示匹配多個(gè)字符钉嘹、_表示匹配單個(gè)字符