面試題 10.02. 變位片語
MySQL常用語句
心專才能繡得花,心靜才能織得麻。書山有路勤為徑,學海無涯苦作舟。
庫的相關操作:
create database (資料庫名); #建立資料庫
show databases; #檢視已擁有的資料庫
use (資料庫名) #使用該資料庫
show tables; #檢視該資料庫下已擁有的表
drop database (資料庫名); #刪除該資料庫
表的相關操作:
建立表:
create table (表名)(列名稱1 資料型別 約束,列名稱2 資料型別 約束,列名稱3 資料型別 約束,....); #建立表
查看錶的基本資訊:
show create table (表名) #查看錶的基本資訊
desc (表名) #查看錶的基本結構
刪除表
drop table (表名); #刪除該表(可通過日誌恢復)
truncate table(表名); #刪除該表(不可通過日誌恢復)
修改表(用Student表演示)
alter table Student modify Sname varchar(25); #這裡修改了Student表Sname的資料型別
alter table Student add Sclass varchar(20); #這裡添加了一個Scalss欄位
alter table Student drop column(可加可不加) Sclass; #這裡把新加的欄位進行刪除
alter table Student change Sclass Stel varchar(20); #這裡把Sclass改名為Stel
alter table Student rename SC; #這裡把表名Student改為Sc
插入的順序問題用
alter table user add age varchar(20) first; #插在第一行
alter table user add sex varchar(20) after (你要插在誰後面);
記錄的相關操作:
插入記錄(用Student表演示)
insert into Student(Sno,Sname,Sage,Ssex) values("10001","張三",19,"男"); #方法一
insert into Student values("10002","李四",22,"男"); #方法二
insert into Student(Sno,Sname,Sage,Ssex) values("10003","王五",20,"男"),("10004","趙六",21,"男"); #方法三(多條一起新增)
更新(修改)記錄
update Student set Sage = 21 where Sno="10001" #把學號為10001的學生年齡改為21
刪除記錄
delete from Student where Sno = '10001' #把學號為10001的學生的記錄刪除
delete from Student #刪除表中的所有記錄
查詢記錄(這是重點)
普通查詢:select (欄位名) from (表面);
select name from user;#在user表裡面查詢name
select name,age from user;#在user表裡面查詢name,age
select * from user;#查詢user表裡面的所有資訊
去重
select distinct age from user;#去除重複值
條件查詢
select * from user where id=2;#查詢id為2的資訊
select * from user where age between 30 and 40;#查詢年齡在30到40歲人的所有資訊
select *from user where age =30 or age =40;#查詢年齡為30或者40歲的人的所有資訊
select *from user where age !=30 ;#查詢年齡不等於30歲的人的所有資訊 '<>'也為不等於
select *from user where age in(30,40) ;#查詢年齡為30或者40歲的人的所有資訊
模糊查詢
select *from user where name like '劉%';#查詢名字姓氏為劉的所有人的資訊
select *from user where name like '%偉%';#查詢所有名字帶偉的人的資訊
升降序查詢
select * from user order by age;#按年齡排序(升序)或者在後面加asc
select * from user order by age desc;#按年齡排序(降序)
分頁
select * from user limit 5,3;#取前5條記錄後面的3條記錄的資訊
select * from user limit 5;#取前5條記錄的資訊
分組
select * from user group by age;#查詢去除重複的年齡的所有資訊(分組)
統計
select count<*> from user; #查詢一共有幾條資料
取別名
select name as na from user;#給name取別名na並查詢他的所有資訊
多表查詢
select sname ,cname from student inner join cs on student.id = cs.id;#在兩張表之間查詢(內聯)
select student.sname from student left join cs on student.id = cs.id;#左連結 以左邊為基準
select student.sname from student right join cs on student.id = cs.id; #右連線 以右邊為基準
select *from student where id in (select id from cs);#巢狀查詢
select *from student where id in (1,2,3);#和上面結果一樣