MySQL語句整理(1)
阿新 • • 發佈:2019-01-02
一,DDL語句整理
建立表:
create table 表名(列名1 列型別1,列名2 列型別2);
刪除表:
drop table 表名;
修改公式:
alter table 表名 + 要做的事情;
修改表名:
alter table 表名 rename to 新表名;
修改列名:
alter table 表名 change 原列名 新列名 列型別;
修改列型別:
alter table 表名 modify 列名 列新的型別;
增添列:
alter table 表名 add(列名1 列型別1,列名2 列型別2 );
刪除列:
alter table 表名 drop 列名;
二,DML語句整理
插入資料
INSERT INTO 表名(列名1,列名2,列名3) VALUES(對應列名1的值1,對應列名2的值2,對應列名3的值3);
INSERT INTO 表名 VALUES(對應第一列的值1,對應第二列的值二,....,對應最後一列的值n);--表中一共有n列
修改資料
--下面寫法會將所有資料的列名1這一列的資料,都修改為值1
UPDATE 表名 SET 列名=要修改的值;--如果型別為字元型,則需要用單引號:'要修改的值'
UPDATE 表名 SET 列名1 ='值1',列名2='值2';
--上述修改自然是很尷尬的,所以應該有選擇的去修改資料
--為修改語句增加條件
UPDATE 表名 SET 列名3='值3' where id=2;--將id為2的那一行的資料的'列名3'這一列的資料修改為'值3'
刪除資料
--下面寫法會將表名1中的資料都刪除
DELETE FROM 表名1;
--為上述語句增加條件
DELETE FROM 表名1 where id=2;--將id為2的那一行資料刪除
三,DQL基礎語句整理
公式:
select 查詢哪些列
FROM 從哪些表中查
where 查詢條件
GROUP BY 按照哪個列分組
having 分組後的條件
ORDER BY 根據哪一列排序
列運算相關:
--查詢兩列之間資料的加減乘除結果集
select 列名1+列名2, 列名3-列名4, 列名5*列名6, 列名7/列名8 from 表名
去重:
--關鍵字distinct可以將查詢結果中完全相同的資料去除
select distinct 列名 from 表名;
模糊查詢:
模糊查詢的關鍵字為: like
--字元短線:- 代表一個任意值的字元
--字元百分號:% 代表任意數量的任意值的字元
--字元星號:* 代表查詢所有列
select * from 表名 where
name like '張%' --查詢姓張的
or --或
name like '___'; --查詢名字由三個字元組成的
排序
根據id升序排序
ORDER BY id ASC;
根據id降序排序
ORDER BY id DESC;
根據列x升序排序,如果x相同則根據y降序排序
ORDER BY x ASC, y DESC;
關於null與0
1,任何與null做的運算(加減乘除等等)結果都為null.
2,concat(‘hello’,列n);列n的值如果為null,則該函式的結果也是null.
3,如果將字元與數字做運算,那麼字元會被當成0看待,無法轉換成數字的都會被當成0.
4,ifnull(列n,值m);如果列n的值為null,該函式可以將null替換成m使用(並不改變表中的資料).
四,DQL聚合函式整理
聚合函式一共有五個:求資料總個數,求資料值的總和,求資料中的最大值\最小值,求資料的平均值
count(列名)
--查詢表中的資料總數(如果某一行的資料都為null,則不會計算)
select count(*) from 表;
--下面這句與上面那句的區別在於:如果第二行name列為null,而其他列有值,上一條語句會計算第二行,而這一條語句不會
select count(name) from 表;
sum(列名)
--取x列資料的總和
select sum(x) from 表;
max(列名)與min(列名)
--取x列的最大值和y列的最小值
select max(x),min(y) from 表;
avg(列名)
--取age列的平均值
select avg(age) from 表;
五,SQL分組查詢整理
一般見到每組,每班,每部門,每科室等詞彙,基本就是要使用分組查詢了.
--以列名x列分組,查詢該列資訊及分組後的每組的數量
select 列名x,count(列名x) from 表名 GROUP BY 列名x;
在分組之前的條件用where,分組之後的條件用having,看上方公式順序