為column字段添加: not null#不為空, auto_increment#自增, primary key#主鍵, engine#儲存引擎, charset#設置編碼
刪除表: drop table table_name;
表中插入數據:insert into table_name(field1,field2…)values(value1,value2…); 字符串使用雙引號, 插入多條記錄 insert into table_name(field1,field2,…)values(valueA1…),(valueB1…)…;
修改表中數據:update table_name set field1=new_value1, field2=new_value2…[where Clause]
刪除表中記錄: delete from table_name[where Clause]; 操作行記錄, 沒有where, 表中所有記錄全被刪除
模糊搜索:select field1, filed2…fieldN from table_name where field1 like condition1 [and [or]] field2=‘somevalue’; 通常將like與"% 下劃線"結合使用, “%” 表示任意字符與unix正則表達式中 “*” 差不多, “下劃線"表示字符只出現一次, 不使用”% _“進行模糊判斷時, like的效果與”="一致
連接兩個select語句結果組合到一個集合中(就所謂的求兩個結果在指定詞條下的交集),union具有刪除重復數據的功能: select expression1…expressionN from tables [where conditions] union [all|distinct] select expression1…expressionN from tables [where conditions]; expression1: 要檢索的列, tables:要檢索的數據表, all:返回所有結果集,包含重復數據, distinct: 默認已經刪除重復數據, distinct對結果沒有影響
排序:select field1…fieldN from table_name1…table_nameN order by field,[field2…][asc[desc]] where [like]; 使用任何字段作為排序條件,asc:升序, desc:降序 ; 數據默認為升序排列
根據一個或多個列結果集進行分組: select column_name,function(column_name) from table_name where column_name operator value group by column_name; 在分組的列上我們可以使用count, sum, avg等函數, 例:select name,cout(*) from employee group by name;將employee中name出現的次數做一個統計, 注:可以使用with rollup在實現分組的基礎上再進行統計(sum,avg,count…), group by后面的字段必須與select處的字段一致
數據表連接,在兩個或多個表中查詢數據: inner join(內連接):獲取兩個表中字段關系的記錄可以省略,求交集inner, left join(左連接):獲取左表記錄,即使右表沒有對應匹配的記錄, right join(右連接):與左連接相反
null處理: 表中記錄為null時, where只能采用is null或者 is not null 來進行判斷, 而不能使用=null或者!=null判斷
MySQL事務: 用于處理操作量大,復雜度高的數據, 維護數據庫完整性
默認情況下,事務自動提交(執行完SQL,自動執行commit), 顯示開啟事務使用begin ,start transaction, set autocommit=0禁止自動提交
統計重復數據: 首先確定那一列會出現重復記錄,在列選擇列表使用count(*)列出那些列或者使用group by列出那些列, 最后將having子句設置重復數大于1; 例:SELECT COUNT(*) as repetitions, last_name, first_name -> FROM person_tbl -> GROUP BY last_name, first_name -> HAVING repetitions > 1;
過濾重復數據: 使用distinct/group by, 例: select distinct columnName from tableName 或者select columnName from tableName group by columnName;