一掏愁、命令收集:
1枢劝、建表
create table t1 (name char(5));
2净捅、表中插入數(shù)據(jù)
insert into t1 values(‘11111’) ;
3狸涌、查看創(chuàng)表語句及字符集
show create table(t1);
4切省、查詢表中數(shù)據(jù)
select * from t1;
5、查看文表當(dāng)中某個(gè)列的一些具體值的占用長度帕胆。
select length(name) from t1;
6数尿、所有字符集校對(duì)規(guī)則
show collation;
7、查看所有字符集
show charset;
8惶楼、查詢某參數(shù)
show variables like ‘%lower%’;
9、刪庫
drop database 庫名诊杆;
10歼捐、查庫
show create database test;
show databases; (所有庫)
11、改庫字符集
alter database test charset utf8mb4;
12晨汹、取當(dāng)前時(shí)間
select now();
13豹储、查看表的列信息
desc xx;
14 、添加列
alter table xs1 add 微信 varchar(64) not null unique key comment ‘微信號(hào)’;
如果是在某列之后添加?after xxx;
如果是在最前面添加 直接寫first;
刪除列
alter table xs1 drop dianhua;(危險(xiǎn)操作)
列名屬性都修改
alter table xs1 change name sname varchar(64)
只修改數(shù)據(jù)屬性
alter table xs1 modify 微信 varchar(64) not null comment ‘微信號(hào)’;
刪表(危險(xiǎn)淘这,不代表生產(chǎn)操作)
truncate table xs;(清空表的區(qū)剥扣,數(shù)據(jù)清空,表定義保留)
drop table xs1;(表定義和數(shù)據(jù)全部刪除)
查表
show tables;
show create table xs;
desc
小結(jié):
建庫
create database haha charset utf8mb4;
刪庫
drop database haha;
改字符集
alter database haha charest uft8;
查看
show create database haha;
show databases;
create table 表名 (
列1 數(shù)據(jù)類型 約束 其他屬性铝穷,
列1 數(shù)據(jù)類型 約束 其他屬性
)engine=innodb charset=utf8mb4; comment ‘信息’;
修改表
alter table xuexiao add qq varchar(64) not null unique key comment ‘qq號(hào)’
刪表
drop table xs1;
desc xs1;
grant 權(quán)限 on 范圍 to 用戶 identified by 密碼钠怯;
revoke 權(quán)限 on 范圍 from 用戶;
DML
用做表的數(shù)據(jù)行的增、刪曙聂、改晦炊、查
insert 表名 values();
例子
insert into xs1(id,sname,age,sex,shengfen,shijian) values (1,'張三','18','n','bj',now());
簡化方法
insert into xs1 values(2,’李四’,’15’,’n’,’sh’,now());
只對(duì)需要錄入部分錄入。
修改某一行宁脊,update要加where條件
update xs1 set age=20 where id=1;
delete 語句(邏輯性刪除断国,注意要加where條件)
delete from xs1 where id=4
面試題:以下語句的區(qū)別?
delete from t1;
truncate table t1;
truncate table t1; 是DDL語句榆苞,清空整表的所有數(shù)據(jù)稳衬,按照區(qū)來刪除,屬于物理刪除坐漏,性能高薄疚。表所占用空間會(huì)立即釋放碧信。
delete from t1; 是DML語句,清空整表所有數(shù)據(jù)输涕,按照行來刪除的音婶,屬于邏輯刪除,性能低莱坎。表所占用的空間衣式,不會(huì)立即釋放。
使用update替代delete 實(shí)現(xiàn)偽刪除檐什。
添加一個(gè)狀態(tài)列state
delete from xs1 where id=6
update xs1 set state=0 where id=6;
改完后業(yè)務(wù)進(jìn)行調(diào)整
Select * from xs1 where state=1;
15 select 單獨(dú)屬性的情況(mysql獨(dú)家)
例子 select @@datadir;
Select @@port;
show模糊查詢
mysql> show variables like '%trx%';
select 函數(shù)();
select now(); 查當(dāng)前時(shí)間
select user(); 查當(dāng)前用戶
select database();查當(dāng)前所在數(shù)據(jù)庫
select 15*15; 可以直接做計(jì)算
select concat (‘hello world’)做拼接用法
select concat(user,‘@’碴卧,host) from mysql.user; 最基本應(yīng)用
select group_concat(user,‘@’,host) from mysql.user;
from子句應(yīng)用
select * from city; 查看所有
select country,name from city; 查看某幾列乃正。
where子句應(yīng)用
等值查詢
查詢中國城市的信息
select * from city where countrycode=’CHN’;
不等值查詢
查詢?nèi)丝跀?shù)量少于100人城市住册。
select * from city where population<100;
查詢id小于10的城市信息
select * from city where id<10;
查詢不是中國的城市信息(盡量不使用不等于,可能不走索引)瓮具。
select * from city where countrycode !=’CHN’;
select模糊查詢
查詢國家代號(hào)為CH打頭的城市信息荧飞。
Select * from city where countrycode like ‘CHN%’;
邏輯連接符(and,or)
查詢中國城市人口超過500 w的城市信息
select * from city where countrycode=’CHN’and population>500;
查看山東省或河北省的城市信息
select * from city where district=’shandong’ or district=’hebei’;
where配合between and的使用
查詢?nèi)丝跀?shù)在100w-200w之間的城市信息(包含頭尾)
select * from city where population between 1000000 and 2000000;
where 配合in使用
查看山東省或河北省的城市信息
select * from city where district in(‘shandong’,’hebei’);
select * from city where district notin(‘shandong’,’hebei’);排除
group by 字句+聚合函數(shù)
按照某個(gè)列進(jìn)行分組
常用的聚合函數(shù)
count() 計(jì)數(shù)
max()最大值
min()最小值
average 平均值
sum() 總和
group_concat() 組拼接,列轉(zhuǎn)行
例子
統(tǒng)計(jì)每個(gè)國家的城市個(gè)數(shù)
select countrycode,count(id) from city group by countrycode;
統(tǒng)計(jì)每個(gè)國家的總?cè)丝跀?shù)
select countrycode,sum(population) from city group countrycode;
統(tǒng)計(jì)中國每個(gè)省的城市個(gè)數(shù)及總?cè)丝跀?shù)
select district,count(name),sum(population) from city where countrycode=’CHN’group by district;
統(tǒng)計(jì)各個(gè)國家的城市名列表
select countrycode,group_concat(name)
From city
Group by countrycode;
having 字句使用 再過濾
統(tǒng)計(jì)中國每個(gè)省的城市個(gè)數(shù)及省總?cè)丝跀?shù)名党,只顯示人口總數(shù)達(dá)于800萬的省
select district ,count(name),sum(population) from city where countrycode=’CHN’ group by district
having sum(population)>8000000;
統(tǒng)計(jì)中國每個(gè)省的城市個(gè)數(shù)及省總?cè)丝跀?shù)叹阔,只顯示人口總數(shù)達(dá)于800萬的省,將人口數(shù)進(jìn)行排序輸出传睹。
order by字句
在having之后
select district,count(name),sum(population) from city where countrycode=’CHN’ group by district having
sum(population)>8000000 order by sum(population);默認(rèn)從小到大排序
select district,count(name),sum(population) from city where countrycode=’CHN’ group by district having
sum(population)>8000000 order by sum(population) desc; 從大到小排序
order by 可以在where 后面使用
查詢中國所有城市信息耳幢,并以人口數(shù)量進(jìn)行降序排序。
select * from from city where countrycode=’CHN’order by population desc;
show 語句 (mysql獨(dú)家)
show databases;
show tables;
show create databases xxx;
show create table xxx;
show grant for xxx(用戶);
show charset;(支持字符集情況;
show collation;校對(duì)
show variables like ''%trx%;
show engines; (存儲(chǔ)引擎)
show process list; (進(jìn)程)
show index from t1; (查看索引)
show status;(看數(shù)據(jù)庫狀態(tài))
show engine innodb status\G;(看存儲(chǔ)引擎狀態(tài))
show binlog events in'';(二進(jìn)制)
show binary logs;
show master status;
show slave status\G;
show relaylog events in ''欧啤;
show table status;
help show;
?