MySQL数据库常用命令

来源:互联网 发布:协同过滤推荐算法java 编辑:程序博客网 时间:2024/04/30 15:39
--创建数据库
mysql> create database dept;
Query OK, 1 row affected (0.05 sec)
--切换数据库
mysql> use dept;
Database changed
--创建表
mysql> create table dept(
     deptno int(4) primary key ,
     dname varchar(20),
     loc varchar(20)
     );
Query OK, 0 rows affected (0.09 sec)
--查看表结构(另一种方式查看脚本:show create table detp)
mysql> desc dept;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| deptno | int(4)      | NO   | PRI | NULL    |       |
| dname  | varchar(20) | YES  |     | NULL    |       |
| loc    | varchar(20) | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
3 rows in set (0.02 sec)
--创建表,注意行级定义和表级定义的使用
mysql> create table emp (
    empno int(4) not null primary key,
    ename varchar(20),job varchar(20),
    mgr int(4),
    hiredate datetime,
    sal double(10,2),
    comm double(10,2),
    deptno int(4),
    constraint emp_dept_fk foreign key(deptno) references dept(deptno)
    );
Query OK, 0 rows affected (0.42 sec)
--查看表结构
mysql> desc emp;
+----------+--------------+------+-----+---------+-------+
| Field    | Type         | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| empno    | int(4)       | NO   | PRI | NULL    |       |
| ename    | varchar(20)  | YES  |     | NULL    |       |
| job      | varchar(20)  | YES  |     | NULL    |       |
| mgr      | int(4)       | YES  |     | NULL    |       |
| hiredate | datetime     | YES  |     | NULL    |       |
| sal      | double(10,2) | YES  |     | NULL    |       |
| comm     | double(10,2) | YES  |     | NULL    |       |
| deptno   | int(4)       | YES  | MUL | NULL    |       |
+----------+--------------+------+-----+---------+-------+
8 rows in set (0.00 sec)
--插入数据
mysql> insert into dept values(10,'accounting','beijing');
Query OK, 1 row affected (0.06 sec)
--插入数据
mysql> insert into emp values(7782,'clark','manager',7839,'1988-12-17',2400,0,10);
Query OK, 1 row affected (0.06 sec)
--查看所有数据
mysql> select * from dept;
+--------+------------+---------+
| deptno | dname      | loc     |
+--------+------------+---------+
|     10 | accounting | beijing |
+--------+------------+---------+
1 row in set (0.02 sec)
--查询所有数据
mysql> select * from emp;
+-------+-------+---------+------+---------------------+---------+------+--------+
| empno | ename | job     | mgr  | hiredate            | sal     | comm | deptno |
+-------+-------+---------+------+---------------------+---------+------+--------+
|  7782 | clark | manager | 7839 | 1988-12-17 00:00:00 | 2400.00 | 0.00 |     10 |
+-------+-------+---------+------+---------------------+---------+------+--------+
1 row in set (0.00 sec)


--删除所有数据
mysql> delete from emp;
Query OK, 1 row affected (0.06 sec)
--删除所有数据
mysql> delete from dept;
Query OK, 1 row affected (0.17 sec)
--导入数据
mysql> load data infile 'D:/aheadetp基地实训相关/java11期教学/mysql/dep_.txt' into table dept;
Query OK, 4 rows affected (0.06 sec)
Records: 4  Deleted: 0  Skipped: 0  Warnings: 0
--查询所有数据
mysql> select * from dept;
+--------+------------+----------+
| deptno | dname      | loc      |
+--------+------------+----------+
|     10 | accounting | beijing  |
|     20 | research   | nanchang |
|     30 | sales      | shanghai |
|     40 | operations | shenzhen |
+--------+------------+----------+


7 rows in set (0.00 sec)
--从外表文件导入表数据
mysql> load data infile 'D:/aheadetp基地实训相关/java11期教学/mysql/emp_.txt' into table emp;
Query OK, 14 rows affected (0.09 sec)
Records: 14  Deleted: 0  Skipped: 0  Warnings: 0


mysql> select * from emp;
+-------+--------+-----------+------+---------------------+---------+---------+--------+
| empno | ename  | job       | mgr  | hiredate            | sal     | comm    | deptno |
+-------+--------+-----------+------+---------------------+---------+---------+--------+
|  7369 | smith  | clerk     | 7902 | 1980-12-17 00:00:00 |  800.00 |    0.00 |     20 |
|  7469 | allen  | salesman  | 7698 | 1981-02-20 00:00:00 | 1600.00 |  300.00 |     30 |
|  7521 | ward   | salesman  | 7698 | 1981-02-22 00:00:00 | 1200.00 |  500.00 |     30 |
|  7566 | jones  | manager   | 7839 | 1981-04-01 00:00:00 | 2800.00 |    0.00 |     20 |
|  7654 | martin | salesman  | 7698 | 1981-08-29 00:00:00 | 1200.00 |    0.00 |     30 |
|  7698 | blake  | manager   | 7839 | 1981-05-01 00:00:00 | 2800.00 | 1400.00 |     30 |
|  7782 | clark  | manager   | 7839 | 1988-12-17 00:00:00 | 2400.00 |    0.00 |     10 |
|  7788 | scott  | analyst   | 7566 | 1987-04-19 00:00:00 | 3000.00 |    0.00 |     20 |
|  7839 | king   | president | NULL | 1981-11-17 00:00:00 | 5000.00 |    NULL |     10 |
|  7844 | turner | salesman  | 7698 | 1981-09-08 00:00:00 | 1800.00 |    0.00 |     30 |
|  7876 | adams  | clerk     | 7788 | 1987-05-23 00:00:00 | 1300.00 |    0.00 |     20 |
|  7900 | james  | clerk     | 7698 | 1981-12-03 00:00:00 | 1300.00 |    0.00 |     30 |
|  7902 | ford   | analyst   | 7566 | 1981-12-03 00:00:00 | 3000.00 |    0.00 |     20 |
|  7934 | miller | clerk     | 7782 | 1982-01-23 00:00:00 | 1300.00 |   55.00 |     10 |
+-------+--------+-----------+------+---------------------+---------+---------+--------+
14 rows in set (0.02 sec)


mysql> desc dept;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| deptno | int(4)      | NO   | PRI | NULL    |       |
| dname  | varchar(20) | YES  |     | NULL    |       |
| loc    | varchar(20) | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
3 rows in set (0.02 sec)


mysql> select * from dept;
+--------+------------+----------+
| deptno | dname      | loc      |
+--------+------------+----------+
|     10 | accounting | beijing  |
|     20 | research   | nanchang |
|     30 | sales      | shanghai |
|     40 | operations | shenzhen |
+--------+------------+----------+
4 rows in set (0.00 sec)
--统计表的记录总数
mysql> select count(*) from emp;
+----------+
| count(*) |
+----------+
|       14 |
+----------+
1 row in set (0.00 sec)
--查询某个字段数据,并取消重复行
mysql> select distinct deptno from emp;
+--------+
| deptno |
+--------+
|     10 |
|     20 |
|     30 |
+--------+
3 rows in set (0.00 sec)
--条件查询,名字为'smith'
mysql> select sal,job,deptno from emp where ename='smith'
    -> ;
+--------+-------+--------+
| sal    | job   | deptno |
+--------+-------+--------+
| 800.00 | clerk |     20 |
+--------+-------+--------+
1 row in set (0.00 sec)
--查询年薪(注意null值)
mysql> select ename,sal*12+comm from emp;
+--------+-------------+
| ename  | sal*12+comm |
+--------+-------------+
| smith  |     9600.00 |
| allen  |    19500.00 |
| ward   |    14900.00 |
| jones  |    33600.00 |
| martin |    14400.00 |
| blake  |    35000.00 |
| clark  |    28800.00 |
| scott  |    36000.00 |
| king   |        NULL |
| turner |    21600.00 |
| adams  |    15600.00 |
| james  |    15600.00 |
| ford   |    36000.00 |
| miller |    15655.00 |
+--------+-------------+
14 rows in set (0.00 sec)
--查询年薪(注意null值)
mysql> select ename,sal*12+ifnull(comm,0) from emp;
+--------+-----------------------+
| ename  | sal*12+ifnull(comm,0) |
+--------+-----------------------+
| smith  |               9600.00 |
| allen  |              19500.00 |
| ward   |              14900.00 |
| jones  |              33600.00 |
| martin |              14400.00 |
| blake  |              35000.00 |
| clark  |              28800.00 |
| scott  |              36000.00 |
| king   |              60000.00 |
| turner |              21600.00 |
| adams  |              15600.00 |
| james  |              15600.00 |
| ford   |              36000.00 |
| miller |              15655.00 |
+--------+-----------------------+
14 rows in set (0.00 sec)
--使用字段别名“年薪”
mysql> select ename,sal*12+ifnull(comm,0) 年工资 from emp;
+--------+----------+
| ename  | 年工资   |
+--------+----------+
| smith  |  9600.00 |
| allen  | 19500.00 |
| ward   | 14900.00 |
| jones  | 33600.00 |
| martin | 14400.00 |
| blake  | 35000.00 |
| clark  | 28800.00 |
| scott  | 36000.00 |
| king   | 60000.00 |
| turner | 21600.00 |
| adams  | 15600.00 |
| james  | 15600.00 |
| ford   | 36000.00 |
| miller | 15655.00 |
+--------+----------+
14 rows in set (0.02 sec)
--查询emp表中工资高于3000员工信息
mysql> select * from emp where sal>3000;
+-------+-------+-----------+------+---------------------+---------+------+--------+
| empno | ename | job       | mgr  | hiredate            | sal     | comm | deptno |
+-------+-------+-----------+------+---------------------+---------+------+--------+
|  7839 | king  | president | NULL | 1981-11-17 00:00:00 | 5000.00 | NULL |     10 |
+-------+-------+-----------+------+---------------------+---------+------+--------+
1 row in set (0.00 sec)
--查询入职晚于'1982-01-01'的员工信息
mysql> select * from emp where hiredate>'1982-01-01';
+-------+--------+---------+------+---------------------+---------+-------+--------+
| empno | ename  | job     | mgr  | hiredate            | sal     | comm  | deptno |
+-------+--------+---------+------+---------------------+---------+-------+--------+
|  7782 | clark  | manager | 7839 | 1988-12-17 00:00:00 | 2400.00 |  0.00 |     10 |
|  7788 | scott  | analyst | 7566 | 1987-04-19 00:00:00 | 3000.00 |  0.00 |     20 |
|  7876 | adams  | clerk   | 7788 | 1987-05-23 00:00:00 | 1300.00 |  0.00 |     20 |
|  7934 | miller | clerk   | 7782 | 1982-01-23 00:00:00 | 1300.00 | 55.00 |     10 |
+-------+--------+---------+------+---------------------+---------+-------+--------+
4 rows in set (0.00 sec)
--查询入职早于'1982-01-01'的员工信息
mysql> select * from emp where hiredate<'1982-01-01';
+-------+--------+-----------+------+---------------------+---------+---------+--------+
| empno | ename  | job       | mgr  | hiredate            | sal     | comm    | deptno |
+-------+--------+-----------+------+---------------------+---------+---------+--------+
|  7369 | smith  | clerk     | 7902 | 1980-12-17 00:00:00 |  800.00 |    0.00 |     20 |
|  7469 | allen  | salesman  | 7698 | 1981-02-20 00:00:00 | 1600.00 |  300.00 |     30 |
|  7521 | ward   | salesman  | 7698 | 1981-02-22 00:00:00 | 1200.00 |  500.00 |     30 |
|  7566 | jones  | manager   | 7839 | 1981-04-01 00:00:00 | 2800.00 |    0.00 |     20 |
|  7654 | martin | salesman  | 7698 | 1981-08-29 00:00:00 | 1200.00 |    0.00 |     30 |
|  7698 | blake  | manager   | 7839 | 1981-05-01 00:00:00 | 2800.00 | 1400.00 |     30 |
|  7839 | king   | president | NULL | 1981-11-17 00:00:00 | 5000.00 |    NULL |     10 |
|  7844 | turner | salesman  | 7698 | 1981-09-08 00:00:00 | 1800.00 |    0.00 |     30 |
|  7900 | james  | clerk     | 7698 | 1981-12-03 00:00:00 | 1300.00 |    0.00 |     30 |
|  7902 | ford   | analyst   | 7566 | 1981-12-03 00:00:00 | 3000.00 |    0.00 |     20 |
+-------+--------+-----------+------+---------------------+---------+---------+--------+
10 rows in set (0.00 sec)
--查询薪水在2000—2500之间的员工信息(使用between... and ...)
mysql> select * from emp where sal between 2000 and 2500;
+-------+-------+---------+------+---------------------+---------+------+--------+
| empno | ename | job     | mgr  | hiredate            | sal     | comm | deptno |
+-------+-------+---------+------+---------------------+---------+------+--------+
|  7782 | clark | manager | 7839 | 1988-12-17 00:00:00 | 2400.00 | 0.00 |     10 |
+-------+-------+---------+------+---------------------+---------+------+--------+
1 row in set (0.00 sec)
--查询名字里面含义's'的,员工的名字和工资
mysql> select ename,sal from emp where ename like '%s%';
+-------+---------+
| ename | sal     |
+-------+---------+
| smith |  800.00 |
| scott | 3000.00 |
+-------+---------+
2 rows in set (0.00 sec)
--查询员工名字中第三个字母是'o'的名字,工资
mysql> select ename ,sal from emp where ename like '__o%';
+-------+---------+
| ename | sal     |
+-------+---------+
| scott | 3000.00 |
+-------+---------+
1 row in set (0.00 sec)
--查询员工编码存在于(123,7782,234,7900)中的信息
mysql> select * from emp where empno in (123,7782,234,7900)
    -> ;
Empty set (0.00 sec)
--查询员工编码存在于(123,345,7782)中的信息
mysql> select * from emp where empno in (123,345,7782);
+-------+-------+---------+------+---------------------+---------+------+--------+
| empno | ename | job     | mgr  | hiredate            | sal     | comm | deptno |
+-------+-------+---------+------+---------------------+---------+------+--------+
|  7782 | clark | manager | 7839 | 1988-12-17 00:00:00 | 2400.00 | 0.00 |     10 |
+-------+-------+---------+------+---------------------+---------+------+--------+
1 row in set (0.00 sec)
--查询员工编码存在于(123,7900,7782)中的信息
mysql> select * from emp where empno in (123,7900,7782);
+-------+-------+---------+------+---------------------+---------+------+--------+
| empno | ename | job     | mgr  | hiredate            | sal     | comm | deptno |
+-------+-------+---------+------+---------------------+---------+------+--------+
|  7782 | clark | manager | 7839 | 1988-12-17 00:00:00 | 2400.00 | 0.00 |     10 |
|  7900 | james | clerk   | 7698 | 1981-12-03 00:00:00 | 1300.00 | 0.00 |     30 |
+-------+-------+---------+------+---------------------+---------+------+--------+
2 rows in set (0.00 sec)
--查询没有上级的员工(错误用法)
mysql> select * from emp where mgr=null;
Empty set (0.00 sec)
--查询没有上级的员工(正确用法)
mysql> select * from emp where mgr is null;
+-------+-------+-----------+------+---------------------+---------+------+--------+
| empno | ename | job       | mgr  | hiredate            | sal     | comm | deptno |
+-------+-------+-----------+------+---------------------+---------+------+--------+
|  7839 | king  | president | NULL | 1981-11-17 00:00:00 | 5000.00 | NULL |     10 |
+-------+-------+-----------+------+---------------------+---------+------+--------+
1 row in set (0.00 sec)
--查询工资高于500或者职位是manager,且名字以j开头的员工信息(歧义用法)
mysql> select * from emp where sal>500 or job='manager' and ename like 'j%';
+-------+--------+-----------+------+---------------------+---------+---------+--------+
| empno | ename  | job       | mgr  | hiredate            | sal     | comm    | deptno |
+-------+--------+-----------+------+---------------------+---------+---------+--------+
|  7369 | smith  | clerk     | 7902 | 1980-12-17 00:00:00 |  800.00 |    0.00 |     20 |
|  7469 | allen  | salesman  | 7698 | 1981-02-20 00:00:00 | 1600.00 |  300.00 |     30 |
|  7521 | ward   | salesman  | 7698 | 1981-02-22 00:00:00 | 1200.00 |  500.00 |     30 |
|  7566 | jones  | manager   | 7839 | 1981-04-01 00:00:00 | 2800.00 |    0.00 |     20 |
|  7654 | martin | salesman  | 7698 | 1981-08-29 00:00:00 | 1200.00 |    0.00 |     30 |
|  7698 | blake  | manager   | 7839 | 1981-05-01 00:00:00 | 2800.00 | 1400.00 |     30 |
|  7782 | clark  | manager   | 7839 | 1988-12-17 00:00:00 | 2400.00 |    0.00 |     10 |
|  7788 | scott  | analyst   | 7566 | 1987-04-19 00:00:00 | 3000.00 |    0.00 |     20 |
|  7839 | king   | president | NULL | 1981-11-17 00:00:00 | 5000.00 |    NULL |     10 |
|  7844 | turner | salesman  | 7698 | 1981-09-08 00:00:00 | 1800.00 |    0.00 |     30 |
|  7876 | adams  | clerk     | 7788 | 1987-05-23 00:00:00 | 1300.00 |    0.00 |     20 |
|  7900 | james  | clerk     | 7698 | 1981-12-03 00:00:00 | 1300.00 |    0.00 |     30 |
|  7902 | ford   | analyst   | 7566 | 1981-12-03 00:00:00 | 3000.00 |    0.00 |     20 |
|  7934 | miller | clerk     | 7782 | 1982-01-23 00:00:00 | 1300.00 |   55.00 |     10 |
+-------+--------+-----------+------+---------------------+---------+---------+--------+
14 rows in set (0.00 sec)
--查询工资高于500或者职位是manager,且名字以j开头的员工信息(正确用法)
mysql> select * from emp where (sal>500 or job='manager') and ename like 'j%';
+-------+-------+---------+------+---------------------+---------+------+--------+
| empno | ename | job     | mgr  | hiredate            | sal     | comm | deptno |
+-------+-------+---------+------+---------------------+---------+------+--------+
|  7566 | jones | manager | 7839 | 1981-04-01 00:00:00 | 2800.00 | 0.00 |     20 |
|  7900 | james | clerk   | 7698 | 1981-12-03 00:00:00 | 1300.00 | 0.00 |     30 |
+-------+-------+---------+------+---------------------+---------+------+--------+
2 rows in set (0.00 sec)
--查询所有员工信息,按工资降序排列
mysql> select * from emp order by sal desc;
+-------+--------+-----------+------+---------------------+---------+---------+--------+
| empno | ename  | job       | mgr  | hiredate            | sal     | comm    | deptno |
+-------+--------+-----------+------+---------------------+---------+---------+--------+
|  7839 | king   | president | NULL | 1981-11-17 00:00:00 | 5000.00 |    NULL |     10 |
|  7788 | scott  | analyst   | 7566 | 1987-04-19 00:00:00 | 3000.00 |    0.00 |     20 |
|  7902 | ford   | analyst   | 7566 | 1981-12-03 00:00:00 | 3000.00 |    0.00 |     20 |
|  7698 | blake  | manager   | 7839 | 1981-05-01 00:00:00 | 2800.00 | 1400.00 |     30 |
|  7566 | jones  | manager   | 7839 | 1981-04-01 00:00:00 | 2800.00 |    0.00 |     20 |
|  7782 | clark  | manager   | 7839 | 1988-12-17 00:00:00 | 2400.00 |    0.00 |     10 |
|  7844 | turner | salesman  | 7698 | 1981-09-08 00:00:00 | 1800.00 |    0.00 |     30 |
|  7469 | allen  | salesman  | 7698 | 1981-02-20 00:00:00 | 1600.00 |  300.00 |     30 |
|  7900 | james  | clerk     | 7698 | 1981-12-03 00:00:00 | 1300.00 |    0.00 |     30 |
|  7876 | adams  | clerk     | 7788 | 1987-05-23 00:00:00 | 1300.00 |    0.00 |     20 |
|  7934 | miller | clerk     | 7782 | 1982-01-23 00:00:00 | 1300.00 |   55.00 |     10 |
|  7654 | martin | salesman  | 7698 | 1981-08-29 00:00:00 | 1200.00 |    0.00 |     30 |
|  7521 | ward   | salesman  | 7698 | 1981-02-22 00:00:00 | 1200.00 |  500.00 |     30 |
|  7369 | smith  | clerk     | 7902 | 1980-12-17 00:00:00 |  800.00 |    0.00 |     20 |
+-------+--------+-----------+------+---------------------+---------+---------+--------+
14 rows in set (0.00 sec)
--查询员工信息,部门号按升序排列,工资按降序排
mysql> select ename ,deptno,sal from emp order by deptno asc,sal desc;
+--------+--------+---------+
| ename  | deptno | sal     |
+--------+--------+---------+
| king   |     10 | 5000.00 |
| clark  |     10 | 2400.00 |
| miller |     10 | 1300.00 |
| ford   |     20 | 3000.00 |
| scott  |     20 | 3000.00 |
| jones  |     20 | 2800.00 |
| adams  |     20 | 1300.00 |
| smith  |     20 |  800.00 |
| blake  |     30 | 2800.00 |
| turner |     30 | 1800.00 |
| allen  |     30 | 1600.00 |
| james  |     30 | 1300.00 |
| martin |     30 | 1200.00 |
| ward   |     30 | 1200.00 |
+--------+--------+---------+
14 rows in set (0.00 sec)


--查询员工的年薪,按升序排列
mysql> select ename,sal*12+ifnull(comm,0) as 年薪 from emp order by 年薪;
+--------+----------+
| ename  | 年薪     |
+--------+----------+
| smith  |  9600.00 |
| martin | 14400.00 |
| ward   | 14900.00 |
| james  | 15600.00 |
| adams  | 15600.00 |
| miller | 15655.00 |
| allen  | 19500.00 |
| turner | 21600.00 |
| clark  | 28800.00 |
| jones  | 33600.00 |
| blake  | 35000.00 |
| ford   | 36000.00 |
| scott  | 36000.00 |
| king   | 60000.00 |
+--------+----------+
14 rows in set (0.00 sec)

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 高二化学学不好怎么办 中考最后一次月考下滑怎么办 物联网卡网速慢怎么办 机械表长时间不带不走了怎么办 高中档案有涂改痕迹怎么办 大学平时成绩为0怎么办 电大英语考试成绩取消了怎么办 网贷评分不足要怎么办 学业水平广东1c怎么办 绣花机速度太慢怎么办 娃脖子有点烂了怎么办 7月省内流量套餐怎么办 qq手游授权失败怎么办 钉钉不够6人创建怎么办 钉钉 不够6个人怎么办 plsql删错了表怎么办 吊兰长出来的茎怎么办 防水台鞋跟太高怎么办 证件照头部比例过大怎么办 特岗照片传错了怎么办 打印报名表照片不显示怎么办 刚买的床有味道怎么办 雨刷器角度太小怎么办 四个月宝宝闹觉怎么办 怀孕六个月睡不好觉怎么办? 婴儿睡不好觉总是吵闹怎么办 婴儿鼻塞睡不好觉怎么办 玩英雄联盟鼠标变亮白怎么办 练芭蕾脚受伤了怎么办 高三了英语30分怎么办 要上高中了英语不好怎么办 高二了数学不好怎么办 高二函数不好怎么办啊 输乳怎么办腺病有什么妇症状 屁股上坐的发黑怎么办 车屁股撞了个洞怎么办 腰压迫的腿疼怎么办 肩胛提肌固定不住怎么办 胳膊粗后背肉多怎么办 2岁儿童 肋骨边缘外翻怎么办 5岁宝宝盆骨前倾怎么办