mysql資料庫知識點總結

2021-07-13 11:34:20 字數 4649 閱讀 4423

mysql屬於關係型資料庫,關係型資料庫是指採用了關係模型來組織資料的資料庫,而關係模型就是指二維**模型,所以,關係型資料庫就是由二維表及其之間的聯絡所組成的乙個資料組織。

1.mysql資料庫中常用的概念有:

(1)高併發讀寫效能低

由於**的使用者併發性高,往往是每秒上萬次的讀寫請求,雖然mysql等關係型資料庫勉強可以應付上萬次sql查詢,但硬碟i/o往往無法承擔上萬次的sql寫資料請求。

(2)海量資料讀寫效率低

**每天產生的資料量非常大,但是對於mysql等關係型資料庫來說,對海量資料的查詢和更改,效率非常低。

(3)可擴充套件性和可用性低

當資料量劇增的時候,無法簡單的新增硬體等方法擴充套件效能,而是需要停機維護和資料遷移。

3.關係型資料庫和非關係型資料庫:

(補充:

問:什麼是非關係型資料庫?

答:非關係型資料庫也叫nosql,它的產生就是為了解決大規模資料集合多重資料種類帶來的挑戰,尤其是大資料應用難題。由於不可能用一種資料結構化儲存應付所有的新的需求,因此,非關係型資料庫嚴格上不是一種資料庫,應該是一種資料結構化儲存方法的集合。

) (1)由於關係型資料庫的一致性,使得關係型資料庫可以用於所有對一致性有要求的系統中,如銀行系統;但是還是由於關係型資料庫的一致性,在網頁應用中,一致性也不是很重要,相反,對於高併發性要求比較高,因此,非關係型資料庫的地位就凸顯出來了。

(2)關係型資料庫通常是基於行的形式儲存,而關係型資料庫包括列式儲存、鍵值對儲存、文件儲存、圖形儲存。

4.資料庫的引擎:

資料庫引擎是用於儲存、處理和保護資料的核心服務。利用資料庫引擎可控制訪問許可權並快速處理事務。

mysql資料庫常用的引擎有:innodb和berkleydb(bdb)。

5.sql語句:

(1)新增、刪除使用者,給許可權

·新增使用者

insert

into mysql.user(host,user,password) values("localhost","test",password("123456"));

·刪除使用者

delete

from

user

where

user='test'

and host='localhost';

flush privileges;

·給許可權

grant

allprivileges

on testdb.* to test@localhost identified by

'123456';//把testdb資料庫的所有許可權給test

flush privileges;//重新整理系統許可權表

(2)建立、刪除資料庫

·建立

create

database test;

·刪除

drop

database test;

(3)選擇資料庫,建立、刪除表

·選擇資料庫

use

test;

·建立表

create

table test_table(

id int

notnull auto_increment,

name varchar(100) not

null,

age int

notnull,

date

date,

singin int,

primary

key(id)

);

·刪除表

drop

table test_table;

(4)增、刪、改、查

·

insert

into test_table(name ,age)

values (小y,25);

·

delete

from test_table where name="小y";

·

update test_table set name="小z"

where id=2;

·

select id ,name ,age from test_table;
·模糊查詢(like)

select * from test_table where name like

"%y";

·排序查詢(asc公升序,desc降序)

select * from test_table order

by age asc;

select * from test_table order

by age desc;

·分組查詢(group by分組,with rollup在分組的基礎上再進行統計)

select name count(*) from test_table group

by name;

select name sum(singin) as singin_count from test_table group

by name with rollup;

(5)修改表名或字段

·修改表名

alter

table test_table rename to my_table;

·增加、刪除、修改字段型別,名稱

增加:alter

table my_table add i int;

刪除:alter

table my_table drop i;

修改:alter

table my_table modify name char(10);

alter

table my_table change i bigint;

(6)建立、刪除索引

my_table(name(length));

drop index [indexname] on my_table;
(7)處理重複資料

為了防止出現重複資料,可以設定指定字段為主鍵。

可以使用distinct來過濾重複資料。

select

distinct name from my_table ;

刪除重複資料。

create

table tmp select name ,age,singin from my_table;

drop

table my_table;

alter

table tmp rename to my_table;

(8)連線(inner join內連線,left join左連線,right join右連線)

·內連線

select a.runoob_id, a.runoob_author, b.runoob_count from runoob_tbl a inner

join tcount_tbl b on a.runoob_author = b.runoob_author;

·左連線(會讀取左邊資料表的全部資料,即便右邊表無對應資料。)

select a.runoob_id, a.runoob_author, b.runoob_count from runoob_tbl a left

join tcount_tbl b on a.runoob_author = b.runoob_author;

·右連線(會讀取右邊資料表的全部資料,即便左邊邊表無對應資料。)

select b.runoob_id, b.runoob_author, a.runoob_count from tcount_tbl a right

join runoob_tbl b on a.runoob_author = b.runoob_author;

MySql資料庫知識點總結01

資料庫從大的方面可以分為兩大部分,分別為底層的儲存系統也就是檔案系統,和上層的程式例項組成,程式例項有儲存管理 快取管理 日誌管理 許可權管理 容災管理 sql解析 索引 鎖等 程式實 儲存管理 快取管理 日誌管理 許可權管理 容災管理 sql解析 索引 鎖等 儲存 檔案系統 mysql體系結構 m...

MySQL資料庫索引知識點總結

1.mysql資料庫索引都有哪些資料結構 b 和hash 2.聊下hash hash查詢是把key通過hash生成下標然後獲取對應的值,它的主要特點是快速精確查詢,但是不支援範圍查詢。如果要是做成索引,速度是很慢的,要全部掃瞄。3.hash表在那些場景比較適合 等值查詢的場景,就只有kv key,v...

資料庫知識點總結

mysql支援的索引型別 b tree索引 隔離級別 預設使用可重複讀 mvcc 多版本併發控制機制。鎖機制可以控制併發操作,但是其系統開銷較大,而mvcc可以在大多數情況下代替行級鎖,使用mvcc,能降低其系統開銷。人們一般把基於鎖的併發控制機制稱成為悲觀機制,而把mvcc機制稱為樂觀機制。這是因...