01MySQL常用命令的使用
-
顯示資料庫和表
show databases;-- 顯示當前所有資料庫 use databasesname;-- 選擇指定資料庫 show tables;-- 顯示當前資料庫下所有表?
-
查看表結構、版本、日期
desc tablename;-- 查看表的描述 -- describe tablenames; 查看表的描述 show create table tables;-- 查看建表資訊 (字符集、編碼等) select version(),current_date();-- 顯示當前MySQL資料庫的版本和當前日期(自帶的函式) select CURRENT_USER(),CURRENT_TIME(),CURRENT_TIMESTAMP(); -- 結果為 root@localhost (賬號的名稱@授權的IP),21:40:21,2020-09-09 21:40:21?
-
查看當前執行緒以及系統變數值
show processlist;-- 顯示MySQL哪些執行緒正在運行 show variables like "%tx_isolation%";-- 查看指定系統變數的值 -- (tx_isolation資料庫默認的隔離級別,like模糊查詢) -- 全域變數 共享的一個變數 不可修改;會話變數 不同客戶端不同 可修改
02MySQL DDL應用
DDL(Data Definition Language) 資料庫核心陳述句 主要是對資料庫物件進行管理,主要包含資料庫、資料表、視圖、存盤程序、函式、觸發器等
-
DDL定義、創建、洗掉庫
-- DDL(Data Definition Language)資料庫定義語言,定義了不同的資料段、資料庫、表、列、索引等資料庫物件 常用的關鍵字為create drop alter create database test1;-- 創建資料庫test1 drop database test1;-- 洗掉指定資料庫test1?
-
創建表、查看表的結構、alter表欄位(改、增、刪)
create table emp(ename varchar(10),hiredata data,sal decimal(10,2),deptno int(2));-- 創建表 desc emp;-- 查看表 alter table emp modify ename varchar(20);-- 修改表欄位長度 alter table emp add column age int(3);-- 增加表欄位 alter table emp drop column age;-- 洗掉表欄位?
03MySQL DML應用
DML(Data Manipulation language)資料操作語言 主要是對資料庫的資料進行管理,包含資料的增、刪、改、查 并檢查資料的完整性 常用關鍵字包含insert、delete、update、select
-
資料的增
insert into emp(ename,hiredata,sal,deptno) values("汪蕪",'2020-09-09',9000,1);-- 插入一條記錄 create table dept(deptno int(3),deptnoname varchar(20));-- 插入多條記錄 -- select * from dept;-- 查詢表 -- select *from emp;-- 查詢表?
-
資料的改
update emp set sal=100000 where ename = '汪蕪';-- 更新某個記錄?
-
資料的刪
delete from emp where ename = '汪蕪';-- 洗掉某個記錄 truncate table emp;-- 截斷表(會清除表內所有資料 自增長會從頭開始;不支持資料回滾) delete from emp;-- 洗掉表內所有的資料 (自增長會接著之前的資料自增;支持資料回滾) alter table emp add column id int(2) auto_increment first;-- 添加一個欄位 注意約束為主鍵才可以自增會,設定為第一列 insert into emp(ename,hiredata,sal,deptno) values('章散','2020-09-09',9000,1);-- 插入資料 注意自增長不需要添加?
-
資料的查
select ename,hiredata from emp;-- 查詢指定的列 select distinct deptno from emp;-- 查詢不重復的部門的記錄
04MySQL select應用
主要時怎樣對資料庫的資料進行高效地檢索,包含單表查詢、多表關聯的查詢、多條件過濾查詢、分組過濾查詢、統計查詢、多維度聚合查詢等
-
多條件查詢
select * from emp where deptno=1; select * from emp where deptno=1 and sal=9000;-- 交 select * from emp where deptno=1 or sal=9000;-- 或?
-
排序
select * from emp order by sal;-- 按照薪資由低到高排序 select * from emp where deptno=1 order by sal; select * from emp order by sal desc;-- 按照薪資降序排列 select * from emp order by sal desc limit 2;-- 按照薪資降序排列,且只取前兩個 select * from emp order by sal,deptno desc limit 2;-- 按照薪資升序,部門降序排列,且只取前兩個?
-
統計及分組統計
select count(*) from emp;-- 包含所有的列,統計時不會忽略列值為null select count(列名) from emp;-- 只包含列名那一列,統計時會忽略列值為null -- select count(1) from emp; -- select count(0) from emp; select count(*) as empnum from emp;-- 將count(*)欄位重命名,as可省略 select deptno,count(*) empnum from emp group by deptno;-- 按照部門號分組統計?
-
分組統計+條件過濾
select deptno,count(*) as empnum from emp group by deptno with rollup;-- 既要統計各部門人數又要統計總人數 select deptno,count(*) as empnum from emp group by deptno having empnum>1;-- 統計人數大于1的部門?
-
聚合函式與多表關聯查詢
select sum(sal),max(sal),min(sal) from emp;-- 統計所有員工的薪水總額、最高和最低薪水 select ename,deptnoname from emp,dept where emp.deptno=dept.deptno;-- 查詢所有員工的名字和所在的部門的名稱 select ename,deptnoname from emp e join dept d on e.deptno=d.deptno;-- 同上 查詢所有員工的名字和所在的部門的名稱?
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/21943.html
標籤:其他
