MySQL数据库
一、数据库概念
- 随意的存放到一个文件中,数据格式也是千差万别
- 软件开发目录规范
规定了数据 存放的位置
ps:数据都是保存在本地的 - 将保存数据的部分,存到一个公共的地方,所有的用户涉及到数据相关,都必须来这个公共地方查找
二、数据库之MySQL
- 本质就是一款基于网络通信的应用软件
任何基于网络通信的软件,底层都是socket - 服务端
基于socket通信
收发消息
SQL语句 - 客户端
基于socket通信
收发消息
SQL语句
ps:MySQL不单单支持MySQL的客户端来操作,也支持其他编程语言(python,java,c++等)直接操作
三、数据库管理系统(DBMS)
-
数据库分类
关系型数据库:MySQL,Oracle,sqlite,db2,sql server非关系型数据库:Redis,MongoDB(文档型数据库,非常接近关系型的非关系型数据库),MemCache
-
关系型数据库
数据与数据之间可以有关联和限制
关系型数据库通常都是表结构,也就意味着你在用关系型数据库的时候,第一步就是确定表结构(字段:字段名+字段类型)字段有特定的类型:
存名字用字符串
存密码用数字
存生日用日期
-
非关系型数据库
通常都是以k,v键值的形式存储数据 -
MySQL其实可以把它看做一款支持远程操作文件的软件
库>>>文件夹表>>>文件
记录>>>文件内一行行的数据叫做一条条的记录
表头:就是表格的第一行数据
字段:字段名+字段类型
四、安装MySQL
-
在IT行业,不要轻易尝试最新版本的软件
-
下载之后,是将MySQL的服务端和客户端都下载了下来
解压
查看文件目录
bin目录下 mysql客户端
mysqld服务端
-
启动mysql和mysqld
打开两个cmd窗口
切换到bin目录下
输入mysqld,启动服务端
输入mysql -h 127.0.0.1 -P 3306 -uroot -p,然后回车,会出现enter password
mysql在初始登录的时候,是没有密码的,直接回车即可
可以简写mysql -uroot -p(不写ip+端口号)
如果不输入用户名和密码(输入mysql直接回车),默认是方可模式登录,所能用的功能很少
-
cmd终端打的打开方式
做前期MySQL配置时,建议你用管理员身份运行cmd终端通过Windows+r,打开运行窗口,输入cmd打开的终端是以普通身份进入的
在搜索栏搜索cmd,然后右键以管理员身份运行才是以管理员身份打开终端
-
添加环境变量
将启动文件所在的路径添加到系统的环境变量中——在cmd终端中不需要切换当前路径就可以直接打开mysql和mysqld
ps:配置完之后一定要重新启动mysql服务端以及cmd终端
-
将mysqld制作成系统服务
目的:不需要每次都先开启mysqld服务端(可以将服务设置成开机自启动)
制作系统服务,你的cmd终端一定要是管理员身份
输入mysqld --install即可
-
修改密码(不需要进入mysql中,只在你记得密码的情况下有效)
输入mysqladmin -uroot -p password 123(123是你想要设置的密码)回车
出现enter password(提示你输入原来的密码,输入正确即可修改原来的密码)
-
在你不记得密码的情况下,破解密码
将已经启动的服务端停掉
跳过用户名和密码的验证功能,启动服务端
mysqld --skip-grant-tables 启动服务端,跳过授权表
修改管理员用户对应的密码
update mysql.user set password=password(123) where user='root' and host='localhost';
关闭当前服务端 重新以校验用户名密码的方式启动
正常以用户名密码的方式,连接mysql服务端
-
配置文件
s查看,mysql服务端简单配置
通常情况下配置文件的后缀都是ini结尾
mysql自带的配置文件不要修改
但是你可以新建一个配置文件 my.ini
mysql服务端在启动就会自动加载你的my.ini配置文件内的配置
修改完配置文件之后需要先将服务端停止,重新启动,才能生效
修改了配置文件一定要重启服务端
-
客户端退出程序
exit;
quit;
-
查看某个进程、杀死进程(必须以管理员身份运行)
tasklist |findstr 进程名
taskkill /F /PID 进程号
五、数据库的基本操作
-
库(类似于文件夹)
增 create database db1;(库名)
查 show databases;查所有
show create database db1;查单个
改 alter databases db1 charset='gbk';修改编码
删 drop database db1;删库
-
表
在创建表的时候,需要先指定库
指定库:use 库名
查看当前所在的库:select database()
增 create table userinfo(id int,name char);(表名(字段名+字段类型,之间用逗号隔开))
查 show tables;查看某个库下面的所有的表
show create table userinfo;查看某个表
desc userinfo;等价于describe userinfo;查看表的信息
改 alter table userinfo modify name char(32);
删 drop table userinfo;
-
记录
先创建一个库或者指定一个已经存在的库
切换带该库下 创建表
然后再操作记录
create database db1;
create table userinfo(id int,name char(32),password int);
增 insert into userinfo value(1,'jason',123);插入单条数据
insert into userinfo values(1,'jason',123),(2,'egon',123),(3,'tank',123);插入多条数据
查 select * from userinfo;查询所有的字段信息
select name from userinfo;查询指定字段信息
select id,name from userinfo where id=1 or name='tank';带有筛选条件的字段信息
改 update userinfo set name='kevin' where id=1;修改数据的一个字段信息
update userinfo set name='jason',password=666 where id=1;修改数据的多个字段
删 delete from userinfo where id=1;指定删除符合条件的数据
delete from userinfo;将表中的数据全部删除