数据库基础知识(1)
Mysql(数据库管理系统) 基础知识(考研复试回顾)
- 登录Mysql,用户名root,登录密码123(Windows环境,Mysql Version5.5.61,另外需要熟知的是在客户端Mysql的端口号port是3306)
mysql -uroot -p123 //用户名是root 密码是123
或者不显露密码的方式:
mysql -uroot -p
123
-
卸载Mysql。
卸载Mysql的时候需要在以下几个方面都得处理掉,才能删除干净
①控制面板里找到Mysql程序点击Unstall
②找到Program Files(x86)删掉Mysql程序目录
③找到Program Data,继续删掉Mysql程序目录
④按住Win+R,输入regedit打开注册表,打开HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\EventLog\Application\Mysql右击,点击delete删除。
只有卸载干净下次安装才能成功,否则下次安装会失败,失败的原因就是上一次Mysql没有卸载干净
PS:环境变量指的是——系统运行一个程序,但是并不清楚改程序完整路径 ,此时系统除了会在当前目录下寻找该程序之外,还会在系统配置的环境变量中寻找当前路径下的程序。
-
Sql、DB、DBMS分别是什么,它们之间的关系?
DB:(DataBase,数据库在硬盘上实际是以文件的形式存在,存储在硬盘上)
DBMS:(DataBase Managerment System)DBMS就是我们常见的数据库管理系统,即是我们这里指的Mysql,常见的有Mysql、Oracle、DB2、Sybase、sqlServer......严格来说Mysql叫做数据管理系统(DBMS),Mysql里面会有许多数据库(DB)
SQL:SQL是一种标准通用语言,它是高级语言。学名叫做结构化查询语言,标准SQL适用于所有数据库管理系统。
SQL语言在执行的时 候,实际上会由DBMS自动进行编译,编译完成后再由DBMS完成执行(这一点不同于C++,C++的编译过程至少需要我们认为操作一下,Mysql相对于就比较高度集成,相对智能化一点)
程序员写SQL语句,利用DBMS,操纵DB;或者说程序员在DBMS里面写SQL语句,来对DB进行增删改查
-
什么是表?
表:table。表示数据库的基本单元,数据库中的数据是由表来组成,采用表的形式组成数据是因为可读性强。
表的行:被称为数据/记录(data)。
表的列:被称为字段(column) 字段的属性包括:字段名称、字段数据类型、字段约束(比如不能为空)、字段长度
-
学习数据库主要核心是学习SQL语句,即增删改查。SQL语句的分类
- DQL(query,数据查询语言):查询语句,凡是select都是DQL
- DML(manipulate,数据操纵语言):insert、delete、update,即对表中数据的增删改
- DDL(difinition,数据定义语言):create、drop 、alter,即对表的增删改
- TCL(事务控制语言,transaction control):commit提交事务,rollback回滚事务
- DCL(数据控制语言):grant授权、revoke撤销权限
-
导入初始化数据
-
登录Mysql
mysql -uroot -p123
-
输入Mysql命令,查看有哪些数据库
show databases; (注意这个不是标准SQL语句,而是Mysql命令行)
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+ //上面4个数据库是Mysql自带默认的数据库 -
自己创建自己额数据库
create database liufeng_info; ##注意这个语句还不是标准sql语句,还是Mysql命令行
+--------------------+
| Database |
+--------------------+
| information_schema |
| liufeng_info |
| mysql |
| performance_schema |
| test |
+--------------------+ -
使用liufeng_info数据库
use liufeng_info; ## 还不是标准sql语句, 还是Mysql命令行 ## 准备切到Mysql数据库 use mysql;
-
查看当前数据库中有哪些表格?
show tables; ##列出当前数据库中的所有表格 还是Mysql命令行
mysql这个数据库中自带一些表,但是我们刚刚创建liufeng_info中是没有表格的,还得创建表格
-
数据初始化
mysql> source E:\BaiduNetdiskDownload\resources\bjpowernode.sql ## 可以对一个空表进行数据初始化
+------------------------+
| Tables_in_liufeng_info |
+------------------------+
| dept |
| emp |
| salgrade | 创建数据库后没有表,经过数据初始化之后,liufeng_info里面就多了三张表批量执行脚本文件,就可以使用source命令。.sql脚本有时候太大,记事本打不开,可以使用source命令打开
-
-
上面我们导入的文件数据,以.sql结尾,这种文件叫做sql脚本
以.sql文件结尾,并且这个文件里面编写了大量的sql语句,我们就把这个叫做.sql脚本
-
删除数据库
drop database liufeng_info; ##这还是Mysql命令行,不是SQL命令
-
查看某一个数据库里面的具体的表结构
desc dept; ## 还是Mysql命令
mysql> desc dept;
+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| DEPTNO | int(2) | NO | PRI | NULL | |
| DNAME | varchar(14) | YES | | NULL | |
| LOC | varchar(13) | YES | | NULL | |
+--------+-------------+------+-----+---------+-------+desc emp;
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 || -
查看表中的数据。
select * from emp;
select * from salgrade; ##标准sql语句出现了
+-------+--------+-----------+------+------------+---------+---------+--------+
| 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 database(); 查看当前使用数据库
select version(); 查看Mysql版本号
结束一条语句:\c
exit 退出Mysql
查看其他数据库中的表
show tables from mysql; // show tables;Mysql语句默认查看当前数据库中的表
而上面的这个语句可以在当前数据库下查询其他数据库中的表,当前在liufeng_info数据库中,可以查看mysql数据库中的表
-
查看创建表的建表语句
show create table db;(db表在mysql数据库中)
-
使用SQL语句对表中的字段下的数据进行查询
select 字段名1,字段名2,字段名3...... from 表名; //查询字段的时候,可以使用",",将不同字段名分隔开,糅合在一起查询,查询结果也成对显示
注意这种查询方式需要知道准确的字段名,要是实在想不起来字段名叫什么名字,可以使用Mysql命令查询
desc 表名; ## 使用这个语句是为了配合select等SQL语句,查到表结构,让我们更清楚的认识
注意:SQL语句不区分大小写,可以大写,也可以小写,还可以大小写混合
select EMPNO,empno,EmpNo from emp;