sql语句的分类
-
DQL:数据查询语言
凡是带select关键字的语句都是DQL
-
DML:数据操作语言
对表中的数据进行增删改(insert,delete,update)
-
DDL:数据定义语言
对表的结构进行进行操作而不是表中的数据(create新建,drop删除,alter修改)
-
TCL:事务控制语言
事务提交:commit
事务回滚:rollback
-
DCL:数据控制语言
例如:授权:grant,撤销权限revoke
如何导入数据(表)
- 第一步:使用需要导入数据的数据库
- 第二步:输入:source 文件名(数据)
mysql> use my_db
Database changed
mysql> source C:\Users\86181\Desktop\HS_文件\bjpowernode.sql
查看表中的结构
desc 表名
mysql> desc emp
-> ;
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| EMPNO | int(4) | NO | PRI | NULL | |
| ENAME | varchar(10) | YES | | NULL | |
| JOB | varchar(9) | YES | | NULL | |
| MGR | int(4) | YES | | NULL | |
| HIREDATE | date | YES | | NULL | |
| SAL | double(7,2) | YES | | NULL | |
| COMM | double(7,2) | YES | | NULL | |
| DEPTNO | int(2) | YES | | NULL | |
+----------+-------------+------+-----+---------+-------+
简单查询语句(DQL)
列名也可以被称作属性名
-
查询表中某个属性列
select 属性名 from 表名
mysql> select empno from emp -> ; +-------+ | empno | +-------+ | 7369 | | 7499 | | 7521 | | 7566 | | 7654 | | 7698 | | 7782 | | 7788 | | 7839 | | 7844 | | 7876 | | 7900 | | 7902 | | 7934 | +-------+
-
查询多个属性列
属性名用逗号“,”隔开
mysql> select empno,ename,job from emp -> ; +-------+--------+-----------+ | empno | ename | job | +-------+--------+-----------+ | 7369 | SMITH | CLERK | | 7499 | ALLEN | SALESMAN | | 7521 | WARD | SALESMAN | | 7566 | JONES | MANAGER | | 7654 | MARTIN | SALESMAN | | 7698 | BLAKE | MANAGER | | 7782 | CLARK | MANAGER | | 7788 | SCOTT | ANALYST | | 7839 | KING | PRESIDENT | | 7844 | TURNER | SALESMAN | | 7876 | ADAMS | CLERK | | 7900 | JAMES | CLERK | | 7902 | FORD | ANALYST | | 7934 | MILLER | CLERK | +-------+--------+-----------+
-
查询所有属性列
第一种方法:把所有的属性名都写上
第二种方法:使用*
-
给属性取别名
- 使用as关键字取别名(as 可以省略)
mysql> select empno as no from emp -> ; +------+ | no | +------+ | 7369 | | 7499 | | 7521 | | 7566 | | 7654 | | 7698 | | 7782 | | 7788 | | 7839 | | 7844 | | 7876 | | 7900 | | 7902 | | 7934 | +------+
mysql> select empno no from emp -> ; +------+ | no | +------+ | 7369 | | 7499 | | 7521 | | 7566 | | 7654 | | 7698 | | 7782 | | 7788 | | 7839 | | 7844 | | 7876 | | 7900 | | 7902 | | 7934 | +------+
注意:取别名只是改变显示结果中的属性名,表中的属性名并没有发生改变。
select语句是永远不会进行修改操作的
-
当别名出现了空格了怎么办?
解决方法:用单引号将别名括起来,否则会出错
mysql> select empno as 'n o' from emp -> ; +------+ | n o | +------+ | 7369 | | 7499 | | 7521 | | 7566 | | 7654 | | 7698 | | 7782 | | 7788 | | 7839 | | 7844 | | 7876 | | 7900 | | 7902 | | 7934 | +------+
-
属性名(列表名)参与数学运算
求员工的年薪
mysql> select sal*12 from emp -> ; +----------+ | sal*12 | +----------+ | 9600.00 | | 19200.00 | | 15000.00 | | 35700.00 | | 15000.00 | | 34200.00 | | 29400.00 | | 36000.00 | | 60000.00 | | 18000.00 | | 13200.00 | | 11400.00 | | 36000.00 | | 15600.00 | +----------+