我们学习的怎么管理逻辑空间,怎么创建数据表,怎么定义字段,怎么创建索引,这些都是DDL语句。从本次课开始,我们来学习DML语句,也就是该如何增删改查操作数据。我们学习DML语句的前提是数据表要有足够多的数据,之前我们在学习DDL语句的时候虽然说创建了一些数据表,但是数据表中的记录都太少了,所以我写好了一个SQL文件,里面有创建数据表和一些初始数据供我们学习使用,只需要执行这个sql文件就可以了,那接下来,我把这个sql文件中的数据表和数据导入到咱们mysql数据库里边,那么为了避免和已经存在的数据表发生冲突,我把的数据表和新的数据都保存在新的逻辑空间里边。
一、sql源文件导入sql的过程
新建数据库--填写新数据库名称--运行sql文件--选择demo文件--开始运行--刷新
二、数据表表格说明
t_dept部门表:只有3个字段来构成,比如说第一个字段叫做 deptno是部门的编号,那么有4条数据,它的部门编号儿分别是10,20,30,40,二个字段,这个字段叫做dname字段,是部门的名称,有的部门儿叫做accounting, accounting,有的部门儿叫research。loc,它的全称叫做location,就是地点,有的部门儿是在纽约,有的部门儿在达拉斯,有的部门儿在芝加哥,有的部门儿在波士顿。
t_emp员工表:第一个字段叫做empno,不用说这个是员工的编号,肯定是主键字段。
然后再往下还有是ename,这个是员工的名字,下面一个字段是job员工的职务,mgr这个字段是当前这个员工的上司的员工编号,比如说这个7369这个人,他的上司的员工编号儿是7902。hiredate,这个字段是员工的入职日期,你可以看都是198几年的这个日期都比较早。sal字段,sal字段就是月薪,你的这个月薪是多少钱?比如说有800美金的,有1600美金的。还有一个字段叫comm字段,这个字段是佣金字段,那咱们来看有的人这个佣金是300美金,有的这个人的佣金是500美金,有的人还没有佣金。最后一个字段叫做deptno,不用说了,这个是我们员工的部门编号,它是和部门表的那个主键字段产生关联关系的对吧?这个叫做deptno
t_salgrade工资等级表:这个表是工资等级表,一共是有5条记录,那么这个工资等级表就记录着说这个工资的分级级,比如说第一级的这个工资,他的最低工资是700美金到1200美金。二级的这个工资是1201美金到1400美金,所以以此类推,这个我就不说了,这个是工资等级表
t_bonus奖金表:有这个员工的编号,还有职务,还有是他的这个底薪是多少钱,然后再有的话是他的这个佣金是多少钱等我们将来在练习增删改查操作的时候,可以往这张数据表里面填写新的记录
三、select查询
我们先从数据的查询开始说起,最基本的查询语句是由select和from关键字来组成的。
比如说,我现在想查询员工表的信息,这个sql语句就是select from,然后t_emp,然后加上分号结尾就行了,from子句规定的是从员工表中查询数据
如果想看结果集中所有字段:select子句中的这个*,代表说在结果集里边显示员工表儿的所有字段的意思,
如果说你不想查找所有的字段:在结果集里边只需要列出来你想要的字段,那在这个select里边,比如我只想看到员工的编号员工的姓名,还有员工的底薪,那你把这3个字段的名称写上就能写上就可以了
select语句屏蔽了物理层的数据查找,让用户不必关心数据的存储方式,查询工作交给数据库系统去完成,短短的一条sql语句就能从成千上万的数据中检索到我们需要的记录,真的是太方便了,接下来我把刚才的sql语句去执行一下,首先是要切换到demo这个逻辑空间里的,然后才能执行相关的这个查询语句,比如说我现在查询一下这个表员工表所有的这个信息,那么select语句里面写了一个*,就是这个员工表儿里面所有的字段。在结果集里边都需要出现各位同学可以看下面的这些查询的结果集,就是我们想要的员工信息了,果真是所有的字段都打印出来了对吧?如果说我们现在想特殊的查找某一些字段的话,那在这里边我把select去修改一下。
比如说我想查找的是员工的编号,empno,姓名name,还有是员工的底薪sql,好了,那我把这个sql语句选中,然后咱们来执行一下,在结果集里边果真显示的字段就是我们规定的那3个字段
USE sql文件 #选择刚刚导入的sql文件
SELECT * FROM t_dept # 查询t_dept部门表全部字段
SELECT ename,job,sal FROM t_emp # 查询t_emp员工表员工姓名,工作,薪资字段
四、select使用列别名
mysql提供了给结果集中字段重命名的语法,特别是那些使用了表达式的字段列名,就是表达式本身,所以就需要修改,接下来咱们看下面的sql语句
比如说我现在想查询每名员工的年收入情况,然后selects句里边显示的字段empno,那么年收入的话,我就是把这个sal*12,这个就是一年的这个基本工资的一个收入,然后如果说你不给字段起别名的话,那么一会显示的结果集里边这个字段的名字就叫做sal*12,所以说看起来非常的不优雅,那接下来我们可以用这个重命名的这个语法,给这个字段起一个新的名字,这个重命名的语法就是在后面加上一个as的这个关键字,关键字当然你不写as也可以,写上空格就行了,然后后面跟上这个income,这就是一个别名
# 使用别名计算员工年薪
SELECT
empno,ename,sal*12 as "income"
FROM t_emp;