数据库概念 文件作为数据进行存储,数据格式千差万别 将保存数据的地方统一起来 MYSQL---------》一款应用软件 用来帮你操作文件的 只要是基于网络通信,底层就是socket 服务端 --socket通信 --收发消息 --解析命令(sql语句) 客户端 --socket通信 --收发消息 --解析命令(sql语句) DBA:数据库管理员 sql语句优化(耗时不一样) **** RDBMS:数据库管理系统 关系型数据库 存储数据的时候,对于数据有条件限制 数据与数据之间有关联 通常都是以表格的方式存储 第一步需要创建表结构! Oracle ,sqlite, db2, sql server,MYSQL,access 非关系型数据库 特点:数据存储方式k,v键值对的形式 redis,mongodb,memcache 文件夹(库) 文件(表) ----》表头:字段 数据/记录(表记录/表数据) MYSQL 安装 客户端链接服务端 1.启动 服务端 mysqld 客户端 mysql -h 127.0.0.1 -P3306 -uroot -p 也支持简写 mysql -uroot -p 让你输入密码不用管,直接敲回车 sql语句第一条命令: 查看所有数据库 show databases; 是以;作为结束符号 注意:输入sql语句的时候,一定要以英文;结束 如果你输入的sql语句错了不想执行的话,可以在后面跟上c取消执行 退出mysql exit,quit 1.将mysql启动文件路径添加到环境变量 2.将mysqld制作成系统服务 查找 tasklist |findstr mysql 1.一定要先将mysqld杀死 taskkill /F /PID 33906 或者taskkill /f /im mysqld.exe 大小写都可以 2.mysqld --install 将mysqld服务端制作成系统服务(开机自启动) 3.设置密码 windows下的命令行windows>cmd mysqladmin -uroot -p password 123 #第一次修改完密码之后,之后还需要修改 mysqladmin -uroot -p123 password 123456 #为了后续调试方便,这里把密码设置为空值 mysqladmin -uroot -p123 password '新密码' 4.破解密码 windows下面的命令行windows>cmd 1.先关闭服务端 2.以跳过用户密码认证模式重新启动服务端 mysqld --skip -grant-tables 3.以管理员身份登录 4.修改mysql库里面的user表 mysql>cmd update mysql.user set password=password(123) #相当于全改,所以加限制 update mysql.user set password=password(123) where user=='root' and host=='localhost'; 5.先关闭跳过验证的服务端,以正常模式启动服务端 6.输入用户名密码正常登录 5.解决编码问题 1.在MySQL根目录下新建一个my.ini的配置文件,在里面给i顶加上下面的配置即可设置编码问题 [mysqld] character-set-server=utf8 collation-server=utf8_general_ci [client] default-character-set=utf8 [mysql] default-character-set=utf8 2.重新启动你的mysql,配置才会生效
## 基本sql语句 对数据的增删改查 sql书写错误,只要没加分号,可以加c使前面的sql语句失效 * 针对文件夹的(库) ```python # 增 create database db1 charset utf8; # 改 alter database db1 charset gbk; # 查 show databases; show create database db1; # 删 drop database db1; ``` * 针对文件的(表) 文件首先需要在文件夹下面,所以在操作文件之前,应该先确定操作的是哪个文件夹下面的文件 ```python # 切换文件夹 use db1; select database(); # 查看当前所在的库 # 增 create table t1(id int,name char); # 创建出来的可能是多个文件,解耦管理 # 改 alter table t1 modify name char(16); # 查 show tables; show create table t1; # 查看表的详细信息 describe t1; == desc t1; # 查看表结构 # 删 drop table t1; ``` * 针对(记录) ```python # 增 insert into db1.t1 values (1,'egon'),(2,'kevin'),(3,'jason'); # into可加可不加,db1可以不指定,默认就是在当前库下 # 改 update db1.t1 set name='DSB' where id > 1; update db1.t1 set name='DSB' where id = 2 or id = 3; # 查 select id,name from db1.t1; # db1可不指定,默认当前库下 select * from t1; # 删 delete from db1.t1 where id >3; delete from db1.t1 where name='egon' # 这里注意如果少了一个引号,后面无论敲什么都没有用了需要将引号补全 ``` ## 表操作 #### 存储引擎 文件格式有很多种,对应的软件也有很多种txt,pdf等 针对不同类型的文件,需要对应有不同的软件帮助我们去操作 ```python # 查看所有的存储引擎 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);