mysql基础-note-4.20

#昨日内容回顾

  • 作业讲解
  • 常用模块
random	随机验证码
hashlib	用户信息加密、文件内容一致性比对
json	序列化与反序列化
  • 软件开发架构
	c\s架构	b\s架构
	服务端所必备的三个条件
	1.固定的IP和PORT
	2. 24小时不间断提供服务
	3.支持高并发(同一时间能为多个客户提供服务)
  • 数据库简介
1.本质:一款c\s架构的软件
2.SQL语句
3.数据库的分类
	关系型数据库
	非关系型数据库
4.MySQL下载与安装
	(1)不同版本,SQL语句都相同
	(2)下载对应版本压缩包并解压
	(3)配置环境变量	bin文件夹
		mysql.exe	客户端
		mysqld.exe	服务端
	(4)制作系统服务
		管理员身份打开cmd窗口输入
			mysqld --install
		启动服务
			net start mysql
		打开cmd窗口输入mysql游客模式登陆
			mysql
		关闭服务
			net stop mysql
		卸载服务
			mysqld --remove

今日内容

MySQL重要概念

数据库		文件夹
数据表		文件夹里面的文件
数据(记录)	文件夹里面的文件里面的一行行数据

用户登录

1.游客模式
	mysql即可,但是权限很少
2.用户名密码方式
	mysql -u用户名 -p 密码
	#1.以管理员身份初次登陆的时候 没有密码
	1.输入管理员身份登陆
	mysql -uroot -p
	2.提示输入密码直接回车即可
3.基本SQL语句
	SQL语句是以分号作为结束符(登陆到服务端之后)
	(1)查看所有的数据库名称
		show databases;
	(2)如果输入的SQL语句有误
		可以直接输分号回车,报错之后重新输入即可
		或者使用\c直接取消之前的命令
	(3)修改密码
		mysqladmin -uroot -p原密码 password 新密码
		该语句应该直接在终端窗口下运行,需要再次输入原密码校验
		mysqladmin -uroot -p password 123
		需要再次输入原密码校验
		
	

忘记密码破解登陆

1.卸载重新安装
注意保存好数据文件,之后卸载重新安装并在data文件夹下粘贴之前靠拷贝的数据即可

2.先以不校验用户身份的模式启动服务端(仅限于本机修改密码)
	之后修改密码再以正常娇艳用户身份的方式启动即可
	(1).停止正常的服务端
		net stop mysql
	(2).以跳过授权表的形式启动服务端
		mysqld --skip--grant-tables
	(3).修改特定用户的密码(重置密码)
		update mysql.user set password=password(666)(所有用户密码均改为666)
		update mysql.user set password=password(666) where user="root" and host="localhost"
	(4).退出客户端并停止服务端然后以正常的方式启动服务端
		net stop mysql
		net start mysql
	(5).输入密码登陆即可

配置文件

MySQL目录结构
	bin文件夹	存放启动文件
	data文件夹	存放所有数据
	readme文件	类似于说明书
	my-default.ini	mysql的默认的配置文件
	my-default.ini文件不要做修改,如果需要修改配置则拷贝一份并进行更名,如my.ini

1.\s查看基本信息
	如果编码有好几种,则可能会出现乱码
	需要统一编码(utf8)
2.在自己的配置文件中指定编码(固定代码)
[mysqld]
	character-set-server=utf8
	collation-server=utf8_general_ci[client]
3.修改配置文件之后需要重启服务端才能生效

#扩展补充
如果觉得每次登陆时输入用户名和密码过于繁琐
可以在配置文件中输入用户名密码(额外添加两行数据)

基本SQL语句

1.针对库的增删改查
(1).查看所有的数据库
	show databases;
	show create database 数据库名字;#针对性查看
(2).新增数据库
	create database 数据库名字;
(3).修改数据库(编码)
	alter database 数据库名字 charset="gbk"(4).删数据库(千万不要删除自带的数据库)
	drop database 数据库名字;
	
2.针对表的增删改查
	#由于表是存放于文件中,需要在操作之前明确库
	(1).查看当前在哪个库
	select database();
	(2).切换到指定的库下
		use 数据库名字;
		#尽量不要使用mysql自带的数据库
	(3).先创建库
		create db1;
	(4).切换到db1下;
		use db1
3.针对数据的增删改查
	(1).查看当前库下所有的表名称
		show tables;
		show create table	#查看具体的表结构信息
		desc 表名;#查看具体的表字段信息
	(2).创建表
		create table 表名(id int,name, char);
	(3).修改表
		alter table 表名 modify name varchar(16);#字段类型
	(4).删除表
		drop table 表名;
		
3.针对数据的增删改查
	先明确库和表
	(1).查看表里面所有的数据
		select * from 表名;	#*号表示所有字段数据
		select * from 库名.表名;
		当表子段特别多展示时会出现混乱,可以采用分行处理
	(2)分行处理
		select * from mysql.user\G;	
		也可以自己制定字段
	(3).添加表字段
		insert into 表名 values(字段对应的数据1,字段对应的数据2)
		insert into 表名 values(……),(……),()
	(4.修改数据
		#将用户名jason修改为jasonNB
		update 表名 set name='jasonNB' where id=1;
	(5).删除数据
		delete 

存储引擎

不同的存储引擎在存储数据的时候采取的策略和内部原理互不相同
# 查看所有的存储引擎
show engines;
#需要了解四个
MyISAM
	MySQL5.5及之前版本所默认的存储引擎
	优点是存取数据速度非常快;缺点是安全性不高并且功能很少
InnoDB
	MySQL5.6及之后版本所默认的存储引擎
	优点是功能很多并且数据安全性更高
	缺点是较于MyISM存取速度稍慢
BlackHole
	往里面写入的任何数据都会消失,类似于垃圾箱
memory
	数据基于内存存取
	优点是速度极快
	缺点时数据断电立刻丢失

#在创建表的时候可以自己指定存储引擎
不同存储引擎产生的文件个数也不同
innodb	>>> .frm	存储表结构
			.MYD	存储表数据及索引(类似于书的目录)
myisam	>>>	.frm	存储表结构
			.MYD	存储表数据
			.MYI	单独存储索引()

基本数据类型

1.数字类型
(1).整数类型		#整数类型都是自带符号的
	tinyint
	smallint
	int
	bigint
		#不同int类型能够存储数字范围不同,
验证整数类型是否自带符号
	create table t5(id tinyint);
	insert into t5 values(-129),(256);	
	#-128 127	超出范围只能存最大极限
(2)浮点类型
	float(255,30)	总共255位,小数占30位
	double(255,30)	总共255位,小数占30位
	decimal(65,30)	总共65位,小数占30位
验证三种类型的区别
	create table t6(id float(255,30));
	create table t7(id double(255,30));
	create table t8(id decimal(65,30));
	insert into t6 values(1.111111111111111111111111111111);
	insert into t7 values(1.111111111111111111111111111111);
	insert into t8 values(1.111111111111111111111111111111);
#三者精确度不一样,float<double<decimal
#补充:有时候为了避免数字精确度问题,很多看似需要使用数字类型存储的数据其实内部都是存的字符串

2.字符类型
(1).char(4)	只能存储4个字符,超过了报错,不超过自动空格填充至四位存储
(2).varchar(4)	只能存储4个字符,超过了报错,不超过有几个存几个
验证括号内数字的限制作用
create table t9(name char(4));
create table t10(name varchar(4));
insert into t9 values('jason'),('tom'),('tony');
insert into t10 values('jason'),('tom'),('tony');

"""
严格模式
5.6及之前的版本数据就算不符合字段限制也不会报错,这个现象是不好的
5.7及之后的版本数据不符合会直接报错
#查看严格模式
show variables like '%mode%'

#修改严格模式
set global sql_mode="STRICT_TRANS_TABLES";
#退出客户端重新进去即可


"""
char_length()	统计字段存储的数据长度
#char内部自动填充空格,但是在读取数据的时候又会自动移除填充的空格
#如果需要查看内部原理,还需要再添一个严格模式

"""
数字类型括号里面的数字并不是用来限制存储长度,而是控制展示长度
#结论:在定义数字类型的字段时候不需要考虑括号里面的数字写多少,只需要写数字类型的名称即可	int

"""

今日内容

1.整理今日内容
	动手敲代码
2.修改管理员密码并且将密码写到配置文件并启动
	密码
	字符编码
3.在自己的电脑上验证四个存储引擎的特点
4.创建一张用户表
	需要涵盖上课讲的所有字段类型
	并尝试着录入几条数据
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值