myslq常用命令
连接mysql服务器:
mysql -uroot -p(mysql密码)
查看所有数据库:
show databases;
创建数据库:
create database 数据库名 charset=utf8
创建数据表
create table 数据表名字 (column_name column_type);
使用库:
use 数据库名
查看所有表:
show tables;
删除mysql表单中的某条数据:
delete from 表名 where 条件 (如果想要删除表中的一条数据的话 后面的条件需要是能唯一确定一条记录的条件!)
删除数据库:
drop database 数据库名字
删除数据表
drop table 数据表名字
查看表单数据:
select * from 表单名
条件查询数据:
select * from 表名 where 条件
查询最大值,最小值,平均值,总和:
最大值:select * from 表面 where 数据值=(select max(数据值) from 表名);
最小值:max 换 min
平均值:max 换 avg
总和:max 换 sum
查询数据为空的数据:
select * from 表名 where 判断为空的值 is null;
查询数据只查其中的个别数据:
select 想要查询的值 from 表名 ;
模糊查询(数据值带有a的):
select * from 表名 where 数据值 like ‘%A%’
子查询(查询某值大于某数据值的所有数据):
select 需要展示的数据 from 表名 where 相比较的数据值>(select 相比较的数据值 from 表名 where 比较对象的判断);
练习题详细:
一.员工部分表
1.部门表Dept
- 建表语句
CREATE TABLE dept (
DEPTNO FLOAT(2) PRIMARY KEY, -- 部门号
DNAME VARCHAR(14) , -- 部门名称
LOC VARCHAR(13) ) ; -- 部门地址
- 数据
INSERT INTO dept VALUES (10,'ACCOUNTING','NEW YORK');
INSERT INTO dept VALUES (20,'RESEARCH','DALLAS');
INSERT INTO dept VALUES (30,'SALES','CHICAGO');
INSERT INTO dept VALUES (40,'OPERATIONS','BOSTON');
2.员工表EMP
- 建表语句
CREATE TABLE emp
(EMPNO float(4) PRIMARY KEY, -- 员工编号
ENAME VARCHAR(10), -- 员工姓名
JOB VARCHAR(9), -- 员工职位
MGR float(4), -- 员工上级工号
HIREDATE DATE, -- 生日
SAL float(7,2), -- 薪水
COMM float(7,2), -- 年终奖
DEPTNO float(2) REFERENCES dept); -- 部门号
- 数据
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO) values (7369, 'SMITH', 'CLERK', 7902, '1980-12-17', 800, null, 20);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO) values (7499, 'ALLEN', 'SALESMAN', 7698, '1981-02-20', 1600, 300, 30);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO) values (7521, 'WARD', 'SALESMAN', 7698, '1981-02-22', 1250, 500, 30);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO) values (7566, 'JONES', 'MANAGER', 7839, '1981-04-02', 2975, null, 20);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO) values (7654, 'MARTIN', 'SALESMAN', 7698, '1981-09-28', 1250, 1400, 30);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO) values (7698, 'BLAKE', 'MANAGER', 7839, '1981-05-01', 2850, null, 30);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO) values (7782, 'CLARK', 'MANAGER', 7839, '1981-06-09', 2450, null, 10);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO) values (7788, 'SCOTT', 'ANALYST', 7566, '1987-04-19', 3000, null, 20);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO) values (7839, 'KING', 'PRESIDENT', null, '1981-11-17', 5000, null, 10);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO) values (7844, 'TURNER', 'SALESMAN', 7698, '1981-09-08', 1500, 0, 30);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO) values (7876, 'ADAMS', 'CLERK', 7788, '1987-05-23', 1100, null, 20);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO) values (7900, 'JAMES', 'CLERK', 7698, '1981-12-03', 950, null, 30);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO) values (7902, 'FORD', 'ANALYST', 7566,'1981-12-02', 3000, null, 20);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO) values (7934, 'MILLER', 'CLERK', 7782, '1982-01-23', 1300, null, 10);
单表基础查询
1) 查询没有上级的员工全部信息(mgr是空的)
select * from emp where mgr is null;
2) 列出30号部门所有员工的姓名、薪资
select ename,sal from emp;
3) 查询姓名包含 'A’的员工姓名、部门名称
select ename,deptno from emp where ename like '%a%';
4) 查询员工“TURNER”的员工编号和薪资
select empno,sal from emp where ename='turner';
5) – 查询薪资最高的员工编号、姓名、薪资
select empno,ename,sal from emp where sal=(select max(sal) from emp);
6) – 查询10号部门的平均薪资、最高薪资、最低薪资
select avg(sal),max(sal),min(sal) from emp where deptno='10';
子查询
1) 列出薪金比员工“TURNER”多的所有员工姓名(ename)、员工薪资(sal)
select ename,sal from emp where sal>(select sal from emp where ename='turner');
2) 列出薪金高于公司平均薪金的所有员工姓名、薪金。
select ename,sal from emp where sal>(select avg(sal) from emp );
3) 列出与“SCOTT”从事相同工作的所有员工姓名、工作名称(不展示Scott的姓名、工作)
select ename,job from emp where ename!='scott'and job=(select job from emp where ename='scott');
4) 列出薪金高于30部门最高薪金的其他部门员工姓名、薪金、部门号。
select ename,sal,deptno from emp where sal>(select max(sal) from emp where deptno='30');