一、SQL命名规定和规范
1、注释应该清晰,简洁的解释SQL语句的意图、功能和影响
2、库、表、列名应该使用小字母、并使用下划线_或驼峰命名法
3、库、表、字段名应该简洁明了,具有描述性,反映其所存储数据的含义
4、库名应于对应的程序名一致,例如:程序名为EcommercePlatform数据库命名为ecommerce_platform
5、列表命名最好是遵循“业务名称_表”的作用例如:alipay_task、force_project、trade_config
6、列名应遵循“表实体_属性”的作用例如product_name
二、数据库定义语言
1、创建库
1、CREATE DATABASE IF NOT EXISTS 数据库名(防止数据库重复)
2、CREATE DATABASE 数据库名 CHARACTER SET 字符集 COLLATE 排序规则
注:MYSQL8默认值
字符集:utf8mb4
排序规则:utf8mb4_0900_aici (不区分大小写)
2、查看库
1、查看所有库
SHOW DATABASES;
2、查看当前所有库
SELECT DATABASE();
3、选中和切换库
use 数据库名;
3、创建表
CREATE TABLE IF NOT EXISTS 表名(
列名 类型 列可选约束
列名 类型 列可选约束 COMMENT ‘列可选注释’,
列名 类型 列可选约束 COMMENT ‘列可选注释’,
列名 类型 列可选约束 COMMENT ‘列可选注释’
);
4、数据类型
1、浮点类型
| 类型 | 存储(字节) | M(小数+整数位数) | D(小位数) |
| FLOAT(M,D) | 4 | 最大为24 | 最大为8 |
| DOUBLE(M,D) | 8 | 最大为53 | 最大为30 |
| DECIMAL(M,D) | 动态计算 | M最大为65 | 最大为30 |
2、字符串
| 字符串(文本) | 特点 | 长度 | 范围(字符) | 存储空间 |
| CHAR(M) | 固定长度 | M | 0<=M<=255(默认一个字符) | M*4个字节 |
| VARCHAR(M) | 可变长度 | M | Mysql一行数据最多65535字节 | M*4+1个字节 |
注:
1、VARCHAR(M)定义时,必须指定长度M,否则报错
2、VARCHAR类型默认会使用1字节标识符是否为null->65535-1=65534
3、mysql中一行数据最大的占有空间时65535字节,除了TEXT 、 BLOBs类型的列
3、时间类型
| 类型 | 名称 | 字节 | 日期格式 | 小值 | 最大值 |
| YEAR | 年 | 1 | YYYY或YY(一般用4位) | 1901 | 2155 |
| TIME | 时间 | 3 | HH::MM::SS | -838:59:59 | 838:59:59 |
| DATE | 日期 | 3 | YYYY-MM-DD | 1000-01-01 | 9999-12-31 |
| DATETIME | 日期时间 | 8 | YYYY-MM-DD HH::MM::SS | 1000-01-01 00:00:00 | 9999-12-31 00:00:00 |
| TIMESTAMP | 日期时间 | 4 | YYYY-MM-DD HH::MM::SS | 1000-01-01 00:00:00 | 2038-01-19 03:14:07 |
扩展:
DATETIME和TIMESTAMP类型自动初始化和更新
①ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
②dt DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
插入默认当前时间
①ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP
②dt DATETIME DEFAULT CURRENT_TIMESTAMP

被折叠的 条评论
为什么被折叠?



