成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專(zhuān)欄INFORMATION COLUMN

《深入淺出mysql》學(xué)習(xí)筆記

SwordFly / 2773人閱讀

摘要:有一個(gè)專(zhuān)門(mén)的關(guān)鍵字過(guò)程名刪除過(guò)程過(guò)程參數(shù)過(guò)程參數(shù)還有自己的類(lèi)型限定參數(shù)僅需要將數(shù)據(jù)傳入存儲(chǔ)過(guò)程,并不需要返回計(jì)算后的該值。參數(shù)需要數(shù)據(jù)傳入存儲(chǔ)過(guò)程經(jīng)過(guò)調(diào)用計(jì)算后,再傳出返回值。

一:sql分類(lèi)及語(yǔ)法

1.sql分類(lèi):
(1)DDL:數(shù)據(jù)庫(kù)定義語(yǔ)言,用于定義表,列,索引等數(shù)據(jù)庫(kù)對(duì)象. create,drop,alter等
(2)DML:數(shù)據(jù)庫(kù)操縱語(yǔ)言,增刪改查數(shù)據(jù)庫(kù)的記錄insert,delete,update,select等
(3)DCL:數(shù)據(jù)庫(kù)控制語(yǔ)言,定義了數(shù)據(jù)庫(kù)的表,字段,用戶(hù)的訪問(wèn)權(quán)限和安全級(jí)別 grant,revoke等
2.DDL語(yǔ)句
(1)創(chuàng)建數(shù)據(jù)庫(kù):create database test1;
(2)刪除數(shù)據(jù)庫(kù):drop database test1;
(3)創(chuàng)建表:create table user(name varchar(10),age int(2));
(4)刪除表:drop table user;
(5)修改表:

        alter table user modify name varchar(20);
        alter table user add column sex varchar(10);
        alter table user drop column age;
        Alter table user change age age1 int(4);
        Alter table user rename user1;

3.DML語(yǔ)句
(1)插入記錄insert into user(name,age)values(‘zhangsan’,18);
(2)刪除記錄:delete from user where name=’張三’
(3)更新記錄:update user set age=1 where name=’ 張三’
(4)查詢(xún)記錄:select * from user;
(5)查詢(xún)不重復(fù)的記錄j:select distinct name from user;
(6)排序查詢(xún):select from user order by age desc;
(7)限制排序:select * from user order by age limit 1,30;
(8)聚合:select name,age from user group by age;
(9)聚合后條件:select name,age from user group by age having age > 18;
(having和where的區(qū)別:having是聚合后條件,where是聚合前條件)
(10)表連接:
①內(nèi)連接:
Select ename,deptname from emp,dept where emp.deptno=dept.deptno;
②外連接:

左連接:(查詢(xún) emp 中所有用戶(hù)名和所在部門(mén)名稱(chēng):)        
select ename,deptname from emp left join dept on emp.deptno=dept.deptno;

右連接: 
select ename,deptname from emp left join dept on emp.deptno=dept.deptno;

· 左連接:包含所有的左邊表中的記錄甚至是右邊表中沒(méi)有和它匹配的記錄
· 右連接:包含所有的右邊表中的記錄甚至是左邊表中沒(méi)有和它匹配的記錄

(11)子查詢(xún):需要的條件是另一個(gè)select的結(jié)果
(子查詢(xún)的關(guān)鍵字主要包括in, not in,=,!=,exists,not exists )
(如果查詢(xún)結(jié)果數(shù)唯一,可用=代替in)
select * from emp where deptno in(select deptno from dept);
select * from emp where deptno = (select deptno from dept limit 1);

(12)記錄聯(lián)合:

                select * from t1 union select * from t2
               select * from t1 union all select * from t2

(union和union all的區(qū)別:union是將union all查詢(xún)出來(lái)的結(jié)果進(jìn)行了一次distinct,去除重復(fù)后的結(jié)果)

4.DCL語(yǔ)句

(1)授權(quán):創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)用戶(hù) z1,具有對(duì) sakila 數(shù)據(jù)庫(kù)中所有表的 SELECT/INSERT 權(quán)限:
grant select,insert on sakila.* to "z1"@"localhost" identified by "123";

(2)收回權(quán)限:由于權(quán)限變更,需要將 z1 的權(quán)限變更,收回 INSERT,只能對(duì)數(shù)據(jù)進(jìn)行 SELECT 操作:
revoke insert on sakila.* from "z1"@"localhost";

二:mysql支持的數(shù)據(jù)類(lèi)型

數(shù)字類(lèi)型,字符串類(lèi)型,日期和時(shí)間類(lèi)型
1.數(shù)值類(lèi)型

2.字符串類(lèi)型

3.日期類(lèi)型

三.mysdql中的運(yùn)算符

(1)算數(shù)運(yùn)算符

(2)比較運(yùn)算符

(3)邏輯運(yùn)算符

(4)位運(yùn)算符

四.mysql中常用的函數(shù)

1.字符串函數(shù)

2.數(shù)值函數(shù)

3.日期時(shí)間函數(shù)

4.其它常用函數(shù)

五.表類(lèi)型(存儲(chǔ)引擎的選擇)

1.查詢(xún)當(dāng)前數(shù)據(jù)庫(kù)支持的存儲(chǔ)引擎

Show engines G

2.Mysql常見(jiàn)存儲(chǔ)引擎對(duì)比

(1)Myisam

Mysam是mysql的默認(rèn)存儲(chǔ)引擎
Myisam不支持事務(wù)和外鍵
優(yōu)勢(shì)是訪問(wèn)速度快

(2)Innodb

Innodb提供事務(wù)和外鍵
占用磁盤(pán)空間保留索引,寫(xiě)的效率比innodb差

(3)Memory

數(shù)據(jù)存放在內(nèi)存中
訪問(wèn)速度非??欤ㄊ褂胔ash索引)
但服務(wù)一旦關(guān)閉,表中的數(shù)據(jù)丟失

五.選擇合適的數(shù)據(jù)類(lèi)型

1.char與varchar?

Char屬于固定長(zhǎng)度的字符類(lèi)型,varchar屬于可變長(zhǎng)度的字符類(lèi)型
所以char處理速度比varchar快得多,但是浪費(fèi)存儲(chǔ)空間
(但隨著mysql版本的升級(jí)varchar的性能也在不斷的提升,所以目前varchar被更多的使用)

2.text與blob?
(1)兩者都能保存大文本數(shù)據(jù)
Blob能用來(lái)保存二進(jìn)制數(shù)據(jù),比如照片
Text只能保存文本數(shù)據(jù),如文章
(2)text和bolo 字段在進(jìn)行刪除操作時(shí)會(huì)出現(xiàn)“空洞”現(xiàn)象(表數(shù)據(jù)文件的大小并沒(méi)有因?yàn)閯h除數(shù)據(jù)而減?。梢允褂肙PTIMIZE TABLE t; 進(jìn)行優(yōu)化操作
(3)采用的優(yōu)化操作一般是把blob或text列放到一個(gè)多帶帶的表中

3.浮點(diǎn)數(shù)與定點(diǎn)數(shù)?
(1)定點(diǎn)數(shù):小數(shù)點(diǎn)固定在某個(gè)位置上的數(shù)據(jù)。 就好像 0.0000001 ,0.0001111;
(2)浮點(diǎn)數(shù):小數(shù)點(diǎn)位置可以浮動(dòng)的數(shù)據(jù)。就像數(shù)學(xué)中的 1222.210^3也可以表示為1.222210^6;
(3)在java中,我們知道System.out.print("7.22-7.0=" + (7.22f-7.0f));的結(jié)果并不是0.22而是0.219999,因此在程序中盡量避免浮點(diǎn)數(shù)的比較,運(yùn)算。而是通過(guò)定點(diǎn)數(shù)進(jìn)行比較和運(yùn)算
BigDecimal b1 = new BigDecimal(Double.toString(v1));
(4)數(shù)據(jù)庫(kù)中,float,double表示浮點(diǎn)數(shù)
用decimal或numberic表示定點(diǎn)數(shù)
所以對(duì)于貨幣等敏感數(shù)據(jù),用定點(diǎn)數(shù)存儲(chǔ)

4.日期類(lèi)型的選擇?
如果只記錄年份,用year
如果還要記錄時(shí)分秒,用datetime
如果考慮不同時(shí)區(qū),用timestamp

六.字符集

(1)第一個(gè)字符集ASCII
(2)為了處理不同的文字,又出現(xiàn)了幾百種字符集。如iso-8859,GBK,GB2312等
(3)為了統(tǒng)一編碼,國(guó)際標(biāo)準(zhǔn)化組織iso制定了國(guó)際字符集標(biāo)準(zhǔn)UCS,這種標(biāo)準(zhǔn)采用四字節(jié)編碼,將代碼空間劃分位組,面,行,格
(4)這種UCS編碼遭到了很多美國(guó)計(jì)算機(jī)協(xié)會(huì)的反對(duì)(sun,apple,ibm等)它們組成了unicode的協(xié)會(huì),并推出了unicode1.0(二字節(jié))
(5)后來(lái)為了編碼格式的統(tǒng)一,雙方展開(kāi)談判,將unicode編碼并入U(xiǎn)CS的0組0字面。把它稱(chēng)作基本多語(yǔ)言文字面(BMP),剩下的兩個(gè)字節(jié)做輔助字面和專(zhuān)用字面
(6)其實(shí)人們常用到的還是unicode里的字符(99%),但是要用unicode里沒(méi)有而ucs有的怎么辦呢?所以制定了UTF-16,后來(lái)UTF-16在使用過(guò)程中出現(xiàn)了一系列的問(wèn)題,所以出現(xiàn)了UTF-8(1至4字節(jié)編碼)

七.索引的設(shè)計(jì)和使用

0.什么是索引?
系統(tǒng)根據(jù)某種算法,將已有的數(shù)據(jù)(和未來(lái)新增的數(shù)據(jù))多帶帶建立一個(gè)文件,文件能夠?qū)崿F(xiàn)快速的匹配數(shù)據(jù),并能夠快速的找到對(duì)應(yīng)表中的記錄
1.每種存儲(chǔ)引擎(innodb,myidsam等)對(duì)每個(gè)表至少支持16個(gè)索引,myisam和innodb默認(rèn)創(chuàng)建的都是BTREE索引,memory存儲(chǔ)引擎默認(rèn)使用hash索引
2.創(chuàng)建索引:
create index 索引名 on 表名 列命
3.刪除索引
drop index 索引名 on 表名
4.mysql中提供的索引類(lèi)型?
(1)主鍵索引
(2)唯一索引
(3)全文索引:根據(jù)文章內(nèi)部的關(guān)鍵字進(jìn)行索引
(4)普通索引

八.視圖

1.什么是視圖?
視圖是一種虛擬存在的表。通俗的講,視圖就是一條SELECT語(yǔ)句執(zhí)行后返回的結(jié)果集。
2.什么時(shí)候用到視圖?
(1)經(jīng)常用到的查詢(xún)或復(fù)雜的聯(lián)合查詢(xún)
(2)涉及到權(quán)限管理(比如表中某部分字段含有機(jī)密信息,不讓低權(quán)限的用戶(hù)看到,可以提供給他們一個(gè)適合他們權(quán)限的視圖
3.語(yǔ)句
(1)創(chuàng)建:Create or replace view 視圖名 as + 查詢(xún)語(yǔ)句
(2)查看:show create view 視圖名
(3)刪除:drop view 視圖名
4.視圖的意義
(1)可以節(jié)省sql語(yǔ)句(將一條復(fù)雜的查詢(xún)結(jié)果通過(guò)視圖保存)
(2)視圖操作是怎對(duì)查詢(xún)出來(lái)的結(jié)果,不會(huì)對(duì)原數(shù)據(jù)產(chǎn)生影響,相對(duì)安全
(3)更好的進(jìn)行權(quán)限控制

九.函數(shù)

1.什么是函數(shù)?
將一段代碼封裝到一個(gè)結(jié)構(gòu)中,在需要執(zhí)行代碼的時(shí)候調(diào)用函數(shù)即可(實(shí)現(xiàn)了復(fù)用)(任何函數(shù)都有返回值,因此函數(shù)通過(guò)select調(diào)用)
1.函數(shù)的分類(lèi)?
(1)系統(tǒng)函數(shù):系統(tǒng)調(diào)用好的函數(shù),直接調(diào)用即可
Select subString(字符串,開(kāi)始,結(jié)束)
Select char_length(字符串)
(2)自定義函數(shù):
創(chuàng)建語(yǔ)法:create function 函數(shù)名(形參列表)
Begin
函數(shù)體
Return 類(lèi)型
End
調(diào)用: select 函數(shù)名();

十.存儲(chǔ)過(guò)程

1.存儲(chǔ)過(guò)程是什么?
存儲(chǔ)過(guò)程是沒(méi)有返回值的函數(shù)

2.創(chuàng)建過(guò)程?
Create procedure 過(guò)程名字(參數(shù)列表)
Begin
---過(guò)程
End

3.調(diào)用過(guò)程?
(過(guò)程沒(méi)有返回值,不能用select調(diào)用。有一個(gè)專(zhuān)門(mén)的關(guān)鍵字call)
Call 過(guò)程名();

4.刪除過(guò)程
Drop proceddure pro1;

5.過(guò)程參數(shù)
過(guò)程參數(shù)還有自己的類(lèi)型限定(In out inout)

IN參數(shù):
僅需要將數(shù)據(jù)傳入存儲(chǔ)過(guò)程,并不需要返回計(jì)算后的該值。

OUT參數(shù):
不接受外部傳入的數(shù)據(jù),僅返回計(jì)算之后的值。

INOUT參數(shù):
需要數(shù)據(jù)傳入存儲(chǔ)過(guò)程經(jīng)過(guò)調(diào)用計(jì)算后,再傳出返回值。
(具體參考:http://blog.itpub.net/2977396...)

十.觸發(fā)器

1.什么是觸發(fā)器?
Tigger,監(jiān)視某種情況并觸發(fā)某種操作

十一.范式

參考上篇博文
https://segmentfault.com/a/11...

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/17762.html

相關(guān)文章

  • 從小白程序員一路晉升為大廠高級(jí)技術(shù)專(zhuān)家我看過(guò)哪些書(shū)籍?(建議收藏)

    摘要:大家好,我是冰河有句話(huà)叫做投資啥都不如投資自己的回報(bào)率高。馬上就十一國(guó)慶假期了,給小伙伴們分享下,從小白程序員到大廠高級(jí)技術(shù)專(zhuān)家我看過(guò)哪些技術(shù)類(lèi)書(shū)籍。 大家好,我是...

    sf_wangchong 評(píng)論0 收藏0
  • 后臺(tái)開(kāi)發(fā)常問(wèn)面試題集錦(問(wèn)題搬運(yùn)工,附鏈接)

    摘要:基礎(chǔ)問(wèn)題的的性能及原理之區(qū)別詳解備忘筆記深入理解流水線(xiàn)抽象關(guān)鍵字修飾符知識(shí)點(diǎn)總結(jié)必看篇中的關(guān)鍵字解析回調(diào)機(jī)制解讀抽象類(lèi)與三大特征時(shí)間和時(shí)間戳的相互轉(zhuǎn)換為什么要使用內(nèi)部類(lèi)對(duì)象鎖和類(lèi)鎖的區(qū)別,,優(yōu)缺點(diǎn)及比較提高篇八詳解內(nèi)部類(lèi)單例模式和 Java基礎(chǔ)問(wèn)題 String的+的性能及原理 java之yield(),sleep(),wait()區(qū)別詳解-備忘筆記 深入理解Java Stream流水...

    spacewander 評(píng)論0 收藏0
  • 后臺(tái)開(kāi)發(fā)常問(wèn)面試題集錦(問(wèn)題搬運(yùn)工,附鏈接)

    摘要:基礎(chǔ)問(wèn)題的的性能及原理之區(qū)別詳解備忘筆記深入理解流水線(xiàn)抽象關(guān)鍵字修飾符知識(shí)點(diǎn)總結(jié)必看篇中的關(guān)鍵字解析回調(diào)機(jī)制解讀抽象類(lèi)與三大特征時(shí)間和時(shí)間戳的相互轉(zhuǎn)換為什么要使用內(nèi)部類(lèi)對(duì)象鎖和類(lèi)鎖的區(qū)別,,優(yōu)缺點(diǎn)及比較提高篇八詳解內(nèi)部類(lèi)單例模式和 Java基礎(chǔ)問(wèn)題 String的+的性能及原理 java之yield(),sleep(),wait()區(qū)別詳解-備忘筆記 深入理解Java Stream流水...

    xfee 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<