当前位置: 首页 > news >正文

Mysql-基础和DDL

1.初识MySQL

数据库总览

  • 关系型数据库 ( SQL )

    • MySQL , Oracle , SQL Server , SQLite , DB2 , …
    • 关系型数据库通过外键关联来建立表与表之间的关系
  • 非关系型数据库 ( NOSQL )

    • Redis , MongoDB , …
    • 非关系型数据库通常指数据以对象的形式存储在数据库中,而对象之间的关系通过每个对象自身的属性来决定

SQL语句

  • MySQL数据库的SQL语句不区分大小写,关键字建议使用大写。

注释

  • 单行注释:-- 注释内容 或 # 注释内容

  • 多行注释:/* 注释内容 */

2.SQL分类

SQL语句,根据其功能,主要分为四类:DDL、DML、DQL、DCL。

名称 解释 命令
DDL(数据定义语言) 用来定义数据库对象(数据库,表, 字段) CREATE,DROP,ALTER
DML(数据操作语言) 用来对数据库表中的数据进行增删改 INSERT,UPDATE,DELETE
DQL(数据查询语言) 用来查询数据库中表的记录 SELECT
DCL(数据控制语言) 用来创建数据库用户、控制数据库的访问权限 CRANT,commit,rollback

3.数据类型(列类型)

1、整型

MySQL数据类型 含义(有符号)
tinyint(m) 1个字节 范围(-128~127)
smallint(m) 2个字节 范围(-32768~32767)
mediumint(m) 3个字节 范围(-8388608~8388607)
int(m) 4个字节 范围(-2147483648~2147483647)
bigint(m) 8个字节 范围(±9.22*10的18次方)

取值范围如果加了unsigned(无符号),则最大值翻倍,如tinyint unsigned的取值范围为(0~256)。

2、浮点型(float和double)

MySQL数据类型 含义
float(m,d) 单精度浮点型 32位(4字节) m总个数,d小数位
double(m,d) 双精度浮点型 64位(8字节) m总个数,d小数位

double取值范围:

  • 正数范围:大约是 2.2250738585072014×10的−308次方 到 1.7976931348623157×10的308次方。
  • 负数范围:大约是 −1.7976931348623157×10的308 次方 到 −2.2250738585072014×10的−308次方。

float取值范围:

  • 正数范围:大约是 1.175494351×10的−38次方 到 3.402823466×10的38次方。
  • 负数范围:大约是 −3.402823466×10的38次方 到 −1.175494351×10的−38次方。

设一个字段定义为float(6,3),如果插入一个数123.45678,实际数据库里存的是123.457,但总个数还以实际为准,即6位。整数部分最大是3位,如果插入数12.123456,存储的是12.1234,如果插入12.12,存储的是12.1200

3、定点数

浮点型在数据库中存放的是近似值,而定点类型在数据库中存放的是精确值。

decimal(m,d) 参数m<65 是总个数,d<30且 d<m 是小数位。

4、字符类型

MySQL数据类型 含义
char(n) 固定长度,检索快费空间,最多255个字符
varchar(n) 可变长度,最多65535个字符
tinytext 可变长度(微型文本串),最多255个字符
text 可变长度,最多65535个字符,Max:64K
mediumtext 可变长度,最多2的24次方-1个字符,Max:16M
longtext 可变长度,最多2的32次方-1个字符,Max:4G

char与varchar:

CHAR(4) 存储需求 VARCHAR(4) 存储需求
‘’ ’ ’ 4个字节 ‘’ 1个字节
‘ab’ 'ab ’ 4个字节 'ab ’ 3个字节
‘abcd’ ‘abcd’ 4个字节 ‘abcd’ 5个字节
‘abcdefgh’ ‘abcd’ 4个字节 ‘abcd’ 5个字节

5、日期时间类型

MySQL数据类型 含义
date YYYY-MM-DD格式,如:2009-07-19
time HH:MM:SS格式,如:11:22:30
datetime YYYY-MM-DD HH:MM:SS格式,如:2009-07-19 11:22:30
timestamp 自动存储记录修改时间,YYYY-MM-DD HH:MM:SS格式,如:2009-07-19 11:22:30
year YYYY格式的年份值,范围:1901~2155

若定义一个字段为timestamp,这个字段里的时间数据会随其他字段修改的时候自动刷新,所以这个数据类型的字段可以存放这条记录最后被修改的时间。

6、二进制字符串类型

MySQL中的二进制字符串类型主要存储一些二进制数据,比如可以存储图片、音频和视频等二进制数据。

类型 特点 长度 占用空间
binary(n) 固定长度 最多255个字符,0<=M<=255 M
varbinary(n) 可变长度 最多65535个字符,0<=M<=65535 M+1
tinyblob L(字节) 0<=L<=255 L+1
blob L(字节) 0<=L<=65535(相当于64k) L+2
mediumblob L(字节) 0<=L<=16777215(相当于16M) L+3
longblob L(字节) 0<=L<=4294967295(相当于4G) L+4

7、ENUM类型

ENUM类型也叫作枚举类型,ENUM类型的取值范围需要在定义字段时进行指定。设置字段值时,ENUM 类型只允许从成员中选取单个值,不能一次选取多个值。 其所需要的存储空间由定义ENUM类型时指定的成员个数决定。

  • 当ENUM类型包含1~255个成员时,需要1个字节的存储空间;
  • 当ENUM类型包含256~65535个成员时,需要2个字节的存储空间。
  • ENUM类型的成员个数的上限为65535个。
CREATE TABLE test_enum(
season ENUM('春','夏','秋','冬','unknow')
);
 
INSERT INTO test_enum
VALUES('春'),('秋');
 
# 忽略大小写
INSERT INTO test_enum
VALUES('UNKNOW')

相关文章:

  • DeepSeek 为何能在短时间内超过 ChatGPT?—— 技术变革与成本重构的双重胜利
  • Spring AI Alibaba EmbeddingModel使用
  • 堆的常见应用2
  • MySQL中的内连接与外连接详解:基础与进阶应用
  • 函数:链式访问
  • 【操作系统】(五)操作系统引导(Boot)
  • Leetcode13-罗马数字转整数
  • Django框架指南:从入门到进阶
  • 【蓝桥杯】3月27日笔记
  • C++:无序关联容器
  • 修改 docker0 网卡配置的详细步骤
  • Baklib内容中台驱动AI技术融合创新
  • 无穿戴动作捕捉设备:无穿戴,无标记点摄像头智能捕捉人体姿态
  • 【Exception】MybatisPlusException: can not find lambda cache for this entity
  • 【JavaScript】七、函数
  • Spring集成Web环境搭建
  • 什么是LangChain,为什么我们选择使用LangChain,以及它的典型应用场景
  • HCIE-day15-L3VPN
  • 练习:求平方根
  • mysql数据恢复 深度扫描碎片 智能给出恢复建议并执行恢复操作
  • 购物网站开发总结报告/今日国际新闻事件
  • 泉州专业做网站公司/东莞今天新增加的情况
  • 钢铁建设网站/网页设计框架
  • 企业网站包括哪些/百度霸屏推广靠谱吗
  • asp网站开门/百度高级搜索功能
  • wordpress图插件/上海最专业的seo公司