数据库 理论
数据库的概念
使用文件来管理数据
1.管理不方便
2.文件操作效率问题
3.一个程序产生的数据不能共享
所以产生了数据库
本质:将保存数据的部分 存到一个公共的地方 所有的用户涉及到数据相关 都必须来这个公共地方查找
补充 假如存发数据库的计算机 炸了 那么 他的数据就都会没了 所以就会有多个计算机来存放数据库 数据共享
数据库之MySQL
本质就是一款基于网络通信的应用软件
任何基于网络通信的软件 底层都是socket
模拟 mysql服务端
- 基于socket通信
- 收发消息
- SQL语句(其实是一个公共的标准)
模拟 mysql客户端
- 基于socket通信
- 收发消息
- SQL语句(其实是一个公共的标准)
ps:MySQL不单单支持MySQL的客户端来操作 也支持其他编程语言直接操作 python java c++ php语法都不一样
DBMS 数据管理系统
分为 关系型数据库 (数据与数据之间可以有关联限制的)
关系型数据库通常都是表结构,也就意味着你在用关系型数据库的时候第一步就是确定表结构
先搞清楚什么是 记录 : 记录就是 文件内(表内)的一行行数据
补充: 库 : 一个个文件夹 表: 一个个文件 字段: 表内写的第一行数据 字段 :字段名+字段类型
字段特定的类型 存名字用的 字符串
存密码用的 数字
存生日用的 日期
常见的 非关系型数据库 MySQL(免费 开源 性能不差 支持大量的高并发)
SQLserver (微软的产品 仅仅支持windows)
Oracle (最牛B的数据库 但是收费高)
DB2 (收费)
非关系型数据库
通常都是以k,v键值的形式 存储数据 (速度快 二级缓存)
redis,mongodb(文档型数据库 非常接近关系型的非关系型数据),memcache
MySQL其实可以把它看成一款支持远程操作文件的软件
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
安装MySQL 在IT行业 不要轻易的尝试最新版本的软件 下载之后 是将MySQL的服务端和客户端都下载了下来 解压 查看文件目录 服务端 mysqld 客户端 mysql 启动mysqld 1.切换到bin目录下 2.执行mysqld ps:做前期MySQL配置的时候 终端建议你用管理员身份运行 windows+r启动的是普通用户 mysql在初始登陆的时候 是没有密码的 直接回车即可 mysql中的sql语句 是以分号结束的 不敲分号 默认你没有输入完 客户端还会让你继续输入
mysql中的sql语句 是以分号结束的 不敲分号 默认你没有输入完
客户端还会让你继续输入
SQL语句
客户端登陆 mysql -h 127.0.0.1 -P 3306 -uroot -p 可以简写 mysql -uroot -p 如果不输入用户名和密码 默认是访客模式登陆 所能用到的功能很少 客户端退出登陆 exit; quit; 查看所有的数据库 show databases; 查看某个进程 tasklist |findstr 名称(这个要退出才能查看!) 杀死进程 taskkill /F /PID 进程号 制作环境变量 将启动文件所在的路径添加到系统的环境变量中 注意:配置完之后一段要重新启动mysql服务端及cmd终端 将mysqld制作成系统服务(电脑启动,客户端自动启动,只要启动客户端即可) 制作系统服务 你的cmd终端一定要是管理员身份 mysqld --install(要将cmd全部退出,再重新打开,直接输入该命令!) 修改密码 没有密码的情况下 mysqladmin -uroot -p password 123 有密码的情况下 mysqladmin -uroot -p123 password 123456 当命令输入错误的时候 可以用\c取消前面的命令 cancel 破解密码 现将已经启动的服务端停掉 1.跳过用户名和密码的验证功能 启动服务端 mysqld --skip-grant-tables 启动服务端 跳过授权表 2.修改管理员用户对应的密码 update mysql.user set password=password(123) where user='root' and host='localhost'; 3.关闭当前服务端 重新以校验用户名密码的方式启动 4.正常以用户名密码的方式 连接mysql服务端 配置文件 \s查看 mysql服务端简单配置 通常情况下配置文件的后缀都是ini结尾 mysql自带的配置文件不要修改 但是你可以新建一个配置文件 my.ini mysql服务端在启动就会自动加载你的my.ini配置文件内的配置 修改完配置文件之后需要先将服务端停止 重新启动 才能生效 修改了配置文件一定要重启服务端 数据库的基本操作 库 类似于文件夹 增 create database db1; 查 show databases; 查所有 show create database db1; 查单个 改 alter database 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 values(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; 将表中的数据全部删除