MySQL增刪改查基本使用(CRUD)

前言

在前幾篇,我介紹了關於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
  1. 只能對整表操作,不能像 DELETE 一樣針對部分數據操作;
  2. 實際上 MySQL 不對數據操作,所以比 DELETE 更快
  3. 會重置 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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章