


版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1、mysql 安裝及簡(jiǎn)單配置:安裝Mysql時(shí)要選擇UTF-8的字符集;命令行啟動(dòng) Mysql:net start mysql登錄 mysq: mysql - u root - p回車然后輸入密碼或者mysql - h localhost - u root - p回車然后輸入密碼 創(chuàng)立數(shù)據(jù)庫(kù) :create database studentCharacter set gbk查看已有表的詳細(xì)信息: describe 表名;或者 desc 表名 在運(yùn)行時(shí)假設(shè)遇到字符集不能顯示時(shí),可在命令行通過(guò)以下命令: set names gbk改顯示字符集 結(jié)構(gòu)化SQL語(yǔ)句:以下均是以學(xué)生表進(jìn)行操作2、sql
2、 語(yǔ)句及使用:、 select 語(yǔ)句及使用:查詢成績(jī)大于 80 的: select * from tb_score where score=80; 顯示指定列信息: select sid,socre from tb_score where score=80; 用 order by 進(jìn)行排序, order by 一定是應(yīng)用在最后 默認(rèn)是升序排序asc降序排序是desselect * from tb_score order by score desc按照分?jǐn)?shù)降序排序 select * from tb_score order by kid desc,score;ID 降序,分?jǐn)?shù)升序進(jìn)行 排序 有多個(gè)
3、排序的時(shí)候,按照從左到右依次進(jìn)行,先排第一個(gè)再排第二 y個(gè).單表查詢綜合應(yīng)用: select stuid,score from tb_score where score80 order by score desc;含義:從成績(jī)表中選擇成績(jī)大于 80 的人的 ID 以及成績(jī)按照得分的降 序進(jìn)行排序顯示選擇列的最大值:SELECT MAX名AS 顯示結(jié)果包括的列FROM shop;選擇一列中不同的數(shù)據(jù):Null 和“ 不一樣; null 是沒(méi)有數(shù)據(jù) 是有數(shù)據(jù),但是是空Select * from tb_stu where tel is not null and tel ;、 distinct 關(guān)鍵字
4、的使用Select distinct 列名 from 表名 ; select distinct sold_date from store_information;、 where 子句的使用where 子句的操作符:等于 或者!不等于 = 小于,小于等于! = 大于,大于等于! 不大于Betwee n and 在和之間is null或者is not null為空或者不為空select * from tb_student where tel is null;查出 tel 為 null 的記錄 tel 為的記錄查詢不出來(lái) 查詢 不為空的記錄的名單select * from tb_student wh
5、ere tel is not null and tel ; 存儲(chǔ)的時(shí)候會(huì)自動(dòng)TRIM掉變成Null 和“ 不一樣; null 是沒(méi)有數(shù)據(jù) 是有數(shù)據(jù),但是是空Null 表示允許插入值,但是沒(méi)有設(shè)置過(guò),與字段包含0,空字符串或者僅僅包含空格不同。、 and 和 or 關(guān)鍵字使用select store_name from store_information where (sales1000)or sales100;幾個(gè)條件可以用 and 和 or 連接起來(lái),不同的條件間加括號(hào)分開(kāi)。And 的優(yōu)先級(jí)高于 orSelect prod_name,prod_price from productsWhere
6、 venid=dell01or venid=brs01 and prod_price10;上面語(yǔ)句的意思是:查詢供給商 brs01 制造的價(jià)格在十元以上的產(chǎn) 品,或者是 dell01 供給商生產(chǎn)的產(chǎn)品。Select prod_name,prod_price from productsWhere ( venid=dell01or venid=brs01) and prod_price10;上面語(yǔ)句的意思是:查詢供給商brsOI或者是dellOl供給商生產(chǎn)價(jià)格在十元以上的產(chǎn)品。、 in 關(guān)鍵字的使用在 sql 中,有兩種情況會(huì)用到 inz 這個(gè)指令,這里先介紹其中之一: 與 where 有關(guān)的那一
7、個(gè)情況, 在這種情況下, 我們事先至少知道一個(gè) 我們需要的值。而將這些知道的值放到 in 這個(gè)子句中。SELECT欄位名 FROM 表格名 WHERE欄位名IN (值一,值二 , .);select * from store_information where store_name in(Los_Angeles);select * from store_information where sales2OO and store_name in(Los_Angeles);等價(jià)于: select * from store_information where sales2OO andStore_nam
8、e=Los_Angeles;in 操作符的優(yōu)點(diǎn):in 關(guān)鍵字支持和其他條件用 and 和 or 進(jìn)行聯(lián)合條件的查詢 查詢效率一般比 or 操作符號(hào)高In 后面可以包含 select 子句、 between 的使用Between 讓我們可以在一定的范圍內(nèi)抓取數(shù)據(jù)庫(kù)中的值 Select 列名 from 表名 where 列名 between A and B;Select * from tb_student where age between 16 and 19; 包含 and 后面的數(shù)值通配符%和_%表示任何字符或者字符串,出現(xiàn)任意次數(shù) _表示一個(gè)字符,一個(gè)漢 字要兩個(gè)下劃線;select * f
9、rom store_information where sales like %700%; 通配符的優(yōu)缺點(diǎn):通配符比其他條件會(huì)發(fā)花費(fèi)更多的時(shí)間, 能用其它的條件優(yōu)先選擇其 它的查詢條件。通配符盡量不要放在搜索條件的首部,因?yàn)檫@樣是最慢的not 、 not exists 操作符not 操作符只有一個(gè)功能:就是否認(rèn)它之后所跟的任何條件。 mysql 中使用 not exsistslike 關(guān)鍵字的使用select * from tb_student where tel like 136* ; 使用 like 時(shí)對(duì)后面 里面的內(nèi)容是區(qū)分大小寫的拼接字段 在 mysql 中使用 concat拼接字段在
10、不同的數(shù)據(jù)庫(kù)中有不同的表示:Oracle DB2 Sybas使用 |SQL Serve 使用 +Mysql 不支持以上兩種字符的使用,它使用 concat 函數(shù)Mysql中|相當(dāng)于or, &相當(dāng)于and;2.10.1 trim 的使用去掉字段兩邊的空格select trim(1111) as a from tb_student;運(yùn)行結(jié)果:Piysal select tpin(*1111fasafromtb_stu;+ a I+! till :i 1111 !:1111 ;Itrim以及rtrim去除字符串左邊空格或者右邊空格執(zhí)行算術(shù)運(yùn)算mysql select (sage+1) as xusu
11、i from tb_stu;可以對(duì)一些字段進(jìn)行算術(shù)操作函數(shù)操作每個(gè)DBMS都有不同的函數(shù),這里需要參照每個(gè)數(shù)據(jù)庫(kù)自己的使用說(shuō) 明如提取字符串:oracle,DB2使用SUNSTR()SQL Server Mysq使用 SUNSTRING()數(shù)據(jù)類型轉(zhuǎn)化DB2使用CASTOMysql SQL Serve 使用 con vert()獲取當(dāng)前日期DB2使用 current_date();Mysql 使用 curdate();oracle 使用 sysdate()sqlserver 使用 getdate();Mysql操作:mysql select curdate() as today from tb
12、_stu;操作結(jié)果:iI 202105-05 II 2021-05-05 I:2B11-05-05 ! 2611-05-05 i+十大多數(shù)SQL實(shí)現(xiàn)支持以下類型的函數(shù)t用于處理冬本串如刪除或填充值,轉(zhuǎn)換值為大寫或小寫的文 本函數(shù)用于在數(shù)值數(shù)據(jù)上進(jìn)行算術(shù)操作如返回絕對(duì)值,進(jìn)行代數(shù)運(yùn)算 的數(shù)值函數(shù)。用于處理日期和時(shí)間值并從這些值中提取特定成分例如,返回 |兩個(gè)日期之差,檢査口期有效性等的日期和時(shí)間函數(shù)。返回DBMS正使用的特殊信息如返回用戶登錄信息的系統(tǒng)函 數(shù)。lectle t 1f ootbaj1 , S;+4! lefttnotbar1 ,5;!+ lootli!4HI row in set
13、se Leet lpadfmn tb_stu;+ -+! lpad I44! 60QO0602CB1!:06006002603I! 60606062004!+4-勺 tow3 in006 secleft 從左邊取字符串, 5 表示取 5 位Ipad表示左補(bǔ)齊 例子中為左補(bǔ)齊,補(bǔ)齊后為11位,用0補(bǔ)齊lower(str)將str變成小寫upper(str)將str變成大寫length(str)返回str字符串的長(zhǎng)度right()返回字符串右邊的字符select right(hellworld,5); 結(jié)果: worldmysql SELECT SUBSTRING(Quadratically,5)
14、;- raticallymysql SELECT SUBSTRING(foobarbar FROM 4);- barbarmysql SELECT SUBSTRING(Quadratically,5,6);- raticamysql SELECT SUBSTRING(Sakila, -3);- ilamysql SELECT SUBSTRING(Sakila, -5, 3);- akimysql SELECT SUBSTRING(Sakila FROM -4 FOR 2);- ki日期處理函數(shù):mysql select year(curdate() as curyy;運(yùn)行結(jié)果:I curyy
15、| 2021 |不同系統(tǒng)的日期操作函數(shù):實(shí)現(xiàn)檢索2004年的訂單: SqlServer:SELECT ordernumFROM OrdersWHERE DATEPART(yyp order date) =r2004; MySql:SELECT ordernunFROM OrdersWHERE 作陽(yáng)(0如少0 二 2Q04; OracleSELECT order_numFROM OrdersWHERE to number(to_charorder datet ) = 20C4;在這個(gè)例子中 to_char()函數(shù)用來(lái)提取日期的成分, to number()用來(lái)將提取出的成分轉(zhuǎn)換為數(shù)值數(shù)值處理函數(shù)
16、:常用數(shù)值處理函數(shù)函 數(shù)說(shuō) 明ABS()返回一個(gè)數(shù)的絕對(duì)值COS()返回亠個(gè)角度的余弦EXP()返回一個(gè)數(shù)的指數(shù)值PIO返回圓周率SIN()返回一個(gè)角度的正弦SQRT()返冋一個(gè)數(shù)的平方根TAN ()返回一角度的正切聚集函數(shù)匯總數(shù)據(jù)聚集函數(shù)有:avg()返回某列的平均值cou nt()返回某列的行數(shù)max() mi n() sum()返回某列的最大最小值 總和值count函數(shù)使用的兩種形式:使用 count (*)對(duì)表中行的數(shù)目進(jìn)行計(jì) 數(shù),不管某列的值是不是 NULL還是非空值都會(huì)統(tǒng)計(jì)使用count(某一具體列)時(shí),如果其中某些值是NULL那么這些不計(jì)入count 的結(jié)果中也可以此而成 sel
17、ect count(1) from tb_stu;max min sum統(tǒng)計(jì)時(shí)也是忽略值為 NULL的行的select max(score) from tb_score;select max(distinct score) from tb_score;一個(gè)默認(rèn)是統(tǒng)計(jì) All 所有的,一個(gè)是統(tǒng)計(jì)不同的值的聚集函數(shù)分組函數(shù): group by 和 having 子句按照 group by 后面的字段進(jìn)行分組mysql select avg(score) from tb_score group by kid;| avg(score) |mysql select stuid,kid ,avg(scor
18、e) from tb_score group by kid;| stuid | kid | avg(score) | 2001|1 | 2001|2 | 2002|4 |group 后面不能使用別名進(jìn)行分組2.13.1 過(guò)濾分組: having 子句mysql select kid ,avg(score) as avg ,max(score) as max, min(score) as min from tb_score group by kid having avg=75;| kid | avg| max | min| 1 | | | 2 | | |不加 having 子句的時(shí)候mysql
19、select kid ,avg(score) as avg ,max(score) as max, min(score) as min from tb_score group by kid;| kid | avg| max | min| 1 | | | 2 | | | 4 | | |having 子句不一定與 group by 一起出現(xiàn),但一起出現(xiàn)的情況比擬多having后面的字段一定是在select中出現(xiàn)的字段where過(guò)濾的是原始行的數(shù)據(jù),having過(guò)濾的是分組之后的數(shù)據(jù)各個(gè)子句的順序SELECT子句及其順序子句說(shuō)明是否必須使用SELECT耍返回的列或表達(dá)式是FHOM從中檢索數(shù)據(jù)的表僅在
20、從表選擇數(shù)據(jù)時(shí)WHERE亍行級(jí)過(guò)濾否,GROUP BY分組說(shuō)明僅在按組計(jì)弊聚集舊HAVING組級(jí)過(guò)濾否ORDER BY輸出排癢順序否內(nèi)連接 inner join on應(yīng)該選擇一個(gè)基準(zhǔn)表。on關(guān)鍵字表示條件,兩個(gè)join中間不用逗號(hào)不采用內(nèi)連接的寫法:select ,from tb_stu st,tb_subject sub,tb_score sc where = and = and score 70;采用內(nèi)連接寫法:select ,from tb_score c inner join tb_stu s on 二 inner join tb_subject k on = where =70;兩種
21、寫法的運(yùn)行結(jié)果是一致的,知識(shí)查找效率有區(qū)別在 SQL 標(biāo)準(zhǔn)中推薦使用 inner join 的用法,因?yàn)椴檎倚矢咭恍?運(yùn)行結(jié)果:| stuname | kname | score | 張三| 數(shù)學(xué)| | 張三| 語(yǔ)文| | 張三| 英語(yǔ)| | 張三| 物理| NULL | 張三| 化學(xué)| | 李四| 數(shù)學(xué)| | 李四| 語(yǔ)文| NULL | 李四| 英語(yǔ)| | 李四| 物理| | 李四| 化學(xué)| | 李四| 生物| | 王五| 數(shù)學(xué)| | 王五| 語(yǔ)文| | 王五| 英語(yǔ)| NULL |王五| 物理|王五| 化學(xué)| |趙六| NULL| NULL |張飛| NULL |NULL |曹操|(zhì)
22、NULL |NULL |趙云| NULL| NULL |司馬懿| NULL| NULL |關(guān)羽| NULL| NULL |孫策| NULL| NULL |周瑜| NULL| NULL |楊過(guò)| NULL| NULL |小龍女| NULL| NULL |小龍女| NULL| NULL |小龍女| NULL| NULL |外連接left outer join on 左連接 right oute join-on 右連接full outer join on 全連接檢索兩個(gè)表中的所有的行,并關(guān)聯(lián)那些可以關(guān)聯(lián)的行 mysql 不支持left outer join 表示指定包含左邊的表 right oute
23、r join 表示指定包含右邊的表left outer join on 實(shí)例: 應(yīng)該選定一個(gè)基準(zhǔn)表。select ,from tb_stu sleft outer join tb_score c on =left outer join tb_subject k on =;注:以 tb_stu 為中心,把表中所有的值列出,后面匹配的列出值,不匹配的輸出為NULL運(yùn)行結(jié)果:| 李四| 英語(yǔ)| | 李四| 物理| | 李四| 化學(xué)| | 李四| 生物| | 王五| 數(shù)學(xué)| | 王五| 語(yǔ)文| | 王五| 英語(yǔ)| | 王五| 物理| | 王五| 化學(xué)| | 趙六| NULL| NULL | 張飛| N
24、ULL |NULL | 曹操|(zhì) NULL |NULL | 趙云| NULL| NULL | 關(guān)羽| NULL |NULL | 孫策| NULL |NULL | 周瑜| NULL |NULL |相同的語(yǔ)句改成內(nèi)連接:select ,from tb_stu sinner join tb_score c on =inner join tb_subject k on =;執(zhí)行結(jié)果:| stuname | kname | score | 張三| 數(shù)學(xué)| | 張三| 語(yǔ)文| | 張三| 英語(yǔ)| | 張三| 物理| NULL | 張三| 化學(xué)| | 李四| 數(shù)學(xué)| | 李四| 語(yǔ)文| NULL | 李四|
25、英語(yǔ)| | 李四| 物理| | 李四| 化學(xué)| | 李四| 生物| |王五| 數(shù)學(xué)| |王五| 語(yǔ)文| |王五| 英語(yǔ)| NULL |王五| 物理| |王五| 化學(xué)| |內(nèi)連接和外連接的差異自己覺(jué)得 :內(nèi)連接只顯示所選內(nèi)容不全為 空的值,即至少會(huì)滿足一些條件, 外連接是只要是基準(zhǔn)表中有這個(gè)值 與他相關(guān)的屬性就會(huì)顯示出來(lái)。 外連接的查詢結(jié)果一般會(huì)比內(nèi)連接更 多。帶聚集函數(shù)的連接:就是多了個(gè)聚集函數(shù),沒(méi)什么他別的select , count as countfrom tb_score scinner join tb_stu st on =group by ;運(yùn)行結(jié)果:| stuname | cou
26、nt | 張三|5 | 李四|6 | 王五|5 |自連接在一個(gè)表中查詢自己的字段,自連接的查詢速度較快 mysql select * from tb_stu- st1, tb_stu st2- where =- and =張三 ;| stuid | stuname | sage | sdept | stuid | stuname | sage | sdept | 2001 | 張三 | 18 | NULL | 2001 | 張三 | 18 | NULL |自然連接先列出所有表,再寫出表之間的關(guān)系select ,from tb_stu st,tb_score sc, tb_subject sub
27、where = and =;運(yùn)行結(jié)果:| stuname | score | kname |張三| | 數(shù)學(xué)張三| | 語(yǔ)文張三| | 英語(yǔ)張三| NULL | 物理| 張三| | 化學(xué)o o o使用連接的考前須知一般使用內(nèi)連接,但需要查出所有值的時(shí)候也使用外連接 應(yīng)該總是提供連接條件,否那么會(huì)出現(xiàn)笛卡爾乘積組合查詢用 union 連接不同的 select 查詢語(yǔ)句兩種情況會(huì)用到組合查詢:1、在單個(gè)查詢中從不同的表中返回相似的數(shù)據(jù)結(jié)構(gòu)2、查詢多個(gè)表,按單個(gè)查詢結(jié)果返回使用規(guī)那么:1、 union 中必須由兩條級(jí)以上的 selec 語(yǔ)句組成2、 每個(gè)查詢語(yǔ)句必須包含相同的列,表達(dá)是或者聚集函數(shù)3
28、、列數(shù)據(jù)必須兼容,類型不必完全相同,但 DBMS 必須可以隱式 的轉(zhuǎn)換數(shù)據(jù)類型4、union 從查詢結(jié)果中自動(dòng)去除重復(fù)的行,如果要返回所有的行, 可以使用 union all5、在使用組合查詢時(shí)只能有一條 order by 語(yǔ)句,只能放在最后。 order by 是用來(lái)排序組合查詢結(jié)果集,而不是針對(duì)某一 select 查詢結(jié)果集插入、更新、刪除數(shù)據(jù)2.21.1 插入數(shù)據(jù)使用 insert 關(guān)鍵字。插入數(shù)據(jù)有幾種方式:插入完整的行,插入行的 一局部,插入查詢結(jié)果 插入時(shí),每列必須提供一個(gè)值,假設(shè)不插入且允許為空,那么數(shù)據(jù)庫(kù)會(huì)提 供一個(gè)NULL值插入完整的行 :mysql in sert into
29、 tb_Stustuid,st un ame,sage,sdept values2027,郭靖,40,武當(dāng);mysql in sert into tb_Stu values2O27,郭靖,40,武當(dāng); 插入行的一局部mysql in sert into tb_Stustuid,stu name,sage values2027郭靖,40; 插入查詢結(jié)果查詢結(jié)果中的字段類型在插入的表中應(yīng)該是相似的。 并不強(qiáng)制要求兩 個(gè)的列名完全一致,但需要對(duì)應(yīng),相應(yīng)的數(shù)據(jù)類型可以做轉(zhuǎn)化使用insert select語(yǔ)句,一次可以插入多個(gè)數(shù)據(jù)insert into tb_student select * from
30、tb_stu;2.21.2 從一個(gè)表完全復(fù)制到另外一個(gè)表中select into mysql 使用 create table insert select 禾口 select into 的區(qū)別:in sert selec是增補(bǔ)數(shù)據(jù)到一個(gè)已經(jīng)存在的表select into 是將從一個(gè)已經(jīng)存在的表中檢索的數(shù)據(jù)插入到一個(gè)新表中,有的DBMS可以覆蓋已經(jīng)存在的表,有的不行,著以來(lái)于具體的DBMS的規(guī)定。mysql 創(chuàng)立一個(gè)新表:create table tb_student select * from tb_stu;考前須知:任何select子句都可以使用包括 where和group by子句 可以使用
31、多表連接選擇數(shù)據(jù)2.21.3 更新數(shù)據(jù)更新要有 where 子句,要不然就全部更新了更新一列:mysql select * from tb_stu where stuid=2001;| stuid | stuname | sage | sdept | 2001| 張三|25 | network | mysql update tb_stu set sdept二計(jì)算機(jī)where stuid二2001: mysql select * from tb_stu where stuid=2001;| stuid | stuname | sage | sdept | 2001 | 張三 | 25 | 計(jì)算機(jī)
32、 | 更新多列數(shù)據(jù):update tb_stu set sdept= 計(jì)算機(jī) ,sage=25 where stuid=2001; 考前須知:一般來(lái)說(shuō),當(dāng)表中存在數(shù)據(jù)時(shí),不要對(duì)它進(jìn)行更新 允許重命名已經(jīng)存在的列2.21.4 刪除數(shù)據(jù)刪除一列或者多列數(shù)據(jù)delete from tb_stu where stuid=2001;不加 where 子句默認(rèn)刪除全部數(shù)據(jù), 在每個(gè)表中設(shè)置主鍵, 以保證刪 除更改數(shù)據(jù)的唯一性2.21.5Create 創(chuàng)立一個(gè)表DROP TABLE IF EXISTS y2k;CREATE TABLE y2k (date date primary key not null
33、default 1, 設(shè)置默認(rèn)值 date_time datetime not null,time_stamp timestamp not null);INSERT INTO y2k VALUES (1998-12-31,1998-12-31 23:59:59,9);2.22.6 更新表結(jié)構(gòu) alter alter table tb_stu add address varchar(200);alter table tb_stu drop column address; 復(fù)雜的表結(jié)構(gòu)一般手動(dòng)刪除列,步驟為:1、 定義一個(gè)和原表一樣的表,使用insert。select語(yǔ)句將數(shù)據(jù)導(dǎo)入 到新標(biāo)2、檢查
34、新表的數(shù)據(jù),重命名或者刪除3、用舊表的名稱重名新表2.22.7 刪除表drop table tb_stu1; 有外鍵關(guān)聯(lián)的表,應(yīng)先將與之關(guān)聯(lián)的外鍵刪除2.22.8 重命名表rename table tb_stu1 tb_stu;視圖視圖是一個(gè)虛擬的表, 本身不存儲(chǔ)數(shù)據(jù), 可以防止每次查詢相同的東 西而重復(fù)輸入SQL語(yǔ)句。主要是對(duì)Table中的數(shù)據(jù)進(jìn)行簡(jiǎn)單的加工,以藏復(fù)雜的SQLcreate view v_stu_score as后面加上相應(yīng)的語(yǔ)句即可create view v_stu_score as select , from tb_score sc inner join tb_stu st
35、 on = inner join tb_subject sub on =;它的結(jié)果和只寫 select , from tb_score sc inner join tb_stu st on = inner join tb_subject sub on =;一樣 查詢視圖和查詢表的操作一樣 select * from v_stu_score;select * from v_stu_score where score80; 各種查詢語(yǔ)句、聚集函數(shù)、分組語(yǔ)句、計(jì)算字段都行存儲(chǔ)過(guò)程CREATE PROCEDURE MailingListCountASDECLARE cnt INTEGERSELECT
36、cnt = COUNT(*)FROM CustomersWHERE NOT cust email IS NULL;RETURN 電ent;此存儲(chǔ)過(guò)程沒(méi)冇參數(shù),調(diào)用程庁獲取存儲(chǔ)過(guò)程的返冋值 用DECLARE聲明了 個(gè)Gnt局部變駐在select講句中便用這個(gè)變;上 用county數(shù)對(duì)訊賦值Ka用return |pt語(yǔ)句返冋計(jì)數(shù)給調(diào)用者*以下是抄來(lái)的存儲(chǔ)過(guò)程語(yǔ)法存儲(chǔ)過(guò)程如同一門程序設(shè)計(jì)語(yǔ)言,同樣包含了數(shù)據(jù)類型、流程控制、輸入和輸出和它自己的函數(shù)庫(kù)。根本語(yǔ)法一. 創(chuàng)立存儲(chǔ)過(guò)程create procedure sp_n ame()begin end二. 調(diào)用存儲(chǔ)過(guò)程1. 根本語(yǔ)法:call sp_n
37、ame()注意:存儲(chǔ)過(guò)程名稱后面必須加括號(hào),哪怕該存儲(chǔ)過(guò)程沒(méi)有參數(shù)傳遞三. 刪除存儲(chǔ)過(guò)程1. 根本語(yǔ)法:drop procedure sp_name 意事項(xiàng)(1)不能在一個(gè)存儲(chǔ)過(guò)程中刪除另一個(gè)存儲(chǔ)過(guò)程,只能調(diào)用另一個(gè)存儲(chǔ)過(guò)程四. 其他常用命令procedure status顯示數(shù)據(jù)庫(kù)中所有存儲(chǔ)的存儲(chǔ)過(guò)程根本信息, 包括所屬數(shù)據(jù)庫(kù), 存儲(chǔ)過(guò)程名稱, 創(chuàng)立時(shí)間等 create procedure sp_name顯示某一個(gè) mysql 存儲(chǔ)過(guò)程的詳細(xì)信息 數(shù)據(jù)類型及運(yùn)算符 一、根本數(shù)據(jù)類型: 略二、變量:自定義變量: DECLARE a INT ; SET a=100; 可用以下語(yǔ)句代替: DECL
38、ARE a INT DEFAULT 100;變量分為用戶變量和系統(tǒng)變量,系統(tǒng)變量又分為會(huì)話和全局級(jí)變量用戶變量:用戶變量名一般以 開(kāi)頭,濫用用戶變量會(huì)導(dǎo)致程序難以理解及管理1、 在 mysql 客戶端使用用戶變量mysql SELECT Hello World into x;mysql SELECT x;mysql SET y=Goodbye Cruel World;mysql select y;mysql SET z=1+2+3;mysql select z;2、在存儲(chǔ)過(guò)程中使用用戶變量mysql CREATE PROCEDURE GreetWorld( ) SELECT CONCAT(gr
39、eeting, World);mysql SET greeting=Hello;mysql CALL GreetWorld( );3、在存儲(chǔ)過(guò)程間傳遞全局范圍的用戶變量mysql CREATE PROCEDURE p1( ) SET last_procedure=p1;mysql CREATE PROCEDURE p2( ) SELECT CONCAT(Last procedure was ,last_procedure); mysql CALL p1( );mysql CALL p2( );三、運(yùn)算符:1.算術(shù)運(yùn)算符+加SET var1=2+2;4-減SET var2=3-2;1*乘SET
40、var3=3*2;6/除SET var4=10/3;DIV整除SET var5=10 DIV 3; 3%取模SET var6=10%3 ;12. 比擬運(yùn)算符大于 12 False小于 21 False=小于等于 2=大于等于 3=2 TrueBETWEEN 在兩值之間 5 BETWEEN 1 AND 10 TrueNOT BETWEEN 不在兩值之間 5 NOT BETWEEN 1 AND 10 False IN在集合中 5 IN (1,2,3,4) FalseNOT IN 不在集合中 5 NOT IN (1,2,3,4) True= 等于 2=3 False, != 不等于 23 False嚴(yán)格比擬兩個(gè) NULL值是否相等 NULLNULL TrueLIKE 簡(jiǎn)單模式匹配 Guy Harrison LIKE Guy% True REGEXP正那么式匹配 Guy Harrison REGEXP Ggreg FalseIS NULL 為空 0 IS NULL FalseIS NOT NULL 不為空 0 IS NOT NULL True3. 邏輯運(yùn)算符4. 位運(yùn)算符| 或& 與 右移位非 單目運(yùn)算,按位取反 注釋:mysql 存儲(chǔ)過(guò)程可使用兩種風(fēng)格的注釋雙橫杠: -該風(fēng)格一般用于單行注釋c 風(fēng)格: /* 注釋內(nèi)容 */ 一般用于多行注釋 流程控制 一、順序結(jié)構(gòu) 二、分支結(jié)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 武漢紡織大學(xué)外經(jīng)貿(mào)學(xué)院《西方舞蹈史與名作賞析》2023-2024學(xué)年第二學(xué)期期末試卷
- 西安科技大學(xué)高新學(xué)院《Vue應(yīng)用開(kāi)發(fā)》2023-2024學(xué)年第二學(xué)期期末試卷
- 煙臺(tái)黃金職業(yè)學(xué)院《交通運(yùn)輸安全》2023-2024學(xué)年第二學(xué)期期末試卷
- 浙大寧波理工學(xué)院《匯編語(yǔ)言A》2023-2024學(xué)年第二學(xué)期期末試卷
- 鄂州職業(yè)大學(xué)《計(jì)算機(jī)輔助設(shè)計(jì)二維》2023-2024學(xué)年第二學(xué)期期末試卷
- 滬科版 信息技術(shù) 必修 3.2.2 信息作品的制作 教學(xué)設(shè)計(jì)
- 麗江師范高等專科學(xué)?!稌?huì)計(jì)實(shí)訓(xùn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 浙教版2023小學(xué)信息技術(shù)六年級(jí)上冊(cè)《算法的評(píng)價(jià)方法》教學(xué)設(shè)計(jì)及反思
- Unit 3 Family ties Starting out教學(xué)設(shè)計(jì) -2024-2025學(xué)年外研版英語(yǔ)七年級(jí)上冊(cè)
- 中學(xué)聯(lián)盟浙江省蒼南縣龍港鎮(zhèn)第四中學(xué)人教版七年級(jí)歷史與社會(huì)上冊(cè)教學(xué)設(shè)計(jì):3.1.1 稻作文化的印記(第1課時(shí))
- 食品檢驗(yàn)員聘用合同樣本
- 六年級(jí)信息技術(shù)下冊(cè)教學(xué)計(jì)劃
- 2025年九年級(jí)數(shù)學(xué)中考復(fù)習(xí)計(jì)劃
- 2023年長(zhǎng)沙自貿(mào)投資發(fā)展集團(tuán)有限公司招聘筆試真題
- 《物料擺放規(guī)范》課件
- 2024年資助政策主題班會(huì)課件
- 《煙花效果及制作》課件
- 2024江蘇太倉(cāng)市城市建設(shè)投資集團(tuán)限公司招聘易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2024年全新統(tǒng)計(jì)法培訓(xùn)課件:普法教育新方向
- 保育教育評(píng)估指南
- 現(xiàn)代康復(fù)治療腕管綜合癥
評(píng)論
0/150
提交評(píng)論