隨心筆記之mysql

2021-10-08 02:58:07 字數 4093 閱讀 5160

資料庫:字面意思,儲存資料的倉庫 database

把資料以指定格式存入硬碟,提供一系列的增刪改查

分類:網狀型資料庫

資料之間有著千絲萬縷的聯絡,操作起來比較麻煩,比如增刪改查

層次型資料庫

以樹型結構來展示資料之間的關係:有很大的侷限性,資料之間必須有上下級的關係,

當兩種資料有很多共同點時很難找出上下級關係時,就會很尷尬,很難分配資料

關係型資料庫

sql以二維表的方式來描述資料

列:欄位名 欄位的資料型別

行:記錄 具體資料

表結構:欄位名(本列資料的性質)+欄位類(本列資料的型別)

表記錄:每行資料

非關係型資料庫

nosql=「不僅僅是sql」

nosql 面向的是大資料處理

傳統的關係型資料庫在面對web2.0,特別是對特別龐大的資料進行處理時顯得有些力不從心,但是nosql在特定的情況下就可以發揮出強大的高效率和效能

常見的nosql:

(1)鍵值(key-value)儲存資料庫

代表:redis

類似於雜湊表,鍵值一一對應,通過key來進行增刪改查,每乙個key對應乙個value

優點:簡單,易部署,高併發

(2)列儲存(column-oriented)資料庫

代表:cassandra

把資料存在乙個列族中,查詢是乙個列族一起被查詢

優點:適用於分布式儲存海量資料

(3)面向文件(document_oriented)資料庫

代表:mongodb

類似於鍵值儲存資料庫,以本結構化的文件和特當的格式儲存資料,不如json

優點:允許之間巢狀鍵值,效率比鍵值儲存資料庫高

(4)圖形資料庫

代表:neo4j

以圖的方式儲存,實體被當做定點,實體之間的關係稱為邊

(5)時序資料庫

代表:infiuxdb

基於時間的一系列資料,在有時間的座標中間資料成線

優點:揭示資料的趨勢性,規律性,異常性;用做大資料分析

(6)搜尋引擎儲存

代表:elasticsearch

(7)其他

物件儲存:db40

xml儲存:derkeley db xml

詳情見常用資料庫排名及分類介紹

oracle:甲骨文 安全 需支付一定的費用

mysql:甲骨文 小巧方便 免費

db2:ibm 速度快 可靠性高

sybase: 賽貝斯 真正開放 高效能

sqlserver:微軟 標準

access:微軟

資料庫的作用:

資料定義: 實現對錶結構的增刪改查

資料操作: 實現對錶記錄的增刪改查

資料約束: 實現對列資料取值約束和表關係約束

許可權管理:對資料庫使用者許可權的管理

併發控制: 實現多個用於對同乙個資料的併發操作

資料安全: 資料恢復和資料備份

資料庫名詞:

db: database 資料庫

dba: database administrator 資料庫管理員

dbms: database manager system 資料庫管理系統

rdbms:relation database manager system 關係型資料庫管理系統

bit(n) 1-64 二進位制 例:bit(2)表示2個二進位制,取值範圍0~3

tinyint 1個位元組 例:tinyint(5) 當值為123時,即00123

int/integer 4個位元組

bigint 8個位元組

float(n,m) 4個位元組 n是有效位數 m是小數字數 例:float(5,3) 整數5-3位 小數3位

double(n,m) 8個位元組

decimal 專門用於表示錢

char(n) 固定長度 1-255 例:char(10) 資料在資料庫中固定佔10個字元的空間

varchar(n) 可變長度 1-65535

text 文字 64kb

longtext 大文字 4g

tinyblob 256b

blob 64kb

longblob 4g

bool/boolean 1b

date ***x-xx-xx

time xx:xx:xx

datetime ***x-xx-xx xx:xx:xx

timestamp

year(n) 年

mysql中的函式

abs(n)求絕對值

近似值:ceil(n):小數點後大於0.1進一

floor(n):和ceil相反,小數點後少0.1都不進

round(n):四捨五入

round(n,m):四捨五入保留m為小數

truncate(n,m):保留m為小數

開方:sqrt(n):求n的開方

pow(n.m):求n的m次方

隨機:rand():隨機[0,1)

隨機整數[a,b]----truncate(rand()*(b-a+1)+a)

求餘:mod(n,m) 求n餘m的值

進製轉換:bin(n) 獲取二進位制的n

hex(n) 獲取16進製制的n

操作字串函式:

length(str) 獲取位元組個數

char_length(str) 獲取字元個數

substring(str,startindex,length) 擷取從startindex楷書 擷取length個字元

substring(str,startindex) 擷取從startindex開始到末尾

和substr一樣

注意:字串下標從1開始

ascii(str) 獲取str第乙個字元在編碼表中對應的整數

concat(str1,str2,str3) 字串拼接

trim(str) 去除兩邊的空格

ltrim(str) 去除左邊的空格

rtrim(str) 去除右邊的空格

reverse(str) 字串反轉

upper(str) 把所有字母大寫

lower(str) 把所有的字母小寫

sql structured query language 結構化查詢語言

針對關係型資料定義的資料庫語言標準 對關係型資料庫進行增刪改查(語句庫對話的語言)

sql標準:適用於所有的關係型資料庫

sql方言:適用於當前資料庫

按功能分類:

ddl: 資料定義 data defined language :對錶結構的增刪改查

​ 關鍵字:create drop alter show

dml:資料操作 data manipulation language : 對錶記錄的增刪改

​ 關鍵字:insert delete update

dql:資料查詢 data query language :對錶記錄的查詢

​ 關鍵字:select

tcl:事務管理 transaction control language :對資料庫事物的操作

​ 關鍵字: commit rollback

dcl:許可權控制 data control language : 對使用者許可權的管理

​ 關鍵字: grant revoke

sql語句詳情見:點我傳送

事物管理詳情見:點我傳送

許可權管理詳情見:點我傳送

通過約束:來防止不合法的資料進入表中

通過定義約束:來限制表中的資料 實現表資料的完整性(資料的統一,和諧,準確)

資料完整性的分類:

域完整性:列取值的準確,和諧

實體完整性:行資料的完整,統一

參照完整性:表與表之間的參照關係

約束詳解你確定不進來看看?

前端隨心記 MySQL

資料庫 顧名思義,就是儲存資料的倉庫。mysql是一種關聯資料庫管理系統,關聯資料庫將資料儲存在不同的表中,而不是將所有資料放在乙個大倉庫內,這樣就增加了速度並提高了靈活性。mysql是乙個輕量級的資料庫,與php配合使用效果非常好,mysql支援大部分sql語句。常見的資料庫 oracle mys...

隨心所語之「讀書」

電腦科學與技術畢業,幹c 開發4年,但是,發現好多東西 甚至是相關的東西都不會 不懂,於是,就需要學習,需要讀書。也許,這就是所謂的學無止境。我買的書,有30 本,但是看完的,卻是寥寥無幾,為什麼呢?簡單乙個詞 沒有恆心。但是,為什麼會沒有恆心呢?這裡,我有點沒 恆心 的心得,希望糾正這些之後,可以...

隨心所「語」之 STL

自己是個程式設計師,用c 開發也有5年時間了。期間,stl用的挺多了,對其印象也挺好的。網上 周圍,許多人都不用stl,對此我比較疑惑。網上找了下,發現主要有下面幾個問題 1 膨脹。stl是模板實現,在每乙個宣告 使用的地方,都會擴充套件,導致 膨脹。個人看法 的確存在這樣乙個問題,暫時也沒看到好的...