目录
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? ? ?|
+------------+-------------------+-------------------+
这种方式的缺点:
- 效率低
- 可读性差
在实际开发中不建议,自己玩没问题
你可以在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? ? ? ?|
+------------+-------------------+
|