昨天内容回顾
-
数据库分类
数据库的本质是一个C/S的架构软件,那就必须有服务端和客户端 1. 关系型数据库 固定的表结构, 可以建立表与表之间的关系 常见数据库:MySQL(开源的, 硬盘), Oracle(商业版), sqllie,db2, SQLserver,access 2. 非关系型数据库 没有固定的表结构,以k:v键值对的形式存储 常见非关系型数据库:redis(缓存, 内存), memcache, mongodb 热数据:经常被访问的 冷数据:不经常用
-
下载与安装
""" 1.官网下载安装包 2.解压zip文件 bin mysql.exe 自带的客户端 mysqld.exe 服务端 一定要先启动服务端,客户端去连接 data 文件夹,一个文件夹代表一个库 一个数据表有几个文件? 文件的数据取决于存储引擎 3.加入环境变量 把bin目录的路径加入到环境变量中, 4. 制作系统服务 添加服务:mysqld --install 删除服务:mysqld --remove 启动服务: 进入服务的三种方式: 1. 在任务栏右键 2. windows + r => services.msc 3. 在我的电脑 => 右键 => 管理 1. 鼠标点点点 2. net start mysql 关闭服务: net stop mysql """
-
重要概念
数据库的组成部分: 库 =》文件夹 表 => 文件 记录 =》 文件里的数据 字段 => 表头
-
配置文件
文件名:my-default.ini => my.ini \s; 查看mysql的基本信息 强调:只要改变了配置文件,都要重启服务端
-
库的增删改查
注意: 每一个sql语句,都要以;结尾 1. 查看所有库: show databases; 2. 创建库: create database 库名 charset='utf-8'; 3. 删库: drop database 库名;
-
表的增删改查
1. 查看所有表: show tables; 2. 先切库: use 库名; 如果不use, 指定库名, mysql.user 3. 创建表: create table t1 (id int, name varchar(4), age int); 4. 查看表结构 desc t1; show create table t1; 5. 修改: alter table t1 rename userinfo; alter table t1 modify name varchar(16); 6. 删表: drop table t1; 面试题: 如何给已经存有100w的数据,增加一个字段? 上线流程: 1. 准备你的sql语句 2. 把你的代码提交到git仓库中 3. 注意:上线之前一定要先上表,在上代码。
-
记录的增删改查
1. 查询数据 select * from t1; select id, name, age from t1; (推荐) 2. 增加数据 insert into t1 (id, name, age) values (1, 'wkj', 18); insert into t1 (id, name, age) values (2, 'www', 19), (3, 'WWW', 20); 3.修改数据 update `t1` set `name`='wkj' where id=1; 4. 删除数据 delete from t1 where id=1;
今日内容概要
1.存储引擎
2.数据类型
3.整型:
tinyint smallint int bigint
4.浮点型
float double decimal
5.字符串
char varchar
6.日期类型
datetime 年月日 时分秒
time 时分秒
date 年月日
year 年份
7.枚举和集合
enum set
8.创建表的完整语句
-
约束条件
在已有条件的基础上在做限制 1.zerofill 2.unsigned 3.not null 4.primary key 5.auto_increment 6.foreign_key 7.unique 8.default
-
存储引擎
# 就是存储数据的方式 # 如何查看存储引擎? 都有哪些存储引擎? show engines; MyISAM: mysql5.5版本及之前的版本默认引擎 查询速度比InnoDB快, 安全性低 # 不支持事务 # 表级锁 InnoDB mysql5.6及之后的版本默认引擎 查询速度比MyISAM慢, 安全性高 # 功能: 1. 支持事务 2. 行级锁 3. 外键 MEMORY => 内存 # 数据是在内存中 面试题: MyISAM和InnoDB引擎的区别? # 指定引擎 create table t2 (id int) engine='MyISAM'; create table t3 (id int) engine='InnoDB'; create table t4 (id int) engine='MEMORY'; MyISAM .frm => 表结构 .MYD => 表数据 .MYI => 索引(目录)优点:查询速度快 InnoDB .frm => 表结构 .ibd => 表数据和索引 MEMORY .frm => 表结构
-
数据类型之整型
tinyint smallint int bigint # 他们之间的区别就是存储数据的范围不一样 # 验证整型默认是否带符号 create table t6 (id tinyint); insert into t5 values(-129), (256); # 结论:所有的整型默认都是带符号的。
-
数据类型之浮点型
float double decimal # float(8, 2) 999999.99 float(255,30) 总共255位,小数30位 double(255,30) 总共255位,小数30位 decimal(60,30) 总共60位,小数30位 create table t6 (id float(255,30)); create table t7 (id double(255,30)); create table t8 (id decimal(60,30)); insert into t6 values(1.11111111111111111111111111); insert into t7 values(1.11111111111111111111111111); insert into t8 values(1.11111111111111111111111111); # 精确度不一样 decimal > double > float 设计表注意: 1、 表结构中的数据类型 2、该表中上线之后可能会产生多少数据量?order
-
数据类型之字符串
# 两种字符串括号中的数字必须写, 代表存储字符串的长度 char(4) 存储4位,不够的空格补齐4位,超过4位的报错 # 优点 查询速度快, 整存整取 # 缺点 浪费空间 varchar(4) 存储4位,有几位存几位,超过的报错 # 优点: 节省空间 # 缺点 查询速度比char慢 char(4) varchar(4) pack(2) => 1 pack(10) => 1 unpack(1) => 2 unpack(1) => 10 1byteskevin1bytesegon1bytesjasonlytom # 验证 create table t10 (id int, name char(4)); create table t9 (id int, name varchar(4)); insert into t10 values(1, 'wkj'); insert into t9 values(1, 'wkj');
-
数据类型之日期类型
datetime date time year # create table t12 (id int, r1_time datetime, r2_time date, r3_time time, r4_time year); # insert into t12 values (1, '2021-7-27 11:11:11','2021-7-27','11:11:11','2021');
-
数据类型之枚举
# 枚举 多选一 create table t13 ( id int, gender enum('male', 'female', 'other') ); # insert into t13 values (1, 'male');
-
数据类型之集合类型
# 集合 create table t14 ( id int, hobby set('read', 'music', 'football', 'lm') ); # insert into t14 values(1, 'read');
-
创建表的完整语句
create table 表名 ( 字段名 数据类型(长度) 约束条件1 约束条件2 约束条件3, 字段名 数据类型(长度) 约束条件1 约束条件2 约束条件3, 字段名 数据类型(长度) 约束条件1 约束条件2 约束条件3, 字段名 数据类型(长度) 约束条件1 约束条件2 约束条件3 ) # 注意: 1. 表中字段名和数据类型是必填项, 约束条件是可选的 2. 约束条件可以有多个,依次往下写 3. SQL语句的最后一个不能加逗号(,)
参考:存储引擎:https://www.cnblogs.com/linhaifeng/articles/7213670.html
数据类型:https://www.cnblogs.com/linhaifeng/articles/7233411.html