mysql客戶端工具:mysql mysql administration mysql query browers
describe table /show grants
(1)檢索數(shù)據(jù):select A,B from table (distinct A ,limit a,b。table從0行開始,(C1-C2) as C)
(2)排序檢索數(shù)據(jù):select A,B from table order by column C DESC/ASC,D DESC/ASC(先C,C一樣才按D排序。DESC降序,ASC升序)
(3)過濾數(shù)據(jù)(適用于已知值):where 子句。 = 、<>、!=、<、<=、> 、>=、between 、is null 。where子句與AND OR IN NOT組合(mysql中NOT 支持對(duì)IN BETWEEN EXISTS取反。IN取的合法值放在括號(hào)內(nèi),用逗號(hào)隔開 in (a,b) )
(4)用通配符進(jìn)行過濾(適用于不確定值,用like):a. %通配符表示任何字符出現(xiàn)任意次數(shù) b. _匹配單個(gè)字符 (雖然很常用,由于搜索速度慢,不能過度使用通配符,如果使用也最好不要放在搜索模式的開始處)
(5)使用正則表達(dá)式進(jìn)行搜索(更強(qiáng)大匹配,用REGEXP):a. regexp 'string' b.進(jìn)行OR匹配 regexp 'string1 | string2' c.匹配幾個(gè)字符之一,[123] ('[123] ton') ,[^123]匹配除這幾個(gè)字符之外的字符 d.匹配范圍:[0-9]
e.匹配特殊字符,匹配特殊字符需要兩個(gè)/ ,如//. /// 等 f.定位符(^文本開始,$文本結(jié)束):(^[0-9//.],匹配以0-9或.開頭的字符串 。
(6)創(chuàng)建計(jì)算字段:a.拼接字段contact:contact(A,'(',B,')')等 b.使用別名A*B as C
(7)使用數(shù)據(jù)處理函數(shù):文本處理函數(shù),日期和時(shí)間處理函數(shù)(日期時(shí)間數(shù)據(jù)格式。date(),time()),數(shù)值處理函數(shù)。
(8)匯總數(shù)據(jù):聚集函數(shù)——AVG(),COUNT(),MAX(),MIN(),SUM() COUNT(*) /COUNT(column) 靈活使用聚集函數(shù),返回需要的值。聚集函數(shù)與distinct一起使用,對(duì)所有的行執(zhí)行計(jì)算,當(dāng)指定distinct時(shí),只包含不同的值。還可以組合聚集函數(shù)來得到想要的的搜索結(jié)果。as
(9)分組數(shù)據(jù)(對(duì)結(jié)果進(jìn)行分組):創(chuàng)建分組——group by(可以包含多列,出聚集函數(shù)語句外,select中的每個(gè)列都必須在group by中給出,where之后,order by之前。表達(dá)式不能用別名)。group by僅在按組計(jì)算聚集時(shí)使用
過濾分組(排除分組)——having(where過濾指定的是行,不是分組,having過濾分組,但having支持where的所有操作,或可以理解為where在分組前進(jìn)行過濾,having在分組后進(jìn)行過濾)
如下例:列出具有2個(gè)(含2個(gè))以上、價(jià)格為10以上的產(chǎn)品的供應(yīng)商。 分清楚行的概念和分組的概念
select vent_id,count(*) as num_prods
from products
where prod_price >=10
group by vent_id
having count(*) >=2
select 字句順序:select from where group by having order by limit
(10)使用子查詢:子查詢經(jīng)常用于多個(gè)關(guān)系表的查詢,一般是在where中使用in語句來實(shí)現(xiàn)子查詢,也可以使用= <>。也可以對(duì)計(jì)算字段(count等)使用子查詢(select count(*)等)
(11)聯(lián)結(jié)表:分解數(shù)據(jù)位多個(gè)表能更有效地進(jìn)行存儲(chǔ),更方便的處理,但是由于數(shù)據(jù)在多個(gè)表中,使用單條select語句進(jìn)行檢索時(shí)需要使用聯(lián)結(jié)。聯(lián)結(jié)條件放在where子句中
。一條select語句中可以聯(lián)結(jié)多個(gè)表,但是聯(lián)結(jié)的表越多,性能下降越厲害。子查詢可以用聯(lián)結(jié)查詢來代替,可能會(huì)提高效率。
(13)創(chuàng)建高級(jí)聯(lián)結(jié)(對(duì)表使用別名):自聯(lián)結(jié):自聯(lián)結(jié)一般要比子查詢快。自然聯(lián)結(jié)、外部聯(lián)結(jié)(需要沒有關(guān)聯(lián)行的那些行,內(nèi)部聯(lián)結(jié)就是普通的關(guān)聯(lián)聯(lián)結(jié)。沒關(guān)聯(lián)指的是查詢數(shù)據(jù)為NULL,就得使用外部聯(lián)結(jié))也可以使用帶聚集函數(shù)的聯(lián)結(jié) 對(duì)某組或某類使用聚集函數(shù)時(shí),需要使用group by。
(14)組合查詢UNION :把多條查詢結(jié)果作為一條組合查詢返回,所以UNION每個(gè)查詢需要包含相同的列,表達(dá)式或者聚集函數(shù),order by放最后select之后。
(15)全文本(text格式)搜索:數(shù)據(jù)庫常用引擎,MyISAM(支持全文本搜索)、InnoDB(不支持全文本搜索)。
使用全文本搜索:在創(chuàng)建表時(shí)使用fulltext建立索引,在create之外用engine=mylsam表明為mylsam引擎;進(jìn)行全文搜索時(shí)在where中使用match()和against()函數(shù)。match()中指定被搜索(索引)的列,against中指定要使用的搜索表達(dá)式。輸出結(jié)果的等級(jí)。
查詢擴(kuò)展:against('表達(dá)式’ ,with query expansion)
布爾文本搜索:
(16)插入操作 :插入完整行 插入檢索出的數(shù)據(jù)(不用values) 更行刪除數(shù)據(jù):先用select檢驗(yàn)是否是需要處理的數(shù)據(jù)
(17)創(chuàng)建、更行、刪除表。創(chuàng)建:auto_increment (需要設(shè)定為主鍵,primary key) default 1 null not null
(18)數(shù)據(jù)類型:串:char(n)定長 varchar(n) 可變長 text 小宇64K 數(shù)值類型:int bllolen float double decimal(精度可變的浮點(diǎn)值) 日期和時(shí)間:date time datetime year
二進(jìn)制數(shù)據(jù)類型:blob
其他:w3school
uninon all
mysql備份:
在shell下:
mysqldump -h mysql_master -u wms -p wms weiyou_group > weiyou_group.sql
還原:一般用source命令
mysql中:
source ./weiyou_group.sql