整理mysql命令

整理了一些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 表名; //取和

發佈了30 篇原創文章 · 獲贊 5 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章