2021/4/18 学习数据库的第二天

查看数据库有哪些表?

mysql> show tables;
	注意:以上命令不区分

大小写,都行。
查看mysql数据库的版本号:

+-----------+
	| version() |
	+-----------+
	| 8.0.23    |
	+-----------+

查看当前使用那个数据库?

mysql> select database();
	+------------+
	| database() |
	+------------+
	| NULL       |
	+------------+
mysql> show
    -> databases;
	+--------------------+
	| Database           |
	+--------------------+
	| bjpowernode        |
	| information_schema |
	| mydatabase         |
	| mygrade            |
	| mysql              |
	| nysql              |
	| performance_schema |
	| sakila             |
	| sys                |
	| world              |
	+--------------------+

注意:mysql是不见“;”不执行,“;”表示结束!

mysql> show
    ->
    ->
    ->
    -> \c
mysql>

\c用来终止一条命令的输入。
8.数据库最基本的单元是表:table
什么是表table?为什么用表来存储数据呢?
姓名性别年龄(列:字段)

--------------------------------
	张三男20     --------------->行(记录)
	李四女21     --------------->行(记录)
	王五男22     --------------->行(记录)
数据库当中是以表格的形式表示数据的。
因为表比较直观。
任何一张表都有行与列:
行(row):被称为数据/记录。
列(column):被称为字段。
姓名字段、性别字段、年龄字段。
了解一下:
每个字段都有:字段名、数据类型、约束等属性。
字段名可以理解,是一个普通的名字,见名知意就行。
数据类型:字符串,数字,日期等
约束:约束也很多,其中一个叫做唯一性约束。
这种约束添加之后,该字段中的数据不能重复。

9.关于SQL语句的分类?
SQL语句有很多,最好进行分门别类,
这样容易记忆。
分为:
DQL:
数据查询语言(凡事带select关键字的都是查询语句)
select…
DML:
数据操作语言(凡事对表当中的数据进行增删改的都是DML)
insert delete update
insert 增
delete 删
update 改
这个主要是操作表中的数据data。
DDL:
数据定义语言
凡事带有create、drop、alter的都是DDL。
DDL主要是操作表的结构。不是表中的数据。
create:新建,等同于增
drop: 删除
alter:修改
这个增删改和DDL不同,这个主要是对表的结构进行操作。
TCL:
是事务控制语言
包括:
事务提交:commit;
事务回滚:rollback;
DCL:
是数据控制语言。
例如:授权grant、撤销权限rovoke…
10.导入一下提前准备好的数据:
bjpowernode.sql这个文件中是我提前为大家联系准备的数据库表。
怎么将SQL文件数据导入呢?
mysql> source D:\bjpowernode.sql
注意:路径中不要有中文!!!
11.关于导入这几张表?

mysql> show tables;
+-----------------------+
| Tables_in_bjpowernode |
+-----------------------+
| dept                  |
| emp                   |
| salgrade              |
+-----------------------+
dept是部门表
emp是员工表
salgrade  是工资等级表
怎么查看表中的数据呢?
select * from 表名;//统一执行这个SQL语句。
mysql> select * from emp;//从emp表中查询所有数据。
+-------+--------+-----------+------+------------+---------+---------+--------+
| EMPNO | ENAME  | JOB       | MGR  | HIREDATE   | SAL     | COMM    | DEPTNO |
+-------+--------+-----------+------+------------+---------+---------+--------+
|  7369 | SMITH  | CLERK     | 7902 | 1980-12-17 |  800.00 |    NULL |     20 |
|  7499 | ALLEN  | SALESMAN  | 7698 | 1981-02-20 | 1600.00 |  300.00 |     30 |
|  7521 | WARD   | SALESMAN  | 7698 | 1981-02-22 | 1250.00 |  500.00 |     30 |
|  7566 | JONES  | MANAGER   | 7839 | 1981-04-02 | 2975.00 |    NULL |     20 |
|  7654 | MARTIN | SALESMAN  | 7698 | 1981-09-28 | 1250.00 | 1400.00 |     30 |
|  7698 | BLAKE  | MANAGER   | 7839 | 1981-05-01 | 2850.00 |    NULL |     30 |
|  7782 | CLARK  | MANAGER   | 7839 | 1981-06-09 | 2450.00 |    NULL |     10 |
|  7788 | SCOTT  | ANALYST   | 7566 | 1987-04-19 | 3000.00 |    NULL |     20 |
|  7839 | KING   | PRESIDENT | NULL | 1981-11-17 | 5000.00 |    NULL |     10 |
|  7844 | TURNER | SALESMAN  | 7698 | 1981-09-08 | 1500.00 |    0.00 |     30 |
|  7876 | ADAMS  | CLERK     | 7788 | 1987-05-23 | 1100.00 |    NULL |     20 |
|  7900 | JAMES  | CLERK     | 7698 | 1981-12-03 |  950.00 |    NULL |     30 |
|  7902 | FORD   | ANALYST   | 7566 | 1981-12-03 | 3000.00 |    NULL |     20 |
|  7934 | MILLER | CLERK     | 7782 | 1982-01-23 | 1300.00 |    NULL |     10 |
+-------+--------+-----------+------+------------+---------+---------+--------+
mysql> select * from dept;
+--------+------------+----------+
| DEPTNO | DNAME      | LOC      |
+--------+------------+----------+
|     10 | ACCOUNTING | NEW YORK |
|     20 | RESEARCH   | DALLAS   |
|     30 | SALES      | CHICAGO  |
|     40 | OPERATIONS | BOSTON   |
+--------+------------+----------+
mysql> select * from salgrade;
+-------+-------+-------+
| GRADE | LOSAL | HISAL |
+-------+-------+-------+
|     1 |   700 |  1200 |
|     2 |  1201 |  1400 |
|     3 |  1401 |  2000 |
|     4 |  2001 |  3000 |
|     5 |  3001 |  9999 |
+-------+-------+-------+

12.不看表中的数据,只看表的结构,有一个命令:
desc 表名;

mysql> desc 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;
	+----------+-------------+------+-----+---------+-------+
	| 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;
	+-------+------+------+-----+---------+-------+
	| Field | Type | Null | Key | Default | Extra |
	+-------+------+------+-----+---------+-------+
	| GRADE | int  | YES  |     | NULL    |       |工资等级
	| LOSAL | int  | YES  |     | NULL    |       |最低工资
	| HISAL | int  | YES  |     | NULL    |       |最高工资
	describe缩写为:desc
	mysql> describe dept;
	+--------+-------------+------+-----+---------+-------+
	| Field  | Type        | Null | Key | Default | Extra |
	+--------+-------------+------+-----+---------+-------+
	| DEPTNO | int         | NO   | PRI | NULL    |       |
	| DNAME  | varchar(14) | YES  |     | NULL    |       |
	| LOC    | varchar(13) | YES  |     | NULL    |       |
	+--------+-------------+------+-----+---------+-------+

13.简单查询
13.1查询一个字段?
select 字段名 from 表名;
其中要注意的是:
select和from都是关键字。
字段名和表名都是标识符。
强调:
对于SQL语句来说,是通用的,
所有的SQL语句以“;”结尾。
另外SQL语句不区分大小写,都行。
查询部门名字?

mysql> select dname from dept;
	+------------+
	| dname      |
	+------------+
	| ACCOUNTING |
	| RESEARCH   |
	| SALES      |
	| OPERATIONS |
	+------------+
	mysql> SELECT DNAME FROM DEPT;
	+------------+
	| DNAME      |
	+------------+
	| ACCOUNTING |
	| RESEARCH   |
	| SALES      |
	| OPERATIONS |
	+------------+
	4 rows in set (0.00 sec)
13.2 查询两个字段,或者多个字段怎么办?
	使用逗号隔开“,”
	查询部门编号和部门名?
	mysql> select deptno, dname from dept;
	+--------+------------+
	| deptno | dname      |
	+--------+------------+
	|     10 | ACCOUNTING |
	|     20 | RESEARCH   |
	|     30 | SALES      |
	|     40 | OPERATIONS |
	+--------+------------+
	4 rows in set (0.00 sec)
13.3 查询所有字段怎么办?
第一种方式:可以把每个字段都写上
	select a,b,c,d,e from tablename;
第二种方式:可以使用 * 
	mysql> select * from dept;
	+--------+------------+----------+
	| DEPTNO | DNAME      | LOC      |
	+--------+------------+----------+
	|     10 | ACCOUNTING | NEW YORK |
	|     20 | RESEARCH   | DALLAS   |
	|     30 | SALES      | CHICAGO  |
	|     40 | OPERATIONS | BOSTON   |
	+--------+------------+----------+
	4 rows in set (0.00 sec)
这种方式的缺点:
1.效率低
2.可读性差。
在实际开发中不建议,可以自己玩没问题。
你可以在DOS命令窗口中想快速的看一看全表数据可以采用这种方式。

13.4 给查询的列取别名?

mysql> select deptno, dname as deptname from dept;
	+--------+------------+
	| deptno | deptname   |
	+--------+------------+
	|     10 | ACCOUNTING |
	|     20 | RESEARCH   |
	|     30 | SALES      |
	|     40 | OPERATIONS |
	+--------+------------+
	4 rows in set (0.00 sec)
使用as关键字取别名。
注意:只是将显示的查询结果列名显示为deptname,原表列名还是叫:dname
	记住:select语句是永远都不会进行修改操作的。(因为只负责查询)
	as关键字可以省略吗?可以的
mysql> select deptno, dname deptname from dept;
		+--------+------------+
		| deptno | deptname   |
		+--------+------------+
		|     10 | ACCOUNTING |
		|     20 | RESEARCH   |
		|     30 | SALES      |
		|     40 | OPERATIONS |
		+--------+------------+
		4 rows in set (0.00 sec)
	假设起别名的时候,别名里面有空格,怎么办?
	    mysql> select deptno, dname dept name from dept;
		DBMS看到这样的语句,进行SQL语句的编译,不符合语法,编译报错。
		怎么解决?
mysql> select deptno, dname 'dept name' from dept;//加单引号
			+--------+------------+
			| deptno | dept name  |
			+--------+------------+
			|     10 | ACCOUNTING |
			|     20 | RESEARCH   |
			|     30 | SALES      |
			|     40 | OPERATIONS |
			+--------+------------+
			4 rows in set (0.00 sec)
			mysql> select deptno, dname "dept name" from dept;//加双引号
			+--------+------------+
			| deptno | dept name  |
			+--------+------------+
			|     10 | ACCOUNTING |
			|     20 | RESEARCH   |
			|     30 | SALES      |
			|     40 | OPERATIONS |
			+--------+------------+
			4 rows in set (0.00 sec)
		注意:在所有的数据库当中,字符串统一使用单引号括起来,
		单引号是标准,双引号在oracle数据库中用不了。但是在mysql中可以用。
	再次强调:数据库中的字符串都是采用单引号括起来。这是标准的。
		双引号不标准。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值