mysql含义

1.数据库的概念

数据库就像一个储存容器,他是一个存储和管理数据的一个仓库。
数据库的优点如下:

  1. 存储的数据量很大
  2. 方便检索
  3. 保持数据的一致性、完整性
  4. 安全、可共享
  5. 通过组合分析,可以产生新数据

我们现在用的mysql数据库都是属于关系结构模型的数据库;他们是使用二维表来存储数据,可能随着技术的发展将来mysql可能会升级为新的方式来存储数据,比如关系-对象性数据库。

我们所说的数据库都是泛指关系型数据库管理系统(RDBMS),即数据库服务器。

RDBMS= 数据库管理员(manager)+仓库(database);
数据库仓库里面可以有多个数据库,数据库一共由多张表组成,表里面存在表结构,这里的表结构指的是定义表的的列名与列类型。
还有一个概念表记录指的是表中一行一行的数据。

2.sql语句

sql语句就是“结构化查询语言”,它可以对关系型数据库的操作语言。
SQL可以用在所有关系型数据库中,但很多数据库还都有标准之后的一些语法,我们可以称之为“方言”。例如MySQL中的LIMIT语句就是MySQL独有的方言,其它数据库都不支持!当然,Oracle或SQL Server都有自己的方言。

语法要求

  1. SQL语句可以单行或多行书写,以分号结尾;
  2. 可以用空格和缩进来来增强语句的可读性;
  3. 关键字不区别大小写,建议使用大写;

SQL数据类型

MySQL与Java一样,也有数据类型。MySQL中数据类型主要应用在列上。

MySQL中的数据类型有很多,主要分为三类:数值类型、字符串类型、日期时间类型。

数值类型:

类型大小有符号(SIGNED)范围无符号(UNSIGNED)范围描述
TINYINT1byte(-128,127)(0,255)小整数值
SMALLINT2bytes(-32768,32767)(0,65535)大整数值
MEDIUMINT3bytes(-8388608,8388607)(0,16777215)大整数值
INT4bytes(-2147483648, 2147483647)(0,4294967295)大整数值
BIGINT8bytes(-263,263-1)(0,2^64-1)大整数值
FLOAT4bytes(-3.402823466 E+38, 3.402823466351 E+38)0 和 (1.175494351 E- 38,3.402823466 E+38)单精度浮点数值
DOUBLE8bytes(-1.7976931348623157E+308,1.7976931348623157E+308)0 和(2.2250738585072014E-308,1.7976931348623157E+308)双精度浮点数值
DECIMAL依赖于M(精度)和D(标度) 的值

字符串类型

类型大小描述
CHAR0-255 bytes固定长字符串(需要指定长度)
VARCHAR0-65535 bytes变长字符串(需要指定长度)
TINYBLOB0-255 bytes不超过255个字符的二进制数据
TINYTEXT0-255 bytes短文本字符串
BLOB0-65 535 bytes二进制形式的长文本数据
TEXT0-65 535 bytes长文本数据
MEDIUMBLOB0-16 777 215 bytes二进制形式的中等长度文本数据
MEDIUMTEXT0-16 777 215 bytes中等长度文本数据
LONGBLOB0-4 294 967 295 bytes二进制形式的极大文本数据
LONGTEXT0-4 294 967 295 bytes极大文本数据

char 如果你输入的字符长度没有达到指定长度的话会自动补空格。
而varchar这里如果你输入的字符长度没有达到指定长度的话,他是不会补空格的,所以一般都是使用varchar

日期时间类型:

类型大小范围格式描述
DATE(常用)31000-01-01 至 9999-12-31yyyy-MM-dd日期值
TIME3-838:59:59 至 838:59:59hh:mm:ss时间值
YEAR11901 至 2155yyyy年份值
DATETIME(常用)81000-01-01 00:00:00 至9999-12-31 23:59:59yyyy-MM-dd hh:mm:ss日期加时间
TIMESTAMP41970-01-01 00:00:01 至2038-01-19 03:14:07yyyy-MM-dd hh:mm:ss日期加时间

sql的分类

  • DDL(Data Definition Language):数据定义语言,用来定义数据库对象:库、表、列等;
  • DML(Data Manipulation Language):数据操作语言,用来定义数据库记录(数据);
  • DCL(Data Control Language):数据控制语言,用来定义访问权限和安全级别;
  • DQL(Data Query Language):数据查询语言,用来查询记录(数据)。

sql字符集编码

字符集与排序规则:
字符集:

  • utf8: utf8 编码最⼤字符长度为 3 字节,如果遇到 4 字节的宽字符就会插⼊异常了,比如Emoji表情,就无法使用utf8存储,推荐使用utf8mb4
  • utf8mb4: mb4即most bytes 4,专门用来兼容四个字节即以上的unicode, 在Mysql在5.53版本之后

排序规则:

  • utf8mb4_bin:将字符串每个字符⽤⼆进制数据编译存储,区分⼤⼩写,⽽且可以存⼆进制的内容。推荐使用
  • utf8mb4_general_ci:ci即case insensitive,不区分⼤⼩写。没有实现Unicode排序规则,在遇到某些特殊语⾔或者字符集,排序结果可能不⼀致。但是,在绝⼤多数情况下,这些特殊字符的顺序并不需要那么精确。
  • utf8mb4_unicode_ci:是基于标准的Unicode来排序和⽐较,能够在各种语⾔之间精确排序,Unicode排序规则为了能够处理特殊字符的情况,实现了略微复杂的排序算法。
  • utf8mb4_general_ci是⼀个遗留的 校对规则,不⽀持扩展,它仅能够在字符之间进⾏逐个⽐较。
  • utf8_general_ci校对规则进⾏的⽐较速度很快,但是与使⽤ utf8mb4_unicode_ci的校对规则相⽐,⽐较慢
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值