• 学习MySQL-第二章


    目录

    7,导入提前准备好的数据

    怎么将sql文件中的数据导入呢?

    8,关于导入的这几张表

    怎么查看表中的数据呢?

    9,不看表中的数据,只看表的结构,有一个命令:

    desc 表名;

    describe(描述)缩写为:desc

    10,简单查询

    10.1查询一个字段?

    补充:

    10.2查询多个字段?

    10.3查询所有字段?

    10.4给查询的列起别名?

    10.5,计算员工年薪?sal*12


    下面需要用到的sql文件

    链接:百度网盘 请输入提取码
    提取码:6666

    7,导入提前准备好的数据

    怎么将sql文件中的数据导入呢

    mysql-> source E:\mysqldocument\bjpowernode.sql;//导入bjpowernode这个sql文件

    后面这个路径是我们sql文件所在的路径

    注意:路径中不能有中文!还有就是用这个命令之前要执行一个命令

    也就是mysql-> use XXX;

    这个是使用某个数据库的命令,我们在导入sql文件前要先使用一个数据库

    我们的sql就会导入到use的数据库当中

    8,关于导入的这几张表

    我们导入的这个sql文件中有几个表

    mysql> show tables;//展示表

    +----------------------+

    | Tables_in_test    |

    +----------------------+

    | dept                    |

    | emp                    |

    | salgrade             |

    +----------------------+

    dept是部门表

    emp是员工表

    salgrade是工资等级表

    怎么查看表中的数据呢?

    select * from 表名; //统一执行这个SQL语句

    mysql-> select * from emp;//从emp表查询所有数据

     mysql-> select * from dept;//从dept表查询所有数据

     mysql-> select * from salgrade;//从salgrade表查询所有字段

    9,不看表中的数据,只看表的结构,有一个命令:

    desc 表名;

    describe(描述)缩写为:desc

    mysql-> desc dept;//查看dept表的结构

    +-------------+-----------------+-------+------+-----------+---------+

    | Field        | Type             | Null   | Key | Default  | Extra  |

    +-------------+-----------------+-------+------+-----------+---------+

    | DEPTNO | int                 | NO   | PRI | NULL     |            |部门编号

    | DNAME   | varchar(14)  | YES  |        | NULL     |           |部门名字

    | LOC         | varchar(13)  | YES  |        | NULL     |           |地理位置

    +-------------+-----------------+-------+------+------------+--------+

    mysql-> desc emp;//查看emp表的结构

    +----------------+-------------------+---------+------+-----------+-----------+

    | Field            | Type                | Null    | Key | Default  | Extra     |

    +----------------+--------------------+--------+------+-----------+-----------+

    | EMPNO      | int                     | NO    | PRI | NULL     |              |员工编号

    | ENAME      | varchar(10)       | YES  |        | NULL     |              |员工姓名

    | JOB            | varchar(9)         | YES  |        | NULL     |              |工作岗位

    | MGR           | int                     | YES  |        | NULL     |              |上级编号

    | HIREDATE | date                  | YES  |        | NULL     |              |入职日期

    | SAL            | double(7,2)       | YES  |        | NULL     |              |工资

    | COMM       | double(7,2)       | YES  |        | NULL     |              |补助

    | DEPTNO    | int                     | YES  |        | NULL     |              |部门编号

    +---------------+-------------------+---------+------+------------+-----------+

    mysql-> desc salgrade;//查看salgrade表的结构

    +-----------+--------+---------+---------+-----------+--------+

    | Field      | Type  | Null     | Key     | Default | Extra  |

    +-----------+--------+---------+---------+-----------+--------+

    | GRADE | int      | YES    |            | NULL    |           |工资等级

    | LOSAL  | int      | YES    |             | NULL   |            |最低工资

    | HISAL   | int      | YES    |             | NULL   |            |最高工资

    +-----------+--------+---------+----------+----------+---------+

    10,简单查询

    10.1查询一个字段?

            select 字段名 from 表名;

    其中要注意

            select和from都是关键字

            字段名和表名都是标识符

    强调:

            对于SQL语句来说,是通用的

            所有的SQL语句以”;”结尾

            另外SQL语句不区分大小写,都行

    例如:查询部门名字?                       

    mysql> select DNAME from dept;//查询dept表中的dname字段

    +----------------------+

    | DNAME              |

    +----------------------+

    | ACCOUNTING   |

    | RESEARCH       |

    | SALES               |

    | OPERATIONS   |

    +---------------------+

    补充:

    我们知道select DNAME是查询DNAME这个字段,那select  ‘DNAME’是什么结果

    mysql> select 'DNAME' as result from dept;//select后面直接跟”字面量/字面值”

    +--------------+

    | result        |

    +--------------+

    | DNAME    |

    | DNAME    |

    | DNAME    |

    | DNAME    |

    +--------------+

    as用来起别名,后面会说

    这个命令返回了dept表对应行数的字面值的一列

    这个没法解释,记住就行了。如果select后面跟的是字面量/字面值的时候

    会借助后面表的结构的行数返回对应的一列,这个没什么原因,就是这个样

    mysql> select 1000 from dept;//1000也是被当做一个字面量/字面值

    +--------+

    | 1000  |

    +--------+

    | 1000  |

    | 1000  |

    | 1000  |

    | 1000  |

    +--------+

    结论:select后面可以跟某个表的字段名(可以等同看做变量名)

    也可以跟字面量/字面值(数据)

    10.2查询多个字段?

            使用逗号’,’隔开

    例如:查询部门编号和部门名?

    mysql> select DEPTNO,DNAME from dept;//查询dept表中的deptno和dname字段

    +------------+------------------------+

    | DEPTNO | DNAME               |

    +-------------+-----------------------+

    |     10        | ACCOUNTING    |

    |     20        | RESEARCH        |

    |     30        | SALES                |

    |     40        | OPERATIONS    |

    +-------------+-----------------------+

    10.3查询所有字段?

            第一种方式:可以把所有字段都写上

            select a,b,c,d,e,f.... from 表名;

            第二种方式:可以使用*

            select * from 表名;

    mysql> select * from dept;//查询dept表中所有字段

    +-------------+--------------------+-----------------+

    | DEPTNO | DNAME           | LOC              |

    +------------+---------------------+-----------------+

    |     10       | ACCOUNTING | NEW YORK |

    |     20       | RESEARCH     | DALLAS       |

    |     30       | SALES              | CHICAGO   |

    |     40       | OPERATIONS  | BOSTON     |

    +------------+-------------------+-------------------+

    这种方式的缺点:

    1. 效率低
    2. 可读性差

    在实际开发中不建议,自己玩没问题

    你可以在DOS命令窗口中想快速的看一看全表数据可以采取这种方式

    实际开发中还是建议把*写成字段的形式

    10.4给查询的列起别名?

    mysql> select dname as deptname from dept;//给dept表中dname字段起一个deptname的别名

    +-----------+---------------------+

    | deptno   | deptname         |

    +-----------+---------------------+

    |     10      | ACCOUNTING |

    |     20      | RESEARCH     |

    |     30      | SALES              |

    |     40      | OPERATIONS  |

    +------------+--------------------+

    使用as关键字起别名

    注意:只是将显示的查询结果列名显示为deptname,原表列名还是叫:dname

    记住:select语句是永远不会进行修改操作的(因为只负责查询)

    as关键字可以省略吗?可以的,用空格代替

    mysql> select dname deptname from dept;//用空格给detp表中的dname字段起一个deptname的别名

    假设起别名的时候,别名里面有空格,怎么办?

    mysql> select deptno,dname dept name from dept;

    DBMS看到这样的语句,进行SQL语句的编译,不符合语法,编译报错

    怎么解决?

    1. mysql> select dname ‘dept name’ from dept;//把别名用单引号括起来
    2. mysql> select dname “dept name” from dept;//或者把别名用双引号括起来
    3. //注意:sql最好使用单引号,双引号不规范

    +----------------------+

    | dept name          |

    +----------------------+

    | ACCOUNTING   |

    | RESEARCH       |

    | SALES                |

    | OPERATIONS   |

    +----------------------+

    注意:在所有的数据库当中,字符串统一使用单引号括起来

    单引号是标准,双引号在oracle数据库中用不了,但是在mysql中可以使用

    再次强调:数据库中的字符串都是采用单引号括起来,这是标准的

    双引号不标准

    10.5,计算员工年薪?sal*12

    mysql> select ENAME,SAL from emp;//查询emp表中的ename和sal字段

    +--------------+---------------+

    | ENAME     | SAL           |

    +--------------+---------------+

    | SMITH      |  800.00      |

    | ALLEN      | 1600.00     |

    | WARD      | 1250.00     |

    | JONES     | 2975.00     |

    | MARTIN   | 1250.00     |

    | BLAKE     | 2850.00     |

    | CLARK     | 2450.00    |

    | SCOTT     | 3000.00    |

    | KING        | 5000.00    |

    | TURNER  | 1500.00    |

    | ADAMS    | 1100.00     |

    | JAMES    |  950.00      |

    | FORD      | 3000.00     |

    | MILLER   | 1300.00     |

    +-------------+---------------+

    mysql> select ENAME,SAL*12 from emp;//结论:字段可以使用使用数学表达式!

    +--------------+-----------------+

    | ENAME    | SAL*12         |

    +--------------+-----------------+

    | SMITH      |  9600.00       |

    | ALLEN      | 19200.00      |

    | WARD      | 15000.00      |

    | JONES     | 35700.00      |

    | MARTIN   | 15000.00      |

    | BLAKE     | 34200.00      |

    | CLARK    | 29400.00      |

    | SCOTT    | 36000.00      |

    | KING       | 60000.00      |

    | TURNER | 18000.00      |

    | ADAMS   | 13200.00      |

    | JAMES    | 11400.00     |

    | FORD     | 36000.00      |

    | MILLER  | 15600.00      |

    +------------+-----------------+

    mysql> select ENAME,SAL*12 as yearsal from emp;//给SAL*12起别名

    +--------------+----------------+

    | ENAME    | yearsal         |

    +--------------+----------------+

    | SMITH      |  9600.00      |

    | ALLEN      | 19200.00     |

    | WARD      | 15000.00     |

    | JONES     | 35700.00     |

    | MARTIN   | 15000.00     |

    | BLAKE     | 34200.00     |

    | CLARK    | 29400.00     |

    | SCOTT    | 36000.00     |

    | KING       | 60000.00     |

    | TURNER | 18000.00     |

    | ADAMS   | 13200.00     |

    | JAMES    | 11400.00     |

    | FORD     | 36000.00     |

    | MILLER  | 15600.00     |

    +------------+-------------------+

    mysql> select ENAME,SAL*12 as '年薪' from emp;//别名是中文,用单引号括起来

    +--------------+------------------+

    | ENAME    | 年薪               |

    +-------------+-------------------+

    | SMITH     |  9600.00        |

    | ALLEN     | 19200.00       |

    | WARD     | 15000.00       |

    | JONES    | 35700.00       |

    | MARTIN  | 15000.00       |

    | BLAKE    | 34200.00       |

    | CLARK    | 29400.00      |

    | SCOTT    | 36000.00      |

    | KING       | 60000.00      |

    | TURNER | 18000.00      |

    | ADAMS   | 13200.00      |

    | JAMES    | 11400.00      |

    | FORD     | 36000.00       |

    | MILLER  | 15600.00       |

    +------------+-------------------+

  • 相关阅读:
    BGP高级特性——BGP路由控制
    在pycharm中运行js文件,附加node.js下载步骤
    TCP 协议的相关(部分)特性
    云堡垒机和软件堡垒机哪个好?区别是什么?
    Facebook广告投放技巧
    postgresql -数据库事务与并发控制
    远程debug调试
    二叉树基础知识概览
    【21天学习挑战赛】折半查找
    P5682 [CSP-J2019 江西] 次大值
  • 原文地址:https://blog.csdn.net/qq_52905520/article/details/126645566