zoukankan      html  css  js  c++  java
  • MySQL-SQL基础1

     
    
    #插入
    
    mysql> insert into emp values('zzx1','2002-03-09','2009-04-03','2001',3,22);
    
    Query OK, 1 row affected (0.00 sec)
    
     
    
    mysql> insert into emp values('ttx2','20023-04-10','2010-03-04','2002',4,23);
    
    ERROR 1292 (22007): Incorrect date value: '20023-04-10' for column 'birth' at row 1
    
     
    
    mysql> insert into emp values('ttx2','2023-04-10','2010-03-04','2002',4,23);
    
    Query OK, 1 row affected (0.00 sec)
    
     
    
    mysql> select * from emp;
    
    +-------+------------+------------+---------+--------+------+
    
    | ename | birth      | hirdate    | sal     | deptno | age1 |
    
    +-------+------------+------------+---------+--------+------+
    
    | zzx1  | 2000-01-01 | 2000-01-01 | 2000.00 |      1 |   21 |
    
    | zzx1  | 2002-03-09 | 2009-04-03 | 2001.00 |      3 |   22 |
    
    | ttx2  | 2023-04-10 | 2010-03-04 | 2002.00 |      4 |   23 |
    
    +-------+------------+------------+---------+--------+------+
    
    3 rows in set (0.00 sec)
    
     
    
    #更新
    
    mysql> update emp set sal=4000 where ename='ttx2';
    
    Query OK, 1 row affected (0.00 sec)
    
    Rows matched: 1  Changed: 1  Warnings: 0
    
     
    
    mysql> select * from emp;
    
    +-------+------------+------------+---------+--------+------+
    
    | ename | birth      | hirdate    | sal     | deptno | age1 |
    
    +-------+------------+------------+---------+--------+------+
    
    | zzx1  | 2000-01-01 | 2000-01-01 | 2000.00 |      1 |   21 |
    
    | zzx1  | 2002-03-09 | 2009-04-03 | 2001.00 |      3 |   22 |
    
    | ttx2  | 2023-04-10 | 2010-03-04 | 4000.00 |      4 |   23 |
    
    +-------+------------+------------+---------+--------+------+
    
    3 rows in set (0.00 sec)
    
     
    
    mysql> select distinct deptno from emp;
    
    +--------+
    
    | deptno |
    
    +--------+
    
    |      1 |
    
    |      3 |
    
    |      4 |
    
    +--------+
    
    3 rows in set (0.01 sec)
    
     
    
     
    
    #查询
    
     
    
    mysql> select * from emp where deptno=1;
    
    +-------+------------+------------+---------+--------+------+
    
    | ename | birth      | hirdate    | sal     | deptno | age1 |
    
    +-------+------------+------------+---------+--------+------+
    
    | zzx1  | 2000-01-01 | 2000-01-01 | 2000.00 |      1 |   21 |
    
    +-------+------------+------------+---------+--------+------+
    
    1 row in set (0.00 sec)
    
     
    
    mysql> select * from emp where deptno=2;
    
    Empty set (0.00 sec)
    
     
    
    mysql> select * from emp where deptno=3;
    
    +-------+------------+------------+---------+--------+------+
    
    | ename | birth      | hirdate    | sal     | deptno | age1 |
    
    +-------+------------+------------+---------+--------+------+
    
    | zzx1  | 2002-03-09 | 2009-04-03 | 2001.00 |      3 |   22 |
    
    +-------+------------+------------+---------+--------+------+
    
    1 row in set (0.00 sec)
    
     
    
     
    
    mysql> select * from emp order by sal;
    
    +-------+------------+------------+---------+--------+------+
    
    | ename | birth      | hirdate    | sal     | deptno | age1 |
    
    +-------+------------+------------+---------+--------+------+
    
    | zzx1  | 2000-01-01 | 2000-01-01 | 2000.00 |      1 |   21 |
    
    | zzx1  | 2002-03-09 | 2009-04-03 | 2001.00 |      3 |   22 |
    
    | ttx2  | 2023-04-10 | 2010-03-04 | 4000.00 |      4 |   23 |
    
    +-------+------------+------------+---------+--------+------+
    
    3 rows in set (0.00 sec)
    
     
    
    mysql> select * from emp order by deptno;
    
    +-------+------------+------------+---------+--------+------+
    
    | ename | birth      | hirdate    | sal     | deptno | age1 |
    
    +-------+------------+------------+---------+--------+------+
    
    | zzx1  | 2000-01-01 | 2000-01-01 | 2000.00 |      1 |   21 |
    
    | zzx1  | 2002-03-09 | 2009-04-03 | 2001.00 |      3 |   22 |
    
    | ttx2  | 2023-04-10 | 2010-03-04 | 4000.00 |      4 |   23 |
    
    +-------+------------+------------+---------+--------+------+
    
    3 rows in set (0.00 sec)
    
     
    
    #查询排序
    
     
    
    mysql> select * from emp order by deptno,sal desc;
    
    +-------+------------+------------+---------+--------+------+
    
    | ename | birth      | hirdate    | sal     | deptno | age1 |
    
    +-------+------------+------------+---------+--------+------+
    
    | zzx1  | 2000-01-01 | 2000-01-01 | 2000.00 |      1 |   21 |
    
    | zzx1  | 2002-03-09 | 2009-04-03 | 2001.00 |      3 |   22 |
    
    | ttx2  | 2023-04-10 | 2010-03-04 | 4000.00 |      4 |   23 |
    
    +-------+------------+------------+---------+--------+------+
    
    3 rows in set (0.00 sec)
    
     
    
    #分页查询 
    
    mysql> select * from emp order by sal limit 3;
    
    +-------+------------+------------+---------+--------+------+
    
    | ename | birth      | hirdate    | sal     | deptno | age1 |
    
    +-------+------------+------------+---------+--------+------+
    
    | zzx1  | 2000-01-01 | 2000-01-01 | 2000.00 |      1 |   21 |
    
    | zzx1  | 2002-03-09 | 2009-04-03 | 2001.00 |      3 |   22 |
    
    | ttx2  | 2023-04-10 | 2010-03-04 | 4000.00 |      4 |   23 |
    
    +-------+------------+------------+---------+--------+------+
    
    3 rows in set (0.00 sec)
    
     
    
    mysql> select * from emp order by sal limit 1,3;
    
    +-------+------------+------------+---------+--------+------+
    
    | ename | birth      | hirdate    | sal     | deptno | age1 |
    
    +-------+------------+------------+---------+--------+------+
    
    | zzx1  | 2002-03-09 | 2009-04-03 | 2001.00 |      3 |   22 |
    
    | ttx2  | 2023-04-10 | 2010-03-04 | 4000.00 |      4 |   23 |
    
    +-------+------------+------------+---------+--------+------+
    
    2 rows in set (0.00 sec)
    
     
    
    #查询表总数
    
    mysql> select count(1) from emp;
    
    +----------+
    
    | count(1) |
    
    +----------+
    
    |        3 |
    
    +----------+
    
    1 row in set (0.00 sec)
    
     
    
    #针对emp表进行统计deptno的个数
    
    mysql> select deptno,count(1) from emp group by deptno;
    
    +--------+----------+
    
    | deptno | count(1) |
    
    +--------+----------+
    
    |      1 |        1 |
    
    |      3 |        1 |
    
    |      4 |        1 |
    
    +--------+----------+
    
    3 rows in set (0.00 sec)
    
     
    
    #对ename排序并计算
    
    mysql> select ename,count(1) from emp group by ename;
    
    +-------+----------+
    
    | ename | count(1) |
    
    +-------+----------+
    
    | ttx2  |        1 |
    
    | zzx1  |        2 |
    
    +-------+----------+
    
    2 rows in set (0.00 sec)
    
     
    
    #对sal排序并计算
    
    mysql> select sal,count(1) from emp group by sal;
    
    +---------+----------+
    
    | sal     | count(1) |
    
    +---------+----------+
    
    | 2000.00 |        1 |
    
    | 2001.00 |        1 |
    
    | 4000.00 |        1 |
    
    +---------+----------+
    
    3 rows in set (0.00 sec)
    
     
    
    #对age1排序并计算
    
    mysql> select age1,count(1) from emp group by age1;
    
    +------+----------+
    
    | age1 | count(1) |
    
    +------+----------+
    
    |   21 |        1 |
    
    |   22 |        1 |
    
    |   23 |        1 |
    
    +------+----------+
    
    3 rows in set (0.01 sec)
    
     
    
    #查看emp表结构 
    
    mysql> desc emp;
    
    +---------+---------------+------+-----+---------+-------+
    
    | Field   | Type          | Null | Key | Default | Extra |
    
    +---------+---------------+------+-----+---------+-------+
    
    | ename   | varchar(20)   | YES  |     | NULL    |       |
    
    | birth   | date          | YES  |     | NULL    |       |
    
    | hirdate | date          | YES  |     | NULL    |       |
    
    | sal     | decimal(10,2) | YES  |     | NULL    |       |
    
    | deptno  | int(2)        | YES  |     | NULL    |       |
    
    | age1    | int(4)        | YES  |     | NULL    |       |
    
    +---------+---------------+------+-----+---------+-------+
    
    6 rows in set (0.00 sec)
    
     
    
    #对birth列排序并计算
    
    mysql> select birth,count(1) from emp group by birth;
    
    +------------+----------+
    
    | birth      | count(1) |
    
    +------------+----------+
    
    | 2000-01-01 |        1 |
    
    | 2002-03-09 |        1 |
    
    | 2023-04-10 |        1 |
    
    +------------+----------+
    
    3 rows in set (0.00 sec)
    
     
    
    #对hirdate列排序并计算
    
    mysql> select hirdate,count(1) from emp group by hirdate;
    
    +------------+----------+
    
    | hirdate    | count(1) |
    
    +------------+----------+
    
    | 2000-01-01 |        1 |
    
    | 2009-04-03 |        1 |
    
    | 2010-03-04 |        1 |
    
    +------------+----------+
    
    3 rows in set (0.00 sec)
    
     
    
    #统计部门人数同时统计总人数
    
    mysql> select deptno,count(1) from emp group by deptno with rollup;
    
    +--------+----------+
    
    | deptno | count(1) |
    
    +--------+----------+
    
    |      1 |        1 |
    
    |      3 |        1 |
    
    |      4 |        1 |
    
    |   NULL |        3 |
    
    +--------+----------+
    
    4 rows in set (0.00 sec)
    
     
    
     
    
    #统计ename同时统计总人数
    
    mysql> select ename,count(1) from emp group by ename with rollup;
    
    +-------+----------+
    
    | ename | count(1) |
    
    +-------+----------+
    
    | ttx2  |        1 |
    
    | zzx1  |        2 |
    
    | NULL  |        3 |
    
    +-------+----------+
    
    3 rows in set (0.00 sec)
    
     
    
     #统计出生人数同时统计总人数
    
    mysql> select birth,count(1) from emp group by birth with rollup;
    
    +------------+----------+
    
    | birth      | count(1) |
    
    +------------+----------+
    
    | 2000-01-01 |        1 |
    
    | 2002-03-09 |        1 |
    
    | 2023-04-10 |        1 |
    
    | NULL       |        3 |
    
    +------------+----------+
    
    4 rows in set (0.00 sec)
    
     
    
     
    
    #统计录用时间同时统计总人数 
    
    mysql> select hirdate,count(1) from emp group by hirdate with rollup;
    
    +------------+----------+
    
    | hirdate    | count(1) |
    
    +------------+----------+
    
    | 2000-01-01 |        1 |
    
    | 2009-04-03 |        1 |
    
    | 2010-03-04 |        1 |
    
    | NULL       |        3 |
    
    +------------+----------+
    
    4 rows in set (0.00 sec)
    
     
    
    #统计薪资数同时统计总人数 
    
    mysql> select sal,count(1) from emp group by sal with rollup;
    
    +---------+----------+
    
    | sal     | count(1) |
    
    +---------+----------+
    
    | 2000.00 |        1 |
    
    | 2001.00 |        1 |
    
    | 4000.00 |        1 |
    
    |    NULL |        3 |
    
    +---------+----------+
    
    4 rows in set (0.00 sec)
    
     
    
     #统计年龄同时统计总人数 
    
    mysql> select age1,count(1) from emp group by age1 with rollup;
    
    +------+----------+
    
    | age1 | count(1) |
    
    +------+----------+
    
    |   21 |        1 |
    
    |   22 |        1 |
    
    |   23 |        1 |
    
    | NULL |        3 |
    
    +------+----------+
    
    4 rows in set (0.00 sec)
    
     
    
     
    
    #统计部门大于0的部门 
    
    mysql> select deptno,count(1) from emp group by deptno having count(1)>0;
    
    +--------+----------+
    
    | deptno | count(1) |
    
    +--------+----------+
    
    |      1 |        1 |
    
    |      3 |        1 |
    
    |      4 |        1 |
    
    +--------+----------+
    
    3 rows in set (0.00 sec)
    
     
    
    #计算薪资总数、最高薪资、最低薪资
    
    mysql> select sum(sal),max(sal),min(sal) from emp;
    
    +----------+----------+----------+
    
    | sum(sal) | max(sal) | min(sal) |
    
    +----------+----------+----------+
    
    |  8001.00 |  4000.00 |  2000.00 |
    
    +----------+----------+----------+
    
    1 row in set (0.00 sec)
    
     
    
    #联表查询
    
    mysql> create table dept(deptno int(10),deptname varchar(20));
    
    Query OK, 0 rows affected (0.01 sec)
    
     
    
    mysql> insert into dept values(1,'tech');
    
    Query OK, 1 row affected (0.00 sec)
    
     
    
    mysql> insert into dept values(2,'sale');
    
    Query OK, 1 row affected (0.00 sec)
    
     
    
    mysql> insert into dept values(3,'hr');
    
    Query OK, 1 row affected (0.00 sec)
    
     
    
    mysql> select ename from emp where emp.deptno=emp.deptno;
    
    +-------+
    
    | ename |
    
    +-------+
    
    | zzx1  |
    
    | zzx1  |
    
    | ttx2  |
    
    +-------+
    
    3 rows in set (0.00 sec)
    
     
    
    #左连接查询
    
    mysql> select ename,deptname from emp left join dept on emp.deptno=dept.deptno;
    
    +-------+----------+
    
    | ename | deptname |
    
    +-------+----------+
    
    | zzx1  | tech     |
    
    | zzx1  | hr       |
    
    | ttx2  | NULL     |
    
    +-------+----------+
    
    3 rows in set (0.00 sec)
    
     
    
    #右连接查询
    
    mysql> select ename,deptname from dept right join emp on dept.deptno=emp.deptno;
    
    +-------+----------+
    
    | ename | deptname |
    
    +-------+----------+
    
    | zzx1  | tech     |
    
    | zzx1  | hr       |
    
    | ttx2  | NULL     |
    
    +-------+----------+
    
    3 rows in set (0.00 sec)
    
     
    
    mysql> select * from emp;
    
    +-------+------------+------------+---------+--------+------+
    
    | ename | birth      | hirdate    | sal     | deptno | age1 |
    
    +-------+------------+------------+---------+--------+------+
    
    | zzx1  | 2000-01-01 | 2000-01-01 | 2000.00 |      1 |   21 |
    
    | zzx1  | 2002-03-09 | 2009-04-03 | 2001.00 |      3 |   22 |
    
    | ttx2  | 2023-04-10 | 2010-03-04 | 4000.00 |      4 |   23 |
    
    +-------+------------+------------+---------+--------+------+
    
    3 rows in set (0.00 sec)
    
     
    
    mysql> select * from dept;
    
    +--------+----------+
    
    | deptno | deptname |
    
    +--------+----------+
    
    |      1 | tech     |
    
    |      2 | sale     |
    
    |      3 | hr       |
    
    +--------+----------+
    
    3 rows in set (0.01 sec)
    
     
    
    mysql> insert into dept values(4,'sl');
    
    Query OK, 1 row affected (0.00 sec)
    
     
    
    mysql> insert into emp values('ssss','2019-01-01','2018-01-01',5000,2,24);
    
    Query OK, 1 row affected (0.00 sec)
    
     
    
    mysql> select * from dept;
    
    +--------+----------+
    
    | deptno | deptname |
    
    +--------+----------+
    
    |      1 | tech     |
    
    |      2 | sale     |
    
    |      3 | hr       |
    
    |      4 | sl       |
    
    +--------+----------+
    
    4 rows in set (0.00 sec)
    
     
    
    mysql> select * from emp;
    
    +-------+------------+------------+---------+--------+------+
    
    | ename | birth      | hirdate    | sal     | deptno | age1 |
    
    +-------+------------+------------+---------+--------+------+
    
    | zzx1  | 2000-01-01 | 2000-01-01 | 2000.00 |      1 |   21 |
    
    | zzx1  | 2002-03-09 | 2009-04-03 | 2001.00 |      3 |   22 |
    
    | ttx2  | 2023-04-10 | 2010-03-04 | 4000.00 |      4 |   23 |
    
    | ssss  | 2019-01-01 | 2018-01-01 | 5000.00 |      2 |   24 |
    
    +-------+------------+------------+---------+--------+------+
    
    4 rows in set (0.00 sec)
    
     
    
    mysql> select ename,deptname from emp left join dept on emp.deptno=dept.deptno;
    
    +-------+----------+
    
    | ename | deptname |
    
    +-------+----------+
    
    | zzx1  | tech     |
    
    | ssss  | sale     |
    
    | zzx1  | hr       |
    
    | ttx2  | sl       |
    
    +-------+----------+
    
    4 rows in set (0.00 sec)
    
     
    
    mysql> select ename,deptname from dept right join emp on dept.deptno=emp.deptno;
    
    +-------+----------+
    
    | ename | deptname |
    
    +-------+----------+
    
    | zzx1  | tech     |
    
    | ssss  | sale     |
    
    | zzx1  | hr       |
    
    | ttx2  | sl       |
    
    +-------+----------+
    
    4 rows in set (0.00 sec)
    
     
    
     
  • 相关阅读:
    Hard 随机洗牌函数 @CareerCup
    Hard 随机选择subset @CareerCup
    Hard 计算0到n之间2的个数 @CareerCup
    Django admin进阶
    hdu 5630 Rikka with Chess
    PHP 表单验证
    PHP 表单验证
    PHP 表单验证
    PHP 表单验证
    PHP 表单处理
  • 原文地址:https://www.cnblogs.com/drizzle-xu/p/10253667.html
Copyright © 2011-2022 走看看