MySql笔记
1、前言
比较少写这种文章,主要还是我 mysql 没系统化学习过,在写这篇前也只会 CRUD, 也不会 数据 库 设计😔,加上期末考正好要考 mysql,正好借这个机会重学一遍,顺便来记录一下这段学习中的一些 mysql 的操作。
2、操作数据库
==mysql 关键字 不区分大小写==(个人习惯,喜欢大写,方便区分),下文例子数据库以 kzsoft 为名。
表名与字段是关键字请带上反引号`
2.1、简单操作数据库
1、创建数据库
CREATE DATABASE IF NOT EXISTS kzsoft;
2、删除数据库
DROP DATABASE IF EXISTS kzsoft
3、使用数据库
USE kzsoft
4、查看数据库
SHOW DATABASES --查看所有的数据库 有s
2.2、数据库的数据类型
1、数值
类型 | 描述 | 所占字节 | 用途 |
---|---|---|---|
tinyint | 十分小的数据 | 1 个字节 | 一般用来当布尔值用 |
smallint | 较小的数据 | 2 个字节 | 少用 |
mediumint | 中等的数据 | 3 个字节 | 少用 |
int | 标准整数 | 4 个字节 | 常用,一般都用 int |
bigint | 较大的整数 | 8 个字节 | 少用 |
float | 单浮点数/单精度小数 | 4 个字节 | 少用 |
double | 双浮点数/双精度小数 | 4 个字节 | 少用 有精度问题 |
decimal | 字符串形式的浮点数 | 不一定 | 精度要求高用 decimal (金融计算) |
2、字符串
类型 | 描述 | 用途 |
---|---|---|
char | 固定大小 0~255,不可变长度 | 存手机号等固定长度 |
varchar | 可变字符串 0~65535 | 存可变字符串 存变量 |
tinytext | 微型文本 2^8-1 | 能用 text 就别用这个 |
text | 文本串 2^16-1 | 保存大文本 |
3、时 间日期
类型 | 描述 | 用途 |
---|---|---|
date | YYYY-MM-DD 日期 | 存日期 |
time | HH:mm:ss 时间 | 存 |
datetime | YYYY-MM-DD HH:mm:ss | 最常用的时间格式 |
timestamp | 时间戳形式 1970.1.1 8:00:00 到现在的毫秒数 | 但会有 2038 年问题 |
4、NULL
不要用 NULL 进行运算,结果为 NULL
2.3、字段类型
字段类似 | 描述 | 用途 | |
---|---|---|---|
Unsigned | 无符号整数 | 该列不能声明为负数 | |
zerofill | 用 0 填充 | 不足的位数 用 0 来填充 | |
自增 | 自动在上一条记录+1 (默认,可设置自增大小) | 设置唯一的主键 如 id | |
非空 | not null | 该字段不能为 NULL | |
默认 | 默认值 | 不指定 则默认值 |
以下字段 是未来做项目用的,表示一个记录的存在意义
id 主键
`version` 乐观锁
is_delete 伪删除
createAt 创建时间
updateAt 修改时间
2.4、 操作表
表名与字段,尽量用``括起来(你永远不知道,你的字段名会不会和关键字重名!)
字符串 通过单引号括起来
所有语句后面加,除了最后一行
PRIMARY KEY 主键一张表只有唯一的主键
1、创建表
CREATE TABLE IF NOT EXISTS `user` (
`id` INT(10) NOT NULL AUTO_INCREMENT COMMENT '用户id',
`username` VARCHAR(30) NOT NULL COMMENT '用户名',
`password` VARCHAR(30) NOT NULL COMMENT '密码',
PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8;
格式如下
CREATE TABLE [IF NOT EXISTS] `表名` (
`字段名` 列类型 [属性] [索引] [注释],
`字段名` 列类型 [属性] [索引] [注释],
`字段名` 列类型 [属性] [索引] [注释],
PRIMARY KEY(` `)
)[表类型] [字符集设置] [注释]
通过上面的手动通过 sql 语句创建表,对已创建的表可通过
-
SHOW CREATE DATABASE 数据库名
查看数据库的定义语句,也就是输出创建数据库的 sql 语句 -
SHOW CREATE TABLE 表名
查看表的定义语句,也就是输出创建表的 sql 语句 -
DESC 表名
–显示表的结构 (desc 是 describe 的缩写)2.5、数据库引擎
MYISM | INNODB | |
---|---|---|
事务支持 | 不支持 |