前言
在前幾篇,我介紹了關於MySQL的基本概念,那麼本次就要開始介紹關於MySQL的最重要的部分,那就是關於表的操作。(CRUD- Create, Retrieve,Update,Drop)。
建表
例:創建一張學生表
create table student(
id int primary key,
name varchar(20),
sex varchar (2),
addr varchar(20)
);
插入數據
- 單行插入(全列插入)
insert into student values(1,‘張三’,’男‘,‘西安’);
- 多行插入(指定列插入)
insert into student(id,name,sex) values(1,‘張三’,’男‘);
查詢
- 全列查詢
select * from student;
- 指定列查詢
select id,name from student;
- 查詢去重
//查詢去重後的數學成績
select distinct shuxue from student
where條件
-
比較運算
-
邏輯運算
where語句使用
//此處使用的表爲假想表,意思意思即可,能理解語句就行。
查詢數學成績大於60分的同學
select id,name from student where shuxue > 60;
查詢語文成績在80到90之間的同學
select name, yuwen from student where yuwen between 80 and 90;
查詢英語成績是 58 或者 89 或者 98 或者 99 分的同學及英語成績
select name,yingyu from student where yingyu = 58 or yingyu = 89 or yingyu = 98 or = yingyu = 99;
select name,yingyu from student where yingyu in(58,89,98,99);
模糊匹配
- % 匹配任意多個(包括 0 個)任意字符
- _ 匹配嚴格的一個任意字符
查詢名字爲張某某的同學
select name from student where name like '張%';
查詢名字爲張某的同學(只有兩個字)
select name from student where name like '張_';
排序
- 升序 ASC (默認)
- 降序 DESC
查詢數學成績升序的同學
select name,shuxue from student order by shuxue ;
查詢英語成績降序的同學
select name,yingyu from student order by yingyu DESC ;
篩選分頁
- 從 0 開始,篩選 n 條結果(LIMIT n);
- 從 s 開始,篩選 n 條結果(LIMIT s, n);
- 從 s 開始,篩選 n 條結果,比第二種用法更明確,建議使用(]LIMIT n OFFSET n)
更新
將張三同學的數學成績變更爲 80 分
update student set shuxue = 80 where name = '張三';
將總成績倒數前三的 3 位同學的數學成績加上 30 分
select name, shuxue, yuwen + shuxue + yingyu 總分 from student
order by 總分 limit 3;
update沒有where子句,則更新的是整個表
刪除數據
刪除名爲張三的同學
DELETE FROM student WHERE name = '張三';
刪除整張表
delete from student
截斷表
TRUNCATE [TABLE] table_name
- 只能對整表操作,不能像 DELETE 一樣針對部分數據操作;
- 實際上 MySQL 不對數據操作,所以比 DELETE 更快
- 會重置 AUTO_INCREMENT 項
聚合函數
統計班級共有多少同學
select count(*) from student;
統計語文成績總分
select sum(yuwen) form student;
統計數學成績平均分
select avg(shuxue) from student;
返回英語最高分
select max(yingyu) from student;
返回英語最低分
select min(yingyu) from student;
分組查詢
在select中使用group by 子句可以對指定列進行分組查詢
select column1, column2, .. from table group by column;
例:統計各個部門的平均工資
select avg(sal) from EMP group by deptno