mysql-基础
MYSQL
什么是数据库
数据库 DB DataBase
数据仓库、存储数据、管理数据
数据库分类
关系型数据库(SQL)
表和表之间、行和列之间的关系进行存储数据
非关系型数据库(NOSQL)
{key,value}形式
对象存储
DBMS(数据库管理系统)
数据库的管理软件
MYSQL介绍
MYSQL是一个关系型数据库管理系统
mysql安装
- 官网选择版本下载压缩包、解压
https://downloads.mysql.com/archives/community/
- 创建一个ini文件、放到bin目录的上一级填写相关配置
1 | [mysqld] |
设置环境变量设置为mysql的bin目录
进入dos命令界面
mysqld -install 服务名
初始化服务
mysqld --initialize --console
初始化mysql、记住打印出来的root@localhost后面的字符串、这个是mysql第一次的密码
net start 服务名
启动服务
mysql -u root -p
登录、这个时候输入刚才的那个初始密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
更改密码、这个时候就更该成了你想要的的密码了
net stop 服务名
关闭服务(在你想关闭的时候关闭、这个不在安装步骤中)
DDL
数据定义语言
CREATE
ALERT
DROP
DML
数据操作语言
INSERT
UPDATE
DELETE
DQL
数据查询语言
- SELECT
DCL
数据控制语言
GRANT
REVOKE
MYSQL 基本命令
1 | SHOW DATABASES; -- 显示所有的数据库 |
操作数据库
创建数据库
1 | CREATE DATABASE test; -- 创建数据库 |
使用数据库
1 | use 数据库名 -- 切换数据库 |
删除数据库
1 | DROP DATABASE test; -- 删除数据库 |
数据库列的类型
数值
tinyint
1个字节 十分小的数据
smallint
2个字节 较小的数据
mediumint
3个字节 中等大小的数据
int
4个字节 标准的整数 常用
bigint
8个字节 较大的数据
float
4个字节 浮点数
double
8个字节 浮点数
decimal
字符串形式的浮点数 用在金融上
字符串
char
字符串固定大小的0 ~ 255
varchar
可变字符串 0 ~ 65535 常用的变量
tinytext
微型文本 2^8 - 1
text
文本串 2^16-1 保存大文本
时间日期
data
YYYY-MM-DD 日期格式
time
HH:mm:ss 时间格式
datetime
YY-MM-DD HH:mm:ss 最常用的时间格式
timestamp
时间戳、从1970年1月1日到现在的毫秒数
year
年份表示
null
null
没有值
数据库的字段属性
unsigned
unsigned
无符号整数 如果声明、该列不能为负数
zerofill
zerofill
0填充的 不足的位数、使用0来填充
int(6) 6 000006
自增
自增
自动在一条记录基础上 + 1 通常设计唯一的主键 index必须是整数类型
非空
not null
如果设置not null、如果不给它赋值、就会报错 null不给予值、默认就是null
默认
默认
设置默认值、如果不指定其别的值、就是默认值不变
创建数据库的表
1 | -- 表名称 和 字段 尽量使用 `` 飘号括起来 |
每个表必须要有的五个字段
id
主键
version
乐观锁
is_delete
伪删除
gmt_create
创建时间
gmt_update
更新修改时间
查看创建数据库的语句
1 | SHOW CREATE TABLE student -- 查看创建表的语句 |
数据表的类型
INNODB
默认使用
MYISAM
早期使用的
INNDB 和 MYISAM 的区别
MYISAM | INNODB | |
---|---|---|
事务支持 | 不支持 | 支持 |
数据行锁定 | 不支持 | 支持 |
外键约束 | 不支持 | 支持 |
全文索引 | 支持 | 不支持 |
表空间大小 | 较小 | 较大 约MYISAM的2倍 |
物理空间
所有的数据库文件都存在data目录下、一个文件就对应一个数据库
本质是文件的存储
Innodb物理文件
Innodb 在数据库表中有一个*.frm文件、和上级目录中的ibdata1文件
MYISAM物理文件
*.frm 表结构的定义文件
*.MYD 数据文件(data)
*.MYI 索引文件(index)
数据库表的字符集
CHARSET=UTF8
mysql数据库表要设置字符集编码、否则默认的Latin1字符集编码不支持中文、所以要设置utf8
my.inn配置文件也可已配置、但是这个是物理层面上设计的、不通用、所以为了增强、表层面上也要设置
修改和删除表
修改表
1 | -- ALTER TABLE 原表名 RENAME 新表名 |
CHANGE
用来字段重命名、不能修改字段类型和约束
MODIFY
用来修改字段类型和约束、不能用来字段重命名
删除表
1 | -- DROP TABLE 表名 |
所有创建和删除操作尽量加上判断
mysql数据管理
DML
插入数据
1 | -- INSERT INTO 表名(字段名) VALUES(与字段名一一对应的要插入的数据) |
更新数据
1 | -- UPDATE 表名 SET 要修改的字段 = 要修改的值 WHEERE 根据哪个字段修改的名字 = 值 |
操作符 | 含义 |
---|---|
BETWEEN AND | 区间范围 |
AND | 我和你的意思 |
OR | 我或你的意思 |
删除数据
1 | -- DELETE FROM 表名 WHERE 根据哪个字段删除的名字 = 值 |
外键
创建时添加外键
1 | -- 表名称 和 字段 尽量使用 `` 飘号括起来 |
修改时创建外键
1 | -- 修改时添加外键 |
删除外键时、要先删除引用被人的表(从表)、再删除被引用的表(主表)
正确的开始、微小的长进、然后持续、嘿、我是小博、带你一起看我目之所及的世界……
本文标题:mysql-基础
发布时间:2021年11月13日 - 20:43
最后更新:2021年11月13日 - 20:45
原始链接:https://codexiaobo.github.io/posts/181837817/
许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。