学习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语句的编译,不符合语法,编译报错

怎么解决?

mysql> select dname ‘dept name’ from dept;//把别名用单引号括起来

mysql> select dname “dept name” from dept;//或者把别名用双引号括起来
//注意: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       |

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

猜你喜欢

转载自blog.csdn.net/qq_52905520/article/details/126645566
今日推荐