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 支持對IN BETWEEN EXISTS取反。IN取的合法值放在括號內(nèi),用逗號隔開 in (a,b) ) (4)用通配符進行過濾(適用于不確定值,用like):a. %通配符表示任何字符出現(xiàn)任意次數(shù) b. _匹配單個字符 (雖然很常用,由于搜索速度慢,不能過度使用通配符,如果使用也最好不要放在搜索模式的開始處) (5)使用正則表達式進行搜索(更強大匹配,用REGEXP):a. regexp 'string' b.進行OR匹配 regexp 'string1 | string2' c.匹配幾個字符之一,[123] ('[123] ton') ,[^123]匹配除這幾個字符之外的字符 d.匹配范圍:[0-9] e.匹配特殊字符,匹配特殊字符需要兩個/ ,如//. /// 等 f.定位符(^文本開始,$文本結(jié)束):(^[0-9//.],匹配以0-9或.開頭的字符串 。 (6)創(chuàng)建計算字段:a.拼接字段contact:contact(A,'(',B,')')等 b.使用別名A*B as C (7)使用數(shù)據(jù)處理函數(shù):文本處理函數(shù),日期和時間處理函數(shù)(日期時間數(shù)據(jù)格式。date(),time()),數(shù)值處理函數(shù)。 (8)匯總數(shù)據(jù):聚集函數(shù)——AVG(),COUNT(),MAX(),MIN(),SUM() COUNT(*) /COUNT(column) 靈活使用聚集函數(shù),返回需要的值。聚集函數(shù)與distinct一起使用,對所有的行執(zhí)行計算,當指定distinct時,只包含不同的值。還可以組合聚集函數(shù)來得到想要的的搜索結(jié)果。as (9)分組數(shù)據(jù)(對結(jié)果進行分組):創(chuàng)建分組——group by(可以包含多列,出聚集函數(shù)語句外,select中的每個列都必須在group by中給出,where之后,order by之前。表達式不能用別名)。group by僅在按組計算聚集時使用 過濾分組(排除分組)——having(where過濾指定的是行,不是分組,having過濾分組,但having支持where的所有操作,或可以理解為where在分組前進行過濾,having在分組后進行過濾) 如下例:列出具有2個(含2個)以上、價格為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)常用于多個關(guān)系表的查詢,一般是在where中使用in語句來實現(xiàn)子查詢,也可以使用= <>。也可以對計算字段(count等)使用子查詢(select count(*)等) (11)聯(lián)結(jié)表:分解數(shù)據(jù)位多個表能更有效地進行存儲,更方便的處理,但是由于數(shù)據(jù)在多個表中,使用單條select語句進行檢索時需要使用聯(lián)結(jié)。聯(lián)結(jié)條件放在where子句中 。一條select語句中可以聯(lián)結(jié)多個表,但是聯(lián)結(jié)的表越多,性能下降越厲害。子查詢可以用聯(lián)結(jié)查詢來代替,可能會提高效率。 (13)創(chuàng)建高級聯(lián)結(jié)(對表使用別名):自聯(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é) 對某組或某類使用聚集函數(shù)時,需要使用group by。 (14)組合查詢UNION :把多條查詢結(jié)果作為一條組合查詢返回,所以UNION每個查詢需要包含相同的列,表達式或者聚集函數(shù),order by放最后select之后。 (15)全文本(text格式)搜索:數(shù)據(jù)庫常用引擎,MyISAM(支持全文本搜索)、InnoDB(不支持全文本搜索)。 使用全文本搜索:在創(chuàng)建表時使用fulltext建立索引,在create之外用engine=mylsam表明為mylsam引擎;進行全文搜索時在where中使用match()和against()函數(shù)。match()中指定被搜索(索引)的列,against中指定要使用的搜索表達式。輸出結(jié)果的等級。 查詢擴展:against('表達式’ ,with query expansion) 布爾文本搜索: (16)插入操作 :插入完整行 插入檢索出的數(shù)據(jù)(不用values) 更行刪除數(shù)據(jù):先用select檢驗是否是需要處理的數(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(精度可變的浮點值) 日期和時間:date time datetime year 二進制數(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 |
|