一丢郊、操作庫(kù)
-- 創(chuàng)建庫(kù)
create database db1;
-- 創(chuàng)建庫(kù)是否存在,不存在則創(chuàng)建
create database if not exists db1;
-- 查看所有數(shù)據(jù)庫(kù)
show databases;
-- 查看某個(gè)數(shù)據(jù)庫(kù)的定義信息
show create database db1;
-- 修改數(shù)據(jù)庫(kù)字符信息
alter database db1 character set utf8;
-- 刪除數(shù)據(jù)庫(kù)
drop database db1;
二彩掐、操作表
--創(chuàng)建表
create table student(
id int,
name varchar(32),
age int ,
score double(4,1),
birthday date,
insert_time timestamp
);
-- 查看表結(jié)構(gòu)
desc 表名;
-- 查看創(chuàng)建表的SQL語(yǔ)句
show create table 表名;
-- 修改表名
alter table 表名 rename to 新的表名;
-- 添加一列
alter table 表名 add 列名 數(shù)據(jù)類型;
-- 刪除列
alter table 表名 drop 列名;
-- 刪除表
drop table 表名;
drop table if exists 表名 ;
三构舟、增加 insert into
-- 寫全所有列名
insert into 表名(列名1,列名2,...列名n) values(值1,值2,...值n);
-- 不寫列名(所有列全部添加)
insert into 表名 values(值1,值2,...值n);
-- 插入部分?jǐn)?shù)據(jù)
insert into 表名(列名1,列名2) values(值1,值2);
四、刪除 delete
-- 刪除表中數(shù)據(jù)
delete from 表名 where 列名 = 值;
-- 刪除表中所有數(shù)據(jù)
delete from 表名;
-- 刪除表中所有數(shù)據(jù)(高效 先刪除表堵幽,然后再創(chuàng)建一張一樣的表狗超。)
truncate table 表名;
五、修改 update
-- 不帶條件的修改(會(huì)修改所有行)
update 表名 set 列名 = 值;
-- 帶條件的修改
update 表名 set 列名 = 值 where 列名=值;
六朴下、基礎(chǔ)關(guān)鍵字
BETWEEN...AND (在什么之間)和 IN( 集合)
-- 查詢年齡大于等于20 小于等于30
SELECT * FROM student WHERE age >= 20 && age <=30;
SELECT * FROM student WHERE age >= 20 AND age <=30;
SELECT * FROM student WHERE age BETWEEN 20 AND 30;
-- 查詢年齡22歲努咐,18歲,25歲的信息
SELECT * FROM student WHERE age = 22 OR age = 18 OR age = 25
SELECT * FROM student WHERE age IN (22,18,25);
is null(不為null值) 與 like(模糊查詢)殴胧、distinct(去除重復(fù)值)
-- 查詢英語(yǔ)成績(jī)不為null
SELECT * FROM student WHERE english IS NOT NULL;
_:單個(gè)任意字符
%:多個(gè)任意字符
-- 查詢姓馬的有哪些渗稍? like
SELECT * FROM student WHERE NAME LIKE '馬%';
-- 查詢姓名第二個(gè)字是化的人
SELECT * FROM student WHERE NAME LIKE "_化%";
-- 查詢姓名是3個(gè)字的人
SELECT * FROM student WHERE NAME LIKE '___';
-- 查詢姓名中包含德的人
SELECT * FROM student WHERE NAME LIKE '%德%';
-- 關(guān)鍵詞 DISTINCT 用于返回唯一不同的值佩迟。
-- 語(yǔ)法:SELECT DISTINCT 列名稱 FROM 表名稱
SELECT DISTINCT NAME FROM student ;
七、排序查詢 order by
語(yǔ)法: order by 子句
order by 排序字段1 排序方式1 竿屹, 排序字段2 排序方式2...
注意:
如果有多個(gè)排序條件报强,則當(dāng)前邊的條件值一樣時(shí),才會(huì)判斷第二條件
-- 例子
SELECT * FROM person ORDER BY math; --默認(rèn)升序
SELECT * FROM person ORDER BY math desc; --降序
八拱燃、聚合函數(shù):將一列數(shù)據(jù)作為一個(gè)整體秉溉,進(jìn)行縱向的計(jì)算。
1.count:計(jì)算個(gè)數(shù)
2.max:計(jì)算最大值
3.min:計(jì)算最小值
4.sum:計(jì)算和
5.avg:計(jì)算平均數(shù)
九扼雏、分組查詢 grout by
語(yǔ)法:group by 分組字段;
注意:分組之后查詢的字段:分組字段坚嗜、聚合函數(shù)
-- 按照性別分組。分別查詢男诗充、女同學(xué)的平均分
SELECT sex , AVG(math) FROM student GROUP BY sex;
-- 按照性別分組苍蔬。分別查詢男、女同學(xué)的平均分,人數(shù)
SELECT sex , AVG(math),COUNT(id) FROM student GROUP BY sex;
-- 按照性別分組蝴蜓。分別查詢男碟绑、女同學(xué)的平均分,人數(shù) 要求:分?jǐn)?shù)低于70分的人,不參與分組
SELECT sex , AVG(math),COUNT(id) FROM student WHERE math > 70 GROUP BY sex;
-- 按照性別分組茎匠。分別查詢男格仲、女同學(xué)的平均分,人數(shù) 要求:分?jǐn)?shù)低于70分的人,不參與分組,分組之后诵冒。人數(shù)要大于2個(gè)人
SELECT sex , AVG(math),COUNT(id) FROM student WHERE math > 70 GROUP BY sex HAVING COUNT(id) > 2;
SELECT sex , AVG(math),COUNT(id) 人數(shù) FROM student WHERE math > 70 GROUP BY sex HAVING 人數(shù) > 2;
十凯肋、分頁(yè)查詢
- 語(yǔ)法:limit 開始的索引,每頁(yè)查詢的條數(shù);
- 公式:開始的索引 = (當(dāng)前的頁(yè)碼 - 1) * 每頁(yè)顯示的條數(shù)
- limit 是一個(gè)MySQL"方言"
-- 每頁(yè)顯示3條記錄
SELECT * FROM student LIMIT 0,3; -- 第1頁(yè)
SELECT * FROM student LIMIT 3,3; -- 第2頁(yè)
SELECT * FROM student LIMIT 6,3; -- 第3頁(yè)