目录
7,导入提前准备好的数据
怎么将sql文件中的数据导入呢?
8,关于导入的这几张表
怎么查看表中的数据呢?
9,不看表中的数据,只看表的结构,有一个命令:
desc 表名;
describe(描述)缩写为:desc
10,简单查询
10.1查询一个字段?
补充:
10.2查询多个字段?
10.3查询所有字段?
10.4给查询的列起别名?
10.5,计算员工年薪?sal*12
下面需要用到的sql文件
链接:百度网盘 请输入提取码
提取码:6666
mysql-> source E:\mysqldocument\bjpowernode.sql;//导入bjpowernode这个sql文件
后面这个路径是我们sql文件所在的路径
注意:路径中不能有中文!还有就是用这个命令之前要执行一个命令
也就是mysql-> use XXX;
这个是使用某个数据库的命令,我们在导入sql文件前要先使用一个数据库
我们的sql就会导入到use的数据库当中
我们导入的这个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表查询所有字段
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 | |最高工资
+-----------+--------+---------+----------+----------+---------+
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后面可以跟某个表的字段名(可以等同看做变量名)
也可以跟字面量/字面值(数据)
使用逗号’,’隔开
例如:查询部门编号和部门名?
mysql> select DEPTNO,DNAME from dept;//查询dept表中的deptno和dname字段
+------------+------------------------+
| DEPTNO | DNAME |
+-------------+-----------------------+
| 10 | ACCOUNTING |
| 20 | RESEARCH |
| 30 | SALES |
| 40 | OPERATIONS |
+-------------+-----------------------+
第一种方式:可以把所有字段都写上
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 |
+------------+-------------------+-------------------+
这种方式的缺点:
在实际开发中不建议,自己玩没问题
你可以在DOS命令窗口中想快速的看一看全表数据可以采取这种方式
实际开发中还是建议把*写成字段的形式
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中可以使用
再次强调:数据库中的字符串都是采用单引号括起来,这是标准的
双引号不标准
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 |
+------------+-------------------+