一、数据库介绍
1、数据库:数据库即存放数据的仓库,只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的
2、MySQL:用于管理文件的一个软件(两个程序)
只要是基于网络通信,底层都是socket!!! 服务端 -socket通信 -收发消息 -解析命令(sql语句) 客户端 -socket通信 -收发消息 -解析命令(sql语句)
3、DBMS(DataBase Management System):数据库管理系统
①关系型数据库(*****) 存储数据的时候,对于数据有条件限制 数据与数据之间有关联 通常都是以表格的方式存储 第一步需要创建表结构! oracle, sqlite, db2, sql server,MySQL,access ②非关系型数据库(*****) 数据存储方式 k,v键值对的形式 redis,mongodb,memcache
二、数据库安装与使用
1、下载mysql -->
压缩 --> 改名字mysql56 --> cmd(管理员身份) --> cd D:mysql56in --> D: --> mysqld cmd(普通) --> cd D:mysql56in --> D: --> mysql -h 127.0.0.1 -p 3306 -uroot -p --> 输密码不用管回车 --> 查看所有数据库 show databases;(后面必须带分号,敲错了用c退出)
2、将mysql启动文件路径添加到环境变量中
D:mysql5.7in
重新打开cmd(管理员身份)--> mysql
3、将mysql制作成系统服务 --> 登进services.msc查看,没有MySQL
一定先将mysql杀死 --> cmd(管理员身份) --> mysqld cmd(管理员身份) --> mysql --> tasklist |findstr mysqld --> taskkill /F /PID XX 关掉两个cmd 重开新的cmd(管理员身份) --> mysqld --install # 将mysql服务端制作成系统服务(开机自启动) 登进services.msc查看,有MySQL,启动MySQL 再开一份cmd(管理员身份) --> mysql -uroot -p --> show databases;
4、修改密码
重开cmd(管理员身份) --> mysqladmin -uroot -p password 123 --> mysqladmin -uroot -p123 password 3822515 --> 登录:mysql -uroot -p3822
5、破解密码(密码忘记了解决方式):跳过密码登录再修改密码
登进services.msc,把MySQL停止服务 --> cmd(管理员身份)--> tasklist |findstr mysqld --> mysqld --skip-grant-tables(跳过用户密码认证模式) 打开新的cmd(管理员身份) --> mysql -uroot -p(没有密码也可以登进去) --> 登进去修改密码:update mysql.user set password=password(3822515) where user='root' and host='localhost'; --> quit --> 两个cmd都关掉,登进services.msc中启动MySQL(关闭跳过验证的服务端,以正常模式启动服务端) cmd(管理员身份) --> mysql -uroot -p3822515 --> show databases;
6、解决编码问题
cmd(管理员) --> mysql -uroot -p3822515 --> s (出现下方表格数据有五花八门的编码(latinl、gbk),统一改成utf8)
打开D盘中mysql56文件夹,新建文件夹(文本文档),命名为my.ini,然后用Notepad++打开,添加配置,配置为下:
[mysqld] character-set-server=utf8 collation-server=utf8_general_ci [client] default-character-set=utf8 [mysql] name='root' password=3822515 default-character-set=utf8
重新登进services.msc,然后重新启动MySQL,然后表格中五花八门的编码都统一改成了utf8
三、基本sql语句操作
1、库
①增 create database db1 charset utf8;
②查 show create database db1;
③改 alter database db1 charset gbk;
④删 drop database db1;
2、表
应该在具体某一个库下面创建表 use day41; # 切换到指定的库内 select database(); # 查看当前所在的库 ①增 create table userinfo(id int,name char); ②查
show tables show create table userinfo # 查看表的详细信息 describe userinfo # 查看表结构 ③改 alter table userinfo modify name char(16); # 提醒,在创建char类型字段的时候,建议加上数字char(32) ④删 drop table userinfo;
3、数据
①增 insert into userinfo values (1,'egon'), (1,'egon'), (3,'echo'), (4,'eason') ; ②查 select id,name from userinfo; # db1可不指定,默认当前库下 select * from userinfo; ③改 update userinfo set name='DSB' where id > 1; update userinfo set name='DSB' where id = 2 or id = 3; ④删 delete from userinfo where id >3; delete from userinfo where name='egon' # 引号一定要加上
四、存储引擎
1、为什么
文件格式有很多种,对应的软件也有很多种txt,pdf等
针对不同类型的文件,需要对应有不同的软件帮助我们去操作
2、查看所有的存储引擎
show engines;
3、查看不同存储引擎存储表结构文件特点 (*****):
①create table t1(id int)engine=innodb; # 用innodb存,创了两个表:frm表结构 ibd存的真实的数据 ②create table t2(id int)engine=myisam; # 三个表:frm表结构,MYD存储数据,MYI基于索引插数据,所以比innodb快 ③create table t3(id int)engine=blackhole; # 一个表:frm表结构 ④create table t4(id int)engine=memory; # 一个表:frm表结构 为什么:这个引擎的数据是存在内存的,不是在硬盘里
4、插入数据
insert into t1 values(1); insert into t2 values(1); insert into t3 values(1); insert into t4 values(1);
5、查看数据
select * from t1; select * from t2; select * from t3; select * from t4;