一、初识数据库
数据库是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合,可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。
数据库的优势:
1.程序稳定性 :这样任意一台服务所在的机器崩溃了都不会影响数据和另外的服务。
2.数据一致性 :所有的数据都存储在一起,所有的程序操作的数据都是统一的,就不会出现数据不一致的现象
3.并发 :数据库可以良好的支持并发,所有的程序操作数据库都是通过网络,而数据库本身支持并发的网络操作,不需要我们自己写socket
4.效率 :使用数据库对数据进行增删改查的效率要高出我们自己处理文件很多
二、数据库之MySQL
1.概念
本质就是一款基于网络通信的应用软件 任何基于网络通信的软件 底层都是socket
服务端
-基于socket通信
-收发消息
-SQL语句(是一个公共的标准)
客户端
-基于socket通信
-收发消息
-SQL语句
ps:MySQL不单单支持MySQL的客户端来操作 也支持其他编程语言直接操作
python java c++ php语法都不一样
2.DBMS:数据库管理系统
什么是数据库管理系统(DataBase Management System 简称DBMS)
在了解了Data与DB的概念后,如何科学地组织和存储数据,如何高效获取和维护数据成了关键
这就用到了一个系统软件---数据库管理系统
如MySQL、Oracle、SQLite、Access、MS SQL Server
mysql主要用于大型门户,例如搜狗、新浪等,它主要的优势就是开放源代码,因为开放源代码这个数据库是免费的,他现在是甲骨文公司的产品。
oracle主要用于银行、铁路、飞机场等。该数据库功能强大,软件费用高。也是甲骨文公司的产品。 sql server是微软公司的产品,主要应用于大中型企业,如联想、方正等
数据库管理软件分类
管理数据的工具有很多种,不止mysql一个。关于分类其实可以从各个纬度来进行划分,但是我们最常使用的分类还是根据他们存取数据的特点来划分的,主要分为关系型和非关系型。
可以简单的理解为,关系型数据库需要有表结构,非关系型数据库是key-value存储的,没有表结构
关系型数据库
1.数据与数据之间可以有关联和限制的 2.关系型数据库通常都是表结构,也就意味着你在用关系型数据库的时候 第一步就是确定表结构
字段有特定的类型
存名字用字符串
存密码用数字
存生日用日期
MySQL, oracle, sqlite, db2, sql server
非关系型数据库
通常都是以k,v键值的形式 存储数据 redis,mongodb(文档型数据库 非常接近关系型的非关系型数据),memcache
MySQL其实可以把它看成一款支持远程操作文件的软件
库 >>> 文件夹 表 >>> 文件 记录 >>> 文件内一行行的数据叫做一条条的记录
表头 就是表格的第一行数据 字段 字段名+字段类型
三、下载与安装MySQL
在IT行业 不要轻易的尝试最新版本的软件
下载之后 是将MySQL的服务端和客户端都下载了下来 解压 查看文件目录
服务端
mysqld
客户端
mysql
启动mysqld
1.切换到bin目录下
2.执行mysqld
ps:做前期MySQL配置的时候 终端建议你用管理员身份运行
windows+r启动的是普通用户
mysql在初始登陆的时候 是没有密码的 直接回车即可
mysql中的sql语句 是以分号结束的 不敲分号 默认你没有输入完
客户端还会让你继续输入
mysql为我们提供开源的安装在各个操作系统上的安装包,包括ios,linux,windows。
mysql的安装、启动和基础配置 —— linux版本 (https://www.cnblogs.com/Eva-J/articles/9664401.html)
mysql的安装、启动和基础配置 —— mac版本 (https://www.cnblogs.com/Eva-J/articles/9664401.html)
mysql的安装、启动和基础配置 —— windows版本 (https://www.cnblogs.com/Eva-J/articles/9669675.html)
2.配置环境变量
将启动文件所在的路径添加到系统的环境变量中
注意:配置完之后一段要重新启动mysql服务端及cmd终端
将mysqld制作成系统服务
制作系统服务 你的cmd终端一定要是管理员身份
输入mysqld --install
3.配置文件
s查看 mysql服务端简单配置
通常情况下配置文件的后缀都是ini结尾
mysql自带的配置文件不要修改
但是你可以新建一个配置文件 my.ini
mysql服务端在启动就会自动加载你的my.ini配置文件内的配置
修改完配置文件之后需要先将服务端停止 重新启动 才能生效
修改了配置文件一定要重启服务端
1.基本语句
1. 客户端登陆 mysql -h 127.0.0.1 -P 3306 -uroot -p 可以简写 mysql -uroot -p 如果不输入用户名和密码 默认是访客模式登陆 所能用到的功能很少 2.客户端退出登陆 exit; quit; 3.查看所有的数据库 show databases; 4.查看某个进程 tasklist |findstr 名称 5.杀死进程 taskkill /F /PID 进程号
1.修改密码
没有密码的情况下 :mysqladmin -uroot -p password 123 有密码的情况下: mysqladmin -uroot -p123 password 123456 当命令输入错误的时候 可以用c取消前面的命令 cancel
1.现将已经启动的服务端停掉 2.跳过用户名和密码的验证功能 启动服务端 mysqld --skip-grant-tables 启动服务端 跳过授权表 3.启动客户端 输入mysql -uroot -p 遇到需输入密码跳过即可 4.修改管理员用户对应的密 update mysql.user set password=password(123) where user='root' and host='localhost'; 5.关闭当前服务端 重新以校验用户名密码的方式启动 6.正常以用户名密码的方式 连接mysql服务端
3.数据库的基本操作
1. 操作文件夹(库) 增 create database db1; 查 show databases; 查所有 show create database db1; 查单个 改 alter database db1 charset='gbk'; 修改编码 删 drop database db1; 删库 2.操作文件(表) 在创建表的时候 需要先指定库 指定库: use 库名 查看当前虽在的库: select database() 增 create table userinfo(id int,name char);(char不写默认存一个字符) 查 show tables; 查看某个库下面的所有的表 show create table userinfo; desc userinfo; <==> describe userinfo; 改 alter table userinfo modify name char(32); 删 drop table userinfo; 3.操作文件中的内容(记录) 先创建一个库或者指定一个已经存在的库 切换到该库下 创建表 然后再操作记录 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; 将表中的数据全部删除