数据库概念:
文件作为数据库,数据格式千差万别
将保存数据的地方统一起来
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
MySQL一款应用软件
用来帮你操作文件的
只要是基于网络通信,底层都是socket !!!
服务端
socket通信
收发消息
解析命令(sql语局)
客户端
socket通信
收发消息
解析命令(sql语句)
DBA:
sql语句优化
什么是数据(Data)
描述事物的符号记录称为数据,描述事物的符号既可以是数字,也可以是文字,图片,声音,语言等,数据由多种那个表现形式,他们都可以经过数组化后存入计算机
什么是数据库(DataBase,简称DB)
数据库即存放数据的仓库,只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的
数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享
什么是数据库管理系统(DateBase Management System 简称DBMS)
科学地组织和存储数据,高效获取和维护数据成了关键 就用到了一个系统软禁--数据库管理系统
关系型数据库
存储数据的时候,对于数据有条件限制
数据与数据之间有关联
通常都是以表格的方式存储
第一步需要创建表结构!
Oracle ,sqlite,db2,sql server ,MySQL ,access
mysql主要用于大型门户,例如搜狗、新浪等,它主要的优势就是开放源代码,因为开放源代码这个数据库是免费的,它现在是甲骨文公司的产品
oracle 主要用于银行、铁路、飞机场等。该数据库功能强大,软件费用高。也是甲骨文公司的产品
sql server 是微软公司的产品,主要应用于大中型企业,如联想、方正等。
非关系型数据库
数据存储方式 k ,v 键值对的形式
redis,mongodb,memcache
数据库服务器、数据管理系统、数据库、表与记录的关系
记录:1 刘海龙 33123 22(多个字段的信息组成一条记录,即文件中的一行内容)
表:student,school,class_list (即文件)
数据库:oldboy_stu (即文件夹)数据库管理系统:mysql (是一个软件)数据库服务器:一台计算机 (对内存要求比较高) 总结: 数据库服务器:运行数据管理软件 数据库管理软件:管理数据库 数据库:即文件夹,用来组织文件/表表:即文件,>>表头:字段 用来存放多行内容/多条记录
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
https://www.jb51.net/article/87898.htm
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
启动 服务端 mysqld 客户端 mysql -h 127.0.0.1 -P 3306 -uroot -p 也支持简写 mysql -uroot -p 让你输入密码,默认密码是空 不用管直接敲回车 sql语句第一条命令 查看所有数据库 show databases; 注意:输入sql语句的时候,一定要用英文分号结束 如果输入的sql语句错了 不想执行的话可以 不加分号 换行后在后面跟上c取消命令的执行 退出客户端:exit quit 1 将mysql 启动文件路径添加到环境变量 2 将mysqld制成系统服务 1 一点要先将mysqld杀死 2 mysql --install 将mysqld 服务端制作成系统服务(开机自启动) 3 设置密码 mysqldmin -uroot -p password '123' #第一次修改完以后,之后要还修改密码需要 mysqldadmin -uroot -p123 password '123456' #为了后续调试方便,这里把密码设为空值 mysqld -uroot -p123 passsword '新密码' 4 破解密码 1 先关闭服务端 2 以跳过用户密码认证模式重新启动服务端 mysqld --skip-grant-tables 3 以管理员登录 4 修改mysql库里面的user表 update mysql.user set password=password(123) where user='root' and host ='localhost'; 5 先关闭跳过验证的服务端,以正常模式启动服务端 6 输入用户密码正常登录 5 解决编码问题 1 在mysql根目录下新建一个my.ini 的配置文件,在里面固定加上下面的配置即可设置编码问题 [mysqld] character-set-servet=utf8 collation-server=utf_geeral_ci [client] default-character-set=utf8 [mysql] default-character-set=utf8 2 重新启动你的mysql服务端,配置才会生效 6 基本sql语句操作 库 增 create database db1 charset utf8; 查 show create database db1; 改 alter database db1 charset gbk; 删 drop database db1; 表 应该在具体某一个库下面创建表 1 切换到指定的库内 use 库名; 增 create table userinfo(id int ,name char); 查 show tables show create table userinfo desc userinfo <=> describe userinfo 改 alter table userinfo modify name char(16); 提醒,在创建char类型字段的时候,建议加上数字(32) 删 drop table userinfo; 数据 增 insert into userinfo values (1,'eogn') ,(2,'echo'); #into 可加 可以不加,userinfo 可以不指定,默认就是在当前库下 改 update userinfo set name ='DSb' where id >1; update userinfo set name=‘Dsb’ where id=2 or id=3; 查 select id ,name from userinfo ; #userinfo 可以不指定,默认当前库下 select * from userinfo; 删 delete from userinfo where id =1; 清空表: delete from userinfo ; 如果有自增id ,新增的数据,任然是以删除前的最后一样作为起始。 truncate table userinfo; 数据量大,删除输入比上一条块,且直接从零开始 auto_increment 表示:自增 promary key 表示:约束(不能重复且不能为空);加速查找
表操作
存储引擎
文件格式有很多种,对应的软件也有很多种txt pdf等
针对不同类型的文件,需要对应有不同的软件帮助我们去操作
#查看所有的存储引擎
show engines;
#查看不同存储引擎存储表结构文件特点
create table t1(id int)engine=innodb;
create table t2(id int)engine=myisam;
create table t3(id int)engine=blackhole;
create table t4(id int)engine=memory;
insert into t1 values(1);
insert into t2 values(1);
insert into t3 values(1);
insert into t4 values(1);
[root db1] E:mysql5.6data 发现后两种存储引擎只有表结构,无数据
db.opt t1.frm t1.ibd t2.MYD t2.MYI t2.frm t3.frm t4.frm
#memory 在重启mysql或者重启机器后,表内数据清空
#blackhole 往表内插入任何数据,都相当于丢入黑洞,表内永远不存记录