mysql max 命令大全_MySQL常用命令,34道练习题(持续更新中)。
1、使用SHOW語句找出在服務(wù)器上當(dāng)前存在什么數(shù)據(jù)庫:
mysql> SHOW DATABASES;
2、創(chuàng)建一個數(shù)據(jù)庫MYSQLDATA
mysql> CREATE DATABASE MYSQLDATA;
3、選擇你所創(chuàng)建的數(shù)據(jù)庫
mysql> USE MYSQLDATA; (按回車鍵出現(xiàn)Database changed 時說明操作成功!)
4、查看現(xiàn)在的數(shù)據(jù)庫中存在什么表
mysql> SHOW TABLES;
5、創(chuàng)建一個數(shù)據(jù)庫表
mysql> CREATE TABLE MYTABLE (name VARCHAR(20), sex CHAR(1));
6、顯示表的結(jié)構(gòu):
mysql> DESCRIBE MYTABLE;
7、往表中加入記錄
mysql> insert into MYTABLE values (”hyq”,”M”);
8、用文本方式將數(shù)據(jù)裝入數(shù)據(jù)庫表中(例如D:/mysql.txt)
mysql> LOAD DATA LOCAL INFILE “D:/mysql.txt” INTO TABLE MYTABLE;
9、導(dǎo)入.sql文件命令(例如D:/mysql.sql)
mysql>use database; mysql>source d:/mysql.sql;
10、刪除表
mysql>drop TABLE MYTABLE;
11、清空表
mysql>delete from MYTABLE;
12、更新表中數(shù)據(jù)
mysql>update MYTABLE set sex=”f” where name=’hyq’;
匿名帳戶刪除、 root帳戶設(shè)置密碼:
use mysql; delete from User where User=”"; update User set Password=PASSWORD(’newpassword’) where User=’root’;
GRANT的常用用法如下:
grant all on mydb.* to NewUserName@HostName identified by “password” ; grant usage on *.* to NewUserName@HostName identified by “password”; grant select,insert,update on mydb.* to NewUserName@HostName identified by “password”; grant update,delete on mydb.TestTable to NewUserName@HostName identified by “password”;
全局管理權(quán)限:
FILE: 在MySQL服務(wù)器上讀寫文件。
PROCESS: 顯示或殺死屬于其它用戶的服務(wù)線程。
RELOAD: 重載訪問控制表,刷新日志等。
SHUTDOWN: 關(guān)閉MySQL服務(wù)。
數(shù)據(jù)庫/數(shù)據(jù)表/數(shù)據(jù)列權(quán)限:
ALTER: 修改已存在的數(shù)據(jù)表(例如增加/刪除列)和索引。
CREATE: 建立新的數(shù)據(jù)庫或數(shù)據(jù)表。
DELETE: 刪除表的記錄。
DROP: 刪除數(shù)據(jù)表或數(shù)據(jù)庫。
INDEX: 建立或刪除索引。
INSERT: 增加表的記錄。
SELECT: 顯示/搜索表的記錄。
UPDATE: 修改表中已存在的記錄。
特別的權(quán)限:
ALL: 允許做任何事(和root一樣)。
USAGE: 只允許登錄–其它什么也不允許做。
MySQL-Practice-Questions
1、取得每個部門最高薪水的人員名稱
第一步:取得每個部門最高薪水『按照部門分組求最大值』
mysql> select deptno,max(sal) as maxsal from emp group by deptno;
deptno
maxsal
10
5000.00
20
3000.00
30
2850.00
第二步:將上面的查詢結(jié)果當(dāng)作臨時表t,t表和emp e表進行連接
條件:e.deptno=t.deptno and e.sal=t.sal
mysql> select -> e.ename t.* -> from -> emp e -> join -> (select deptno,max(sal) as maxsal from emp group by deptno) t -> on -> e.deptno=t.deptno and e.sal = t.maxsal;
ename
deptno
maxsal
BLAKE
30
2850.00
SCOTT
20
3000.00
KING
10
5000.00
FORD
20
3000.00
2、那些人的薪水在部門的平均薪水之上
第一步:找出部門的平均薪水『按部門編號分組求平均薪水』
select deptno,avg(sal) as avgsal from emp group by deptno;
deptno
avgsal
10
2916.666667
20
2175.000000
30
1566.666667
第二步:將上面的查詢結(jié)果當(dāng)作臨時表t,與emp e表進行連接 條件:t.deptno=t.deptno and e.sal > t.avgsal
select e.ename,e.sal,t.* from emp e join (select deptno,avg(sal) as avgsal from emp group by deptno) t on e.deptno=t.deptno and e.sal > t.avgsal;
ename
sal
deptno
avgsal
ALLEN
1600.00
30
1566.666667
JONES
2975.00
20
2175.000000
BLAKE
2850.00
30
1566.666667
SCOTT
3000.00
20
2175.000000
KING
5000.00
10
2916.666667
FORD
3000.00
20
2175.000000
3、1取得部門中(所有人)平均薪水的等級
第一步:取得部門中的平均薪水
select deptno,avg(sal) as avgsal from emp group by deptno;
deptno
avgsal
10
2916.666667
20
2175.000000
30
1566.666667
第二部:將上面的查詢結(jié)果當(dāng)作臨時表t,t表和salgrade s表進行關(guān)聯(lián) 條件:e.sal between s.losal and s.hisal
select t.*,s.grade from salgrade s join (select deptno,avg(sal) as avgsal from emp group by deptno) t on t.avgsal between s.losal and s.hisal;
deptno
avgsal
grade
10
2916.666667
4
20
2175.000000
4
30
1566.666667
3
3、2取得部門中(所有人)薪水的平均等級
第一步:每個員工的薪水等級(oder by 以部門編號排序,為了好理解)
select e.ename,e.sal,e.deptno,s.grade from emp e join salgrade s on e.sal between s.losal and s.hisal ;
ename
sal
deptno
grade
MILLER
1300.00
10
2
KING
5000.00
10
5
CLARK
2450.00
10
4
ADAMS
1100.00
20
1
SCOTT
3000.00
20
4
FORD
3000.00
20
4
JONES
2975.00
20
4
SMITH
800.00
20
1
MARTIN
1250.00
30
2
ALLEN
1600.00
30
3
JAMES
950.00
30
1
BLAKE
2850.00
30
4
WARD
1250.00
30
2
TURNER
1500.00
30
3
第二步:在以上基礎(chǔ)上繼續(xù)以部門編號分組,求平均薪水等級
select e.deptno,s.grade from emp e join salgrade s on e.sal between s.losal and s.hisal group by e.deptno;
deptno
grade
10
4
20
1
30
3
4、不用組函數(shù)(MAX),取得最高薪水(給出兩種解決方案)
方案一:按照薪水降序排,取得第一個
mysql> select sal from emp order by sal desc limit 1;
方案二:自連接
mysql>mysql> select sal from emp where sal not in(select a.sal from emp a join emp b on a.sal < b.sal);
sal
5000.00
5、取得平均薪水最高的部門的編號(至少給出兩種解決方案)
第一種方案:平均薪水降序排取第一個 第一步:取得每個部門的平均薪水
mysql> select deptno,avg(sal) avgsal from emp group by deptno;
deptno
avgsal
10
2916.666667
20
2175.000000
30
1566.666667
第二步:取得平均薪水的最大值
mysql> select avg(sal) avgsal from emp group by deptno order by avgsal desc limit 1;
avgsal
2916.666667
第三步:將第一步和第二步結(jié)合
select deptno,avg(sal) as avgsal from emp group by deptno having avg(sal)=( select avg(sal) avgsal from emp group by deptno order by avgsal desc limit 1);
deptno
avgsal
10
2916.666667
第二種方案:MAX函數(shù)
select deptno,avg(sal) as avgsal from emp group by deptno having avg(sal)=( select max(t.avgsal) from (select avg(sal) avgsal from emp group by deptno) t);
deptno
avgsal
10
2916.666667
6、取得平均薪水最高的部門的部門名稱
select d.dname,avg(e.sal) as avgsal from emp e join dept d on e.deptno=d.deptno group by d.dname having avg(e.sal)=( select max(t.avgsal) from (select avg(sal) avgsal from emp group by deptno) t);
dname
avgsal
ACCOUNTING
2916.666667
總結(jié)
以上是生活随笔為你收集整理的mysql max 命令大全_MySQL常用命令,34道练习题(持续更新中)。的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: nginx php value,PHP+
- 下一篇: linux cmake编译源码,linu