目录
3 什么是数据库管理系统(Database Management System,简称DBMS)
一、数据库概述
1 什么是数据(Data)
描述事物的符号记录称为数据,描述事物的符号既可以是数字,也可以是文字、图片,图像、声音、语言等,数据由多种表现形式,它们都可以经过数字化后存入计算机。
在计算机中描述一个事物,就需要抽取这一事物的典型特征,组成一条记录,就相当于文件里的一行内容,如:
name, sex,age,birth,born,addr,major,entrance_time,school # 字段
ly,male,18,1999,山东,计算机系,2017,oldboy # 记录
2 什么是数据库(Database,简称DB)
数据库即存放数据的仓库,只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的。过去人们将数据存放在文件柜里,现在数据量庞大,已经不再适用。
数据库是长期存放在计算机内、有组织、可共享的数据即可。
数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。
3 什么是数据库管理系统(Database Management System,简称DBMS)
在了解了Data与DB的概念后,如何科学地组织和存储数据,如何高效获取和维护数据成了关键。
这就用到了一个系统软件—数据库管理系统。
关系型数据库(SQL):
MySQL、Oracle、PostgreSql、SqlServer、db2、access、MariaDB、sqllite等
MySQL主要用于大型门户,它主要的优势就是开放源代码,因为开放源代码,这个数据库是免费的,他现在是甲骨文公司的产品。 Oracle主要用于银行、铁路、飞机场等。该数据库功能强大,软件费用高。也是甲骨文公司的产品。 SQLServer是微软公司的产品,主要应用于大中型企业,如联想、方正等。MariaDB:和MySQL的作者是同一个。
关系型数据的特点:具备固定的表结构,表与表之间可以建立关系(Excel表格)
id name age gender
1 kevin1 19 male
2 kevin2 20 female
3 kevin3 21 male
4 kevin4 22 female
5 kevin5 23 male
非关系型数据库(nosql):
Redis缓存数据库(五大数据类型)、memcache数据库(支持一种字符串类型的K:V键值对)、MongoDB数据库(爬虫)
Redis缓存数据库基本上是把memcache数据库淘汰了
非关系型数据特点:没有表结构,它的存储形式是:K:V键值对的形式
总结:
数据库服务器 | 运行数据库管理软件 |
数据库管理软件 | 管理数据库 |
数据库 | 文件夹,用来组织文件/表 |
表 | 即文件,用来存放多行内容/多条记录 |
二、MySQL介绍
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。
本质上就是一款基于C/S架构编写的软件。
既然是C/S架构的软件,那就必然会有服务端和客户端,理论上来说,我们自己也能够开发一款数据库软件,只需要开发一个客户端,一个服务端即可。只不过我们开发的数据库软件没人用,只能自己使用。
1 版本问题
5.5 之前的都有,那些版本目前几乎都不用了
MySQL5.6 ----> 使用较多的,比较稳定的
MySQL5.7 ----> 使用较多的,比较稳定的
MySQL8.0 ----> 新版本,对于MySQL来说,版本的更新不变的是SQL语句的书写
我们目前使用5.6,建议最好不要是新版本,尤其是8.0的版本,线上环境最好不要使用新版本。
补充:数据库软件它是需要下载和安装的,如果你的电脑上已经装过了;即如果有这种情况:你之前装过,但是卸载的时候,方法不对,就会出现残留文件,你会发现再次装新的时候,就装不上了,或者装上了启动不起来。
方法:借助于一些杀毒软件,检测出来一些残留文件,把这个检测出来的残留文件给删掉就可以
2 下载与安装
- 官网下载:https://www.mysql.com/
- 解压:如果想要让MySQL安装在指定目录,那么就将解压后的文件夹移动到指定目录
3 主要文件介绍
bin
- mysql.exe ---> 自带的客户端
- mysqld.exe ---> 自带的服务端
data:MySQL的数据存储的地方
my-default.ini:这个是MySQL的配置文件
README文件:MySQL的说明文件,类似于是说明书
4 如何使用
它是一款C/S架构的软件,那必然就会有服务端和客户端,我们需要先启动服务端,然后启动客户端链接
4.1 启动与停止
mysqld.exe是服务端,应该先启动这个文件, 这里不能双击了,需要通过cmd的方式启动。
启动步骤:
在bin目录下,执行mysqld就是启动服务端的
在bin目录下,执行mysql就是客户端来链接的,输入mysql即可,初次链接默认是没有密码
停掉MySQL的服务端:Ctrl+C
4.2 加入环境变量
将bin目录所在的路径加入到环境变量中
4.3 MySQL服务的制作
目的:就是可以把服务端的cmd窗口关闭,只留一个客户端的cmd即可
如何查看服务:
1. 在任务栏里打开任务管理器------>服务
2. 点击此电脑------>管理------->服务
3. win + R------->services.msc----------->服务
制作MySQL的服务步骤
1. mysqld --install(需要管理员权限) -----》Install/Remove of the Service Denied!
mysqld --install(需要管理员权限) -----》Service successfully installed.
第一次安装成功服务是没有启动的,需要手动启动一次
2. 启动服务
- 直接点击启动------》mysqld------>服务端就不需要在打开cmd启动了---->后台工作
- 命令启动:net start mysql ----> 启动服务的 (需要管理员权限)
- 关闭服务:net stop mysql ----> 停止服务 (需要管理员权限)
3. 如何卸载服务以及安装服务
- mysqld --remove
- mysqld --install
注:卸载服务的时候一定要先关闭服务
服务制作完毕之后,就是可以关闭服务端cmd窗口了,启动之后,可以永久提供服务
三、MySQL登录与修改密码
1 MySQL如何登录
服务端需要设置密码,然后让客户端通过用户名和密码进行登录,默认情况下,初次安装成功,链接是不需要密码的。
1.1 如何给管理员设置密码(一定在bin目录下执行)
mysqladmin -u 用户名 -p 旧密码 password 新密码 ----> 修改管理员密码也是这个命令
mysqladmin -u root -p password 123
1.2 管理员就具备了密码
客户端在链接的时候需要使用密码链接:
mysql -u root -p -----> 链接的是本地的MySQL
1.3 完整的链接命令
mysql -h 127.0.0.1 -P 3306 -u root -p
注:如果不用root登录就是游客模式,权限比较低,没有root用户的权限高,一般功能首先就是只能查看,不能操作。
2 如何解决忘记密码的问题
忘记密码就需要修改密码
修改密码的步骤:
1. 关闭服务端
2. 跳过授权表的形式启动服务端
跳过授权表>>>: 意味着以后客户端来链接服务端的时候,只需要用户名,不再验证密码3. 如何跳过授权表
mysqld --skip-grant-tables
4. 跳过授权表成功之后,执行修改密码的语句
update mysql.user set password=password('1234') where Host='localhost' and User='root';
四、基本的SQL语句的使用
库 >>> 文件夹
表 >>> 文件
记录 >>> 文件中得一行行数据
字段 >>> id name age gender 其实就表的表头
顺序是: 库 >>> 表 >>> 记录 >>> 字段
一个库中可以有多张表,一个表中可以有很多条记录,也可以有多个字段。
在MySQL中,SQL语句都是要以分号结尾;
1. 针对库的SQL语句
1.1 增加库
create database db1;
1.2 删库跑路
drop database db1;
- 注:不要轻易使用(测试环境随便使用,线上环境一般情况下你是没有权限的)
1.3 修改库
alter database db1 charset='utf8';
1.4 查看库
show databases; show create database db1;
1.5 如何选择库:
use 库名;
- use db1; ----》双击db1文件夹
2. 针对表的SQL语句
2.1 增加表
- create table 表名 (id 数据类型, name 数据类型, gender 数据类型)
create table t1(id int, name varchar(32), gender varchar(32));
2.4 删除表
drop table t2;
2.2 修改表
alter table t1 rename t2; ----》修改表名
2.3 查看表
show tables; desc t1; ---》查看表结构,格式化了 show create table t1; ---》查看表结
3 针对记录的SQL语句
记录:表中的一行一行的数据称之为是一条记录
需要先有库、再有表、最后操作记录
id name age gender
1 kevin 20 male
3.1 查看记录
select * from t1; ----》查看所有
3.2 增加数据
insert into t1 values(1, 'kevin', 20); -----》第一种方式,全字段增加, 单条增加 insert into t1 values(2, 'kevin1', 20),(3, 'kevin2', 20),(4, 'kevin3', 20),(5, 'kevin4', 20),(6, 'kevin5', 20); -----》第二种方式,全字段增加, 批量增加 insert into t1(id, name) values(7, 'kevin7'); ------》空的使用NULL填充
3.3 修改数据
update t1 set name='tank' where id=1; update t1 set age=30 where name='tank'; update t1 set name='jerry',age=30 where id=3; update t1 set name='oscar' where name='tank' and age=30; update t1 set name='oscar' where name='kevin3' or name='kevin4'; update t1 set name='tony';-----》修改所有
以后再自行更新和删除的sql语句的时候,一定要细心、好好看看条件是否正确
update t1 set age=age+40 where id=1; update t1 set price=price+10;
3.4 删除数据
delete from t1 where id=1; delete from t1 where id=2 or id=7; delete from t1; -----》这是清空表