整理了一些mysql的命令及語句,再此和大家分享下:
創建數據庫:create database 數據庫名;
查看數據庫: show databases;
選擇數據庫: use 數據庫名;
刪除數據庫: drop database 數據庫名;
查看數據庫中表: show tables;
查看某一個表的結構: describe 表名;
查看某一個表建表語句: show create table 表名;
創建一個表: create table 表名 (字段名 , 類型 , 屬性..);
刪除表:drop table 表名;
刪除表內數據: delete from table 表名;(自增字段不重置)
truncate table 表名(自增字段重置)
修改表結構: alter table 表名 change 修改前 修改後 屬性 類型;
添加主鍵:alter table 表名 add primary key(字段名);
刪除主鍵: alter table 表名 drop primary key(字段名);
創建索引:create 索引類型 index 索引名 on 表名(字段名);
刪除索引:drop index 索引名;
注:索引是不可修改的,想修改必須刪除重新建
-----------簡單sql語句-----------
查看錶的數據: select * from 表名;
更新表數據 :update 表名 set 字段名=更改值 where id=**;
增加表數據: insert into 表名 value(值1,值2);
刪除表某行數據: delete from 表名 where id=**;
------------高級運算詞---------
UNION 運算符通過組合其他兩個結果表(例如 TABLE1 和 TABLE2)並消去表中任何重複行而派生出一個結果表。當 ALL 隨 UNION 一起使用時(即 UNION ALL), 不消除重複行。兩種情況下,派生表的每一行不是來自 TABLE1 就是來自 TABLE2。
EXCEPT 運算符通過包括所有在 TABLE1 中但不在 TABLE2 中的行並消除所有重複行而派生出一個結果表。當 ALL 隨 EXCEPT 一起使用時 (EXCEPT ALL),不消除重 復行。
INTERSECT 運算符通過只包括 TABLE1 和 TABLE2 中都有的行並消除所有重複行而派生出一個結果表。當 ALL 隨 INTERSECT 一起使用時 (INTERSECT ALL),不 消除重複行。
注:使用運算詞時候幾個查詢結果行必須一致
------------連接--------------
內連接(自然連接): 只有兩個表相匹配的行才能在結果集中出現
例:select t1.字段1, t2.字段2 from 表1 t1 ,表2 t2 where t1.字段=t2.字段
外連接:left(左邊的表不加限制)、right(右邊的表不加限制)
例:select t1.字段1, t2.字段2 from 表1 t1 left join 表2 t2 on t1.字段=t2.字段
select t1.字段1, t2.字段2 from 表1 t1 right join 表2 t2 on t1.字段=t2.字段
------------常用查找語句
select 字段名 from 表名 where 條件;
select 字段名 from 表名 where 字段名 = 1,2; //相等
select 字段名 from 表名 where 字段名 <> 1,2; //不等
select 字段名 from 表名 where 字段名 in (1,2); //包含
select 字段名 from 表名 where 字段名 not in (1,2) //不包含
select 字段名 from 表名 where like '%哈哈%'; //模糊查詢
select 字段名 form 表名 where 字段名 between 值1 and 值2; //中間查詢
select 字段名 form 表名 where 字段名 not between 值1 and 值2; //去除中間查詢
select 字段名 from 表名 where 字段名 group by 字段名 having 條件; //分組並添加限制條件
having字句可以讓我們篩選成組後的各種數據,where字句在聚合前先篩選記錄,也就是說作用在group by和having字句前。而 having子句在聚合後對組記錄進行篩選 WHERE 子句作用於表和視圖,HAVING 子句作用於組.
having一般跟在group
by之後,執行記錄組選擇的一部分來工作的。
where則是執行所有數據來工作的。
再者having可以用聚合函數,如having sum(qty)>1000
select 字段名 from 表名 where 字段名 order by 字段名 desc //排序 desc 倒序 asc正序
注意:group by 比order by先執行,order by不會對group by 內部進行排序,如果group by後只有一條記錄,那麼order by 將無效。要查出group by中最大的或最 小的某一字段使用 max或min函數。
select 字段名 from 表名 where 字段名 limit 0,5; //限制取出數據條數
select count(*) from 表名 ; //計算條數 可優化爲 select count(1) from 表名 結果一致但速度較快
select max(字段名 ) from 表名 ; //取最大值
select min(字段名 ) form 表名 ; //取最小值
select avg(字段名) from 表名; //取平均值
select sum(字段名) from 表名; //取和