MySQL 基础知识(二)

SQL语句

  • SQL是一种数据库查询和程序设计语言,专门用来操作关系数据库
  • 用于存取数据以及查询、更新和管理关系数据库系统。

【可以通过SQL操作 oracle、sqlserver、mysql、sqlite 等所有的关系型数据库。】


SQL语言分类

  • 数据检索 select 语句
  • 数据操作 dml 语句:对数据进行增加、修改、删除【insert,delete,update】
  • 数据定义 ddl 语句:进行数据库、表的管理等【create,drop,alter,truncate】
  • 事务操作 tcl 语句:事务处理语言,对事务进行处理【commit,rollback,savepoint】
  • 数据控制 dcl 语句:进行授权与权限回收【grant revoke】

【SQL语句不区分大小写】


常用命令

  • 查看版本:select version();
  • 显示当前时间:select now();
  • ⭐查看所有数据库:show databases;
  • ⭐切换使用的数据库:use 数据库名;
  • ⭐查看当前使用的数据库:select database();
  • ⭐创建数据库:create database XXX;
  • ⭐查看数据库下的表:show tables from 数据库名;
  • ⭐查看表的信息:desc 表名;
  • 删除数据库:drop database 数据库名;

数据有效性

一个数据库就是一个完整的业务单元,可以包含多张表,相关的数据被存储在表中。

  • 为了更加准确存储表中的数据,保证数据的正确有效性,在创建表的时候,为表添加一些强制的验证,包括数据字段的类型,约束条件等。
  • 数据类型的使用原则是:够用就行,尽量使用取值范围小的,可以节省存储空间。

常用的数据类型:

  • 整数:int、bit
  • 小数:decimal
  • 字符串:varchar、char
  • 日期时间: date、time、datetime
  • 枚举类型:(enum)

整型

  • 作用:存储年龄,等级,id,各种号码。

tinyint[(m)]  [unsigned] [zerofill]

小整数,用于保存一些范围的整数数值范围:

  • 有符号:-128 ~ 127
  • 无符号:0 ~ 255
  • MySQL中无布尔值,使用tinyint(1)构造。

int[(m)]  [unsigned] [zerofill]

整数,用于保存一些范围的整数数值范围:

  • 有符号:-2147483648 ~ 2147483647
  • 无符号:0 ~ 4294967295

bigint[(m)]  [unsigned] [zerofill]

大整数,用于保存一些范围的整数数值范围:

  • 有符号:-9223372036854775808 ~ 9223372036854775807
  • 无符号:0 ~ 18446744073709551615

⭐int 类型后面的存储是显示宽度,而不是存储宽度。

int 的存储宽度是4个Bytes,即32个bit,即2**32。

  • 无符号最大值为:4294967296-1
  • 有符号最大值:2147483648-1

【有符号和无符号的最大数字需要的显示宽度均为10,针对有符号的最小值需要11位才能显示完全,所以 int 类型默认的显示宽度为11是非常合理的】

【整形类型没有必要指定显示宽度,使用默认的就好】


浮点型

  • 定点数类型:DEC等同于DECIMAL
  • 浮点类型:FLOAT DOUBLE
  • 作用:存储薪资、身高、体重、体质参数等。

FLOAT [(M,D)]   [UNSIGNED] [ZEROFILL]

单精度浮点数(非准确小数值),M是全长,D是小数点后个数。M最大值为255,D最大值为30。

  • 有符号:-3.402823466E+38 ~ -1.175494351E-38                                                                                   6 1.175494351E-38 ~ 3.402823466E+38
  • 无符号:1.175494351E-38 ~ 3.402823466E+38

【精确度:随着小数的增多,变得不准确。】

DOUBLE[(M,D)]  [UNSIGNED] [ZEROFILL]

双精度浮点数(非准确小数值),M是全长,D是小数点后个数。M最大值为255,D最大值为30。

  • 有符号:-1.7976931348623157E+308 ~ -2.2250738585072014E-308                                                   2.2250738585072014E-308 ~ 1.7976931348623157E+308
  • 无符号:2.2250738585072014E-308 ~ 1.7976931348623157E+308

【精确度:随着小数的增多,精度比float要高,但也会变得不准确。】

decimal[(m[,d])]  [unsigned] [zerofill]

准确的小数值M是整数部分总个数(负号不算),D同上。M最大值为65,D最大值为30。

【精确度:随着小数的增多,精度始终准确。】

  • 对于精确数值计算时需要用此类型
  • decaimal能够存储精确值的原因在于其内部按照字符串存储

日期类型

DATE、TIME、DATETIME、TIMESTAMP、YEAR

作用:存储用户注册时间、文章发布时间、员工入职时间、出生时间、过期时间等

  • YEAR:YYYY(1901/2155)
  • DATE:YYYY-MM-DD(1000-01-01/9999-12-31)
  • TIME:HH:MM:SS('-838:59:59'/'838:59:59')
  • DATETIME:YYYY-MM-DD   HH:MM:SS(1000-01-01 00:00:00/9999-12-31 23:59:59)
  • TIMESTAMP:YYYYMMDD HHMMSS(1970-01-01 00:00:00/2037 年某时)
  1. 单独插入时间时,需要以字符串的形式,按照对应的格式插入。
  2. 插入年份时,尽量使用4位值。
  3. 插入两位年份时,<=69,以20开头,如50,结果2050;                                                                                       >=70,以19开头,如71,结果1971。

总结

类型 大小 具体类型用途备注
CHAR0-255字节字符串类型定长字符串
VARCHAR0-65535字节字符串类型变长字符串5.0.3版本
TEXT0-65535字节字符串类型长文本数据
INT/INTEGER4字节数值类型大整数值
FLOAT4字节数值类型单精度
DOUBLE8字节 数值类型双精度
DATE3字节日期和时间类型 日期值YYYY-MM-DD
TIME3字节日期和时间类型 时间值HH:MM:SS
YEAR1字节日期和时间类型 年份值YYYY

附:

  • decimal:浮点数,如decimal(5,2),表示共存5位数,小数占2位(999.99)。
  • char:固定长度的字符串,如char(4),放入数据 'abc' 会补一个空格为 ‘abc ’。
  • varchar:可变长度的字符串,如varchar(4),放入数据 ‘abc’ 就会存储 ‘abc’。
  • 字符串text:存储大文本,当字符大于4000时使用。
  • 对于图片、音频、视频等文件,不存储在数据库中,而是上传到对应的服务器上,在表中存储这个文件的保存路径。
  • 一个汉字占多少长度与编码有关 UTF-8:一个汉字=3字节 GBK: 一个汉字=2字节

MySQL基础知识到这里就全部更完了,下期更新SQL语句。

上期回顾:MySQL基础知识(一)

【发现有误及时联系】【喜欢记得点赞收藏❤】【欢迎评论补充】


_犬少加油!及时查漏补缺才是关键!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值