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

了解学习MySQL数据库基础

一、概述

NOSQL数据库

  • Redis,缓存数据库

  • MongoDB,文档型数据库

关系数据库相关概念

  1. 库(Database): 库是一个存储数据的容器,它可以包含多个数据库。在某些管理系统中,库等同于数据库。

  2. 表(Table): 表是数据库中的一个表格,由行和列组成。表是存储数据的主要结构,每个表通常对应一个实体类型。表的列名称为属性,而表的行名称为记录。

  3. 行(Record): 行也称为记录,它是表中的一个单元,代表表中的一个具体实例。每一行包含了一组属性值,这些值共同描述了一个实体的状态。

  4. 列(Column): 列是表中的一列,它代表了表的一个属性。每列都有一个数据类型,用于定义存储在其中的数据的种类和格式。

  5. 字段(Field): 字段通常指的是表中的行与列的交叉点,它存储了单个数据项。在数据库中,每个字段都有其特定的数据类型和用途。

  6. 数据(Data): 数据是存储在数据库中的信息。它可以是文本、数字、日期、图像、声音等各种形式。数据是数据库管理和操作的核心。

二、安装

默认监听端口号:3306/tcp

1、mariadb安装

服务端程序: mariadb-server;客户端程序:mariadb

yum install -y mariadb-server mariadb

2、mysql安装

服务端程序:mysql-server;客户端程序:mysql;

[root@mysql ~]# yum install -y  mysqld-server mysql 
##编译安装,需要cmake环境

3、启动并开机自启

[root@mysql ~]# systemctl enable --now mysqld.service 

4、本地连接(本地登录)

[root@mysql ~]# mysql
Welcome to the mysqld monitor.  Commands end with ; or \g.
Your mysqld connection id is 2
Server version: 5.5.68-mysqld mysqld ServerCopyright (c) 2000, 2018, Oracle, mysqld Corporation Ab and others.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.MySQL[(none)]> 
##[(none)]:表示当前登录用户选择的数据库的“空”,没有在任何库中
##使用“exit”命令可以退出数据库登录

三、mysqld数据库配置与命令

mysqld服务器的启动脚本

[root@mysql ~]# cat /usr/lib/systemd/system/mysqld.service

数据存储目录的权限

[root@mysql mysql]# ls -ld /var/lib/mysql/
drwxr-xr-x 5 mysql mysql 177 1月  31 10:16 /var/lib/mysql/

服务启动时读取的默认配置文件

[root@mysql mysql]# cat /etc/my.cnf

mysqld操作命令

[root@mysql ~]# ls -l /usr/bin/mysql*
-rwxr-xr-x 1 root root 3543584 10月  2 2020 /usr/bin/mysql
-rwxr-xr-x 1 root root  111971 10月  2 2020 /usr/bin/mysqlaccess
-rwxr-xr-x 1 root root 3096720 10月  2 2020 /usr/bin/mysqladmin
-rwxr-xr-x 1 root root 3259880 10月  2 2020 /usr/bin/mysqlbinlog
lrwxrwxrwx 1 root root      26 1月  31 10:15 /usr/bin/mysqlbug -> /etc/alternatives/mysqlbug

mysql命令

常用选项

-u:指定登录用户
-p:指定用户密码
-h:指定登录数据库的IP或者域名
-P:指定登录数据库的端口号
-e:能够在终端执行数据库指令

使用案例

[root@mysql ~]# mysql -uroot -hlocalhost -P3306
[root@mysql ~]# mysql -p123.com -e "show databases"   ##直接在外部执行查看数据库的命令
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
##指定登录的数据库,只能是一个
[root@mysql mysql]# mysql -p123.com mysql 

mysqladmin命令

超级管理命令

语法

mysqladmin [options] command [command-arg] [command [command-arg]] ...

设置root用户密码

[root@mysql ~]# mysqladmin -uroot password '123.com'

使用密码登录

[root@mysql ~]# mysql -uroot -p123.com -h127.0.0.1 -P3306

四、默认数据库

nformation_schema :信息数据库,存储所有的库、表、列的名称,任意可登录数据库的用户都可读;sql注入

表名作用
CHARACTER_SETS字符集信息表。用于查看和管理MySQL数据库中的字符集信息。
CLIENT_STATISTICS客户端统计信息表。用于查看和管理客户端的统计信息,例如连接数、请求次数等。
COLLATIONS排序规则信息表。用于查看和管理MySQL数据库中的排序规则信息。
COLLATION_CHARACTER_SET_APPLICABILITY字符集和排序规则的适用性表。用于查看和管理字符集和排序规则之间的适用关系。
COLUMNS数据表的列信息表。用于查看和管理MySQL数据库中数据表的列信息。
COLUMN_PRIVILEGES列级别的权限信息表。用于查看和管理列级别的权限信息,例如用户对各个列的SELECT、INSERT、UPDATE等权限。
ENGINES存储引擎信息表。用于查看和管理MySQL数据库中支持的存储引擎信息。
EVENTS定时事件信息表。用于查看和管理MySQL数据库中的定时事件信息。
FILES文件信息表。用于查看和管理MySQL数据库服务器上文件的信息。
GLOBAL_STATUS全局状态信息表。用于查看和管理MySQL数据库服务器的全局状态信息。
GLOBAL_VARIABLES全局变量信息表。用于查看和管理MySQL数据库服务器的全局变量信息。
INDEX_STATISTICS索引统计信息表。用于查看和管理MySQL数据库中索引的统计信息。
KEY_CACHES键缓存表。用于查看和管理MySQL数据库中的键缓存信息。
KEY_COLUMN_USAGE键列使用表。用于查看和管理键列的使用情况。
PARAMETERS参数表。用于查看和管理MySQL数据库的参数信息,例如连接超时时间、最大连接数等。
PARTITIONS分区表。用于查看和管理MySQL数据库中的分区信息。
PLUGINS插件表。用于查看和管理MySQL数据库中的插件信息。
PROCESSLIST进程列表表。用于查看当前正在运行的MySQL进程,包括连接的客户端和正在执行的查询等。
PROFILING性能分析表。用于启用性能分析,记录和分析SQL查询的性能数据。
REFERENTIAL_CONSTRAINTS外键约束表。用于查看和管理外键约束的信息,包括外键列和参考列等。
ROUTINES存储过程和函数表。用于查看和管理MySQL数据库中的存储过程和函数的信息,包括创建时间、修改时间、函数名等。
SCHEMATA架构表。用于查看和管理MySQL数据库中的架构信息,包括架构名、架构下的表名等。
SCHEMA_PRIVILEGES架构权限表。用于查看和管理架构下的权限信息,包括用户对架构下表的SELECT、INSERT、UPDATE等权限。
SESSION_STATUS会话状态信息表。用于查看和管理当前会话的状态信息,例如会话的连接时间、查询时间等。
SESSION_VARIABLES会话变量表。用于查看和管理当前会话的变量信息,例如会话的最大连接数、最大内存使用量等。
STATISTICS统计信息表。用于查看和管理MySQL数据库中表的统计信息,包括表的行数、平均行大小等。
TABLES数据表信息表。用于查看和管理MySQL数据库中的数据表信息,包括表名、引擎类型等。
TABLESPACES存储空间表。用于查看和管理MySQL数据库中的存储空间信息,包括存储空间名、大小等。
TABLE_CONSTRAINTS表约束信息表。用于查看和管理表的约束信息,包括主键约束、外键约束等。
TABLE_PRIVILEGES表级别的权限信息表。用于查看和管理表级别的权限信息,例如用户对各个表的SELECT、INSERT、UPDATE等权限。
INNODB_CMPMEM_RESETInnoDB 内存比较器重置表。此表用于记录 InnoDB 内存比较器(comparison memory)的清除操作。
INNODB_RSEGInnoDB 重做段表此表用于记录 InnoDB 数据文件的重做段信息。
INNODB_UNDO_LOGSInnoDB 撤销日志表。此表用于记录 InnoDB 撤销操作的日志信息。
INNODB_CMPMEMInnoDB 内存比较器表。此表用于记录 InnoDB 内存比较器的分配和使用情况。
INNODB_SYS_TABLESTATSInnoDB 系统表统计信息表。此表用于记录 InnoDB 系统表的统计信息,如数据量、碎片率等。
INNODB_LOCK_WAITSInnoDB 锁等待信息表。此表记录 InnoDB 锁等待的情况,包括等待锁的线程 ID、等待时间等。
INNODB_INDEX_STATSInnoDB 索引统计信息表。此表用于记录 InnoDB 索引的统计信息,如索引大小、索引列的数据类型等。
INNODB_CMPInnoDB 比较器表。此表用于记录 InnoDB 比较器的分配和使用情况。
INNODB_CHANGED_PAGESInnoDB 更改页表。此表用于记录 InnoDB 数据文件中已更改的页的信息。
INNODB_BUFFER_POOL_PAGESInnoDB 缓冲池页表。此表用于记录 InnoDB 缓冲池中每个页的信息,包括页的类型、页的状态等。
INNODB_TRXInnoDB 事务表。此表用于记录 InnoDB 事务的信息,如事务 ID、事务状态等。
INNODB_BUFFER_POOL_PAGES_INDEXInnoDB 缓冲池页索引表。此表用于记录 InnoDB 缓冲池中每个页的索引信息。
INNODB_LOCKSInnoDB 锁表。此表用于记录 InnoDB 锁的信息,如锁的类型、锁的持有者等。
INNODB_BUFFER_PAGE_LRUInnoDB 缓冲池页 LRU 表。此表用于记录 InnoDB 缓冲池中每个页的最近最少使用(Least Recently Used,LRU)信息。
INNODB_SYS_TABLESInnoDB 系统表信息表。此表用于记录 InnoDB 系统表的信息,如表名、表状态等。
INNODB_SYS_FIELDSInnoDB 系统字段信息表。此表用于记录 InnoDB 系统表中每个字段的信息,如字段名、字段类型等。
INNODB_SYS_COLUMNSInnoDB 系统列信息表。此表用于记录 InnoDB 系统表中每个列的信息,如列名、列类型、列长度等。
INNODB_SYS_STATSInnoDB 系统统计信息表。此表用于记录 InnoDB 系统统计信息,如表数量、数据量等。
INNODB_SYS_FOREIGNInnoDB 系统外键信息表。此表用于记录 InnoDB 系统表中外键的信息,如外键约束条件等。
INNODB_SYS_INDEXESInnoDB 系统索引信息表。此表用于记录 InnoDB 系统表中索引的信息,如索引名、索引类型等。

  • mysql :主数据库,mysqld运行的必须数据库,用户与配置信息

表名称作用
columns_priv保存了每个表的列级别的权限信息,包括用户对各个列的SELECT、INSERT、UPDATE、REFERENCES等权限。
db保存了每个数据库的权限信息,包括用户对每个数据库的CREATE、ALTER、DROP等权限。
event保存了MySQL中的事件信息,包括事件的名称、执行时间、执行语句等。
func保存了用户定义的存储函数的信息,包括函数的名称、参数、返回类型等。
general_log记录了MySQL服务器上所有的日志操作,包括查询、连接、错误日志等。
help_category保存了MySQL帮助文档中的分类信息,用于帮助查找和浏览文档。
help_keyword保存了MySQL帮助文档的关键字信息,用于快速搜索和查找文档。
help_relation保存了MySQL帮助文档中关键字之间的关系信息,用于帮助构建文档的结构。
help_topic保存了MySQL帮助文档的具体内容信息,包括每个主题的标题、内容等。
host保存了MySQL服务器上的主机信息,包括主机名、IP地址、连接权限等。
ndb_binlog_index保存了使用NDB存储引擎的MySQL服务器上的二进制日志索引信息。
plugin保存了MySQL服务器上安装的插件信息。
proc保存了用户定义的存储过程的信息,包括过程的名称、参数、语句等。
procs_priv保存了用户对存储过程的访问权限信息。
proxies_priv保存了MySQL服务器上的代理用户的权限信息。
servers实验性表,保存了MySQL服务器的外部服务器和复制配置信息。
slow_log记录了MySQL服务器上执行时间超过默认阈值的慢查询日志。
tables_priv保存了用户对表的访问权限信息。
time_zone保存了MySQL服务器上的时区信息。
time_zone_leap_second保存了时区闰秒的信息。
time_zone_name保存了时区的名称和相关信息。
time_zone_transition保存了时区的变化规则和信息。
time_zone_transition_type保存了时区变化类型的信息。
user保存了MySQL服务器上的用户账号信息,包括用户名、密码、权限等。
  • performance_schema:性能数据库,存储mysqld的资源使用、安全策略权限配置信息

表名作用
cond_instances条件实例表,该表用于存储各种条件或锁定的实例信息
events_waits_current当前等待事件表,记录了当前正在等待某个事件发生的线程或会话信息
events_waits_history历史等待事件表,记录了过去一段时间内等待事件的信息,包括等待事件的类型、等待时间等
events_waits_history_long长期等待事件表,记录了长时间等待事件的信息,包括等待事件的类型、等待时间、等待时长等
events_waits_summary_by_instance按实例总结等待事件表,提供了按实例总结的等待事件统计信息
events_waits_summary_by_thread_by_event_name按线程和事件总结等待事件表,提供了按线程和特定事件总结的等待事件统计信息
events_waits_summary_global_by_event_name按全局和事件总结等待事件表,提供了按全局和特定事件总结的等待事件统计信息
file_instances文件实例表,记录了数据库中各个文件的信息,包括文件路径、文件大小等
file_summary_by_event_name按事件名总结文件表,提供了按特定事件名总结的文件统计信息
file_summary_by_instance按实例总结文件表,提供了按实例总结的文件统计信息
mutex_instances互斥体实例表,记录了数据库中各个互斥体的信息,包括互斥体的名称、状态等
performance_timers性能计时器表,提供了数据库性能的计时信息,包括执行时间、资源使用情况等
rwlock_instances读写锁实例表,记录了数据库中各个读写锁的信息
setup_consumers设置消费者表,记录了数据库设置的各种消费者信息
setup_instruments设置仪器表,记录了数据库设置的各类性能指标信息
setup_timers设置定时器表,记录了数据库设置的各类定时器信息
threads线程表,记录了数据库中的各个线程信息,包括线程ID、线程状态等
  • sys库

五、 SQL语言(背会)

  • DDL:数据定义语言,对数据库结构操作

    create:创建(用户,库,表)

    alter:改变
    ​drop:删除
  • DML:数据操作语言,对数据表的操作

    insert:插入

    update:更新
    ​delete:删除数据
  • DCL:数据控制语言,针对用户权限设置

    grant:用户赋权

    revoke:移除用户权限
  • DQL:数据查询语言,对数据表的操作

    select:查询

六、mysql数据类型

常用的数据类型有:

  • 整型

  • 浮点型

  • BIT类型

  • 定点数

  • 日期时间类型

  • 字符串

  • NULL类型

1、整型

整数类型占用字节无符号数的取值范围有符号数的取值范围
TINYINT10~255-128~127
SMALLINT20~65535-32768~32767
MEDIUMINT30~16777215-8388608~8388607
INT40~4294967295-2147483648~2147483647
BIGINT80~18446744073709551615-9223372036854774808~9223372036854774807

整数列的可选属性有三个:

  • M: 宽度(在0填充的时候才有意义,否则不需要指定)

  • unsigned: 无符号类型(非负)

  • zerofill: 0填充,(如果某列是zerofill,那么默认就是无符号),如果指定了zerofill只是表示不够M位时,用0在左边填充,如果超过M位,只要不超过数据存储范围即可

在 int(M) 中,M 的值跟 int(M) 所占多少存储空间并无任何关系。 int(3)、int(4)、int(8) 在磁盘上都是占用 4 bytes 的存储空间。

各整数数据类型的使用场所

数据类型应用场景
TINYINT一般用于枚举数据,比如系统设定取值范围很小且固定的场景。
SMALLINT可以用于较小范围的统计数据,比如统计工厂的固定资产库存数量等。
MEDIUMINT用于较大整数的计算,比如车站每日的客流量等。
INT、INTEGER取值范围足够大,一般情况下不用考虑超限问题,用得最多。比如商品编号。
BIGINT只有当你处理特别巨大的整数时才会用到。比如双十一的交易量、大型门户网站点击量、证券公司衍生产品持仓等。

2、浮点型

数据类型字节数取值范围
FLOAT4-2^128~2 ^128,即-3.40E+38~+3.40E+38
DOUBLE8-2^1024~ 2^1024,即-1.79E+308~1.79E+308
  • 当浮点数类型使用unsigned修饰无符号时,取值范围将不包含负数。

  • 浮点数的取值范围是理论上的极限值,但根据不同的硬件或操作系统,实际范围可能会小。

  • 浮点数虽然取值范围很大,但精度并不高。float类型的精度为6位或7位,double类型的精度大约为15位。

  • 如果给定的数值超出精度,可能会导致给定的数值与实际保存的数值不一致,发生精度损失。

  • 当一个数字的整数部分和小数部分加起来达到7位时,第7位就会进行四舍五入操作。

  • 要避免使用“=”来判断两个浮点数是否相等,因为浮点数是不准确的,存在精度损失。

3、BIT类型(了解)

函数函数用途
BIT(M)存储二进制数据
ASCll(M)获取M的ASCll值
BIN(M)获取M的二进制值
LENGTH(M)获取M的数字长度
  • BIT数据类型可用来保存位字段值。BIT(M)类型允许存储M位值。M范围为1~64,默认为1。

  • BIT其实就是存入二进制的值,类似010110。如果存入一个BIT类型的值,位数少于M值,则左补0。如果存入一个BIT类型的值,位数多于M值,MySQL的操作取决于此时有效的SQL模式:如果模式未设置,MySQL将值裁剪到范围的相应端点,并保存裁减好的值。如果模式设置为traditional(“严格模式”),超出范围的值将被拒绝并提示错误,并且根据SQL标准插入会失败。

  • 对于位字段,直接使用SELECT命令将不会看到结果,可以用bin()或hex()函数进行读取。

4、定点型

  • DECIMAL在MySQL内部以字符串形式存放,比浮点数更精确。定点类型占M+2个字节

  • DECIMAL(M,D)与浮点型一样处理规则。M的取值范围为0~65,D的取值范围为0~30,而且必须<=M,超出范围会报错。

  • DECIMAL如果指定精度时,默认的整数位是10,默认的小数位为0。

  • NUMERIC等价于DECIMAL。

  • 例如,DECIMAL(5,2)表示的取值范围为-999.99~999.99。

5、日期时间类型

数据类型字节取值范围日期格式零值
YEAR11901~2155YYYY0000
DATE31000-01-01~9999-12-31YYYY-MM-DD0000-00-00
TIME3-838:59:59~838:59:59HH:MM:SS00:00:00
DATETIME81000-01-01 00:00:00~9999-12-31 23:59:59YYYY-MM-DD HH:MM:SS0000-00-00 00:00:00
TIMESTAMP41970-01-01 00:00:01~2038-01-19 03:14:07YYYY-MM-DD HH:MM:SS0000-00-00 00:00:00
YEAR类型

YEAR类型用来表示年份,在所有的日期时间类型中所占用的存储空间最小,只需要1个字节的存储空间,格式为YYYY。

在MySQL中,可使用以下3种格式指定TEAR类型的值:

使用4位字符串或数字表示,为1901'2155或19012155。

​ 例如,输入2022或2022,插入到数据库中的值均为2022.

使用两位字符串表示,为00~99。

​ 00 ~ '69的值会被转换为2000~2069的YEAR值

​ 70 ~ '99的值会被自动转换为1970~1999的YEAR值

​ 例如,输入22,插入到数据表中的值为2022。

使用两位数字表示,为1~99。

​ 1 ~ 69的值会被转换为2001~2069的YEAR值

​ 70 ~ 99的值会被自动转换为1970~1999的YEAR值

​ 例如,输入22,插入到数据表中的值为2022。

注意:

当使用YEAR类型时,一定要区分0和0。

​ 数字格式的0表示的YEAR值为0000

​ 字符串格式的0表示的YEAR值为2000

DATE类型

DATE类型用来表示日期值,不包含时间部分,需要 3个字节 的存储空间,且其格式为 YYYY-MM-DD 。其中,YYYY表示年份,MM表示月份,DD表示日期。

在MySQL中,可以使用以下4种格式指定DATE类型的值:

以YYYY-MM-DD或者YYYYMMDD字符串格式表示。

以YY-MM-DD或者YYMMDD字符串格式表示。

以YY-MM-DD或者YYMMDD数字格式表示。

使用CURRENT_DATE或者NOW()输入当前系统日期。

注意:

通过"SELECT CURRENT_DATE;"或者"SELECT NOW();"可查询当前日期。

日期中的分隔符"-“,还可以使用”.“”,“”/"等符号来表示。

TIME类型

TIME类型用于表示时间值,它的显示形式一般为HH:MM:SS,其中HH表示小时,MM表示分,SS表示秒。

在MySQL中,可以使用以下3种格式指定TIME类型的值:

以HHMMSS字符串或者HHMMSS数学格式表示。

以HH:MM:SS字符串格式表示。

使用CURRENT_TIME或NOW()输入当前系统时间。

DATETIME类型

DATETIME类型在所有的日期时间类型中占用的存储空间最大,总共需要 8 个字节的存储空间,用来表示日期和时间,它的显示形式为YYYY-MM-DD HH:MM:SS。

在MySQL中,可以使用以下4种格式指定DATETIME类型的值:

以YYYY-MM-DD HH:MM:SS或YYYYMMDDHHMMSS字符串格式表示的日期和时间,取值范围为1000-01-01 00:00:00~9999-12-31-23-59-59。

以YY-MM-DD HH:MM:SS或YYMMDDHHMMSS字符串格式表示的日期和时间,

以YYYYMMDDHHMMSS或YYMMDDHHMMSS数字格式表示的日期和时间,

使用NOW()来输入当前系统的日期和时间。

TIMESTAMP类型

TIMESTAMP(时间戳)类型用于表示日期和时间,需要4个字节的存储空间,它的显示形式与DATETIME类型的相同,但取值范围比DATETIME类型的小。

TIMESTAMP类型与DATETIME类型的不同形式:

使用CURRENT_TIMESTAMP来输入系统当前的日期和时间。

无任何输入,或输入NULL时,实际保存的是系统当前日期和时间。

6、字符串型

数据类型类型说明
CHAR固定长度字符串
VARCHAR可变长度字符串
TEXT大文本数据
ENUM枚举类型
SET字符串类型
BINARY固定长度的二进制数据
VARBINARY可变长度是二进制数据
BLOB二进制大对象
CHAR和VARCHAR类型

CHAR和VARCHAR类型都是用来保存字符串数据,两者不同的是,VARCHAR可以存储可变长度的字符串数据。

字符串类型特点长度长度范围占用的存储空间
CHAR(M)固定长度M0<=M<=255M个字节
VARCHAR(M)可变长度M0<=M<=65535(实际长度 + 1) 个字节
TEXT类型

TEXT类型用于保存大文本数据,例如,文章内容,评论等比较长的文本。

数据类型存储范围存储空间占用量特点
TINYTEXT(tinytext)0~2^8-1文本长度+2小文本,可变长度
TEXT(text)0~2^16-1文本长度+2文本,可变长度
MEDIUMTEXT(mediumtext)0~2^24-1文本长度+3中等文本,可变长度
LONGTEXT(longtext)0~2^32-1文本长度+4大文本,可变长度
ENUM类型

ENUM类型又称为枚举类型,其定义格式为:

ENUM('值1','值2','值3','值4','值5',....,'值n')
  1. ENUM类型的取值范围需要在定义字段时进行指定。

  2. 设置字段值时,ENUM类型只允许从成员中选取单个值,不能一次选取多个值。

  3. 其所需要的存储空间由定义ENUM类型时指定的成员个数决定。

    • 当ENUM类型包含1~255个成员时,需要1个字节的存储空间

    • 当ENUM类型包含256~65535个成员时,需要2个字节的存储空间

    • ENUM类型的成员个数的上限为65535个

SET类型

SET类型用于保存字符串对象,其定义格式与ENUM类型相似。

SET('值1','值2','值3','值4','值5',....,'值n')
  1. 其所需要的存储空间由定SET类型时指定的成员个数决定。

    SET类型包含的成员数存储空间
    1~81个字节
    9~162个字节
    17~243个字节
    25~324个字节
    33~648个字节
  2. SET类型在存储数据时成员个数越多,其占用的存储空间越大。

  3. SET类型在选取成员时,与ENUM类型不同,其可以一次选择多个成员。

BINARY和VARBINARY类型

BINARY和VARBINARY类型类似于CHAR和VARCHAR,不同的是,它们所表示的是二进制数据。

类型特点长度长度范围占用的存储空间
BINARY(M)固定长度M0<=M<=255M个字节
VARBINARY(M)可变长度M0<=M<=65535(M+ 1) 个字节
BLOB类型

BLOB类型用于保存数据量比较大的二进制数据,如图片,PDF文档等。

数据类型存储范围占用空间
TINYBLOB0~2^8 -1字节len+1个字节
BLOB0~2^16 -1字节(相当于64KB)len+2个字节
MEDIUMBLOB0~2^24 -1字节(相当于16MB)len+3个字节
LONGBLOB0~2^32 -1字节(相当于4GB)len+4个字节
JSON数据类型

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式 ,简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。它易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在网络或者程序之间轻松地传递这个字符串,并在需要的时候将它还原为各编程语言所支持的数据格式。

在MySQL 5.7中,就已经支持JSON数据类型。在MySQL中,JSON类型常见的表示方式有2种,分别为JSON数组和JSON对象。

#JSON数组
['abc',10,null,true]
#JSON对象
{"k1":"value","k2":10}

7、特殊的NULL类型

  • 所有的类型的值都可以是null,包括int、float等数据类型

  • 空字符串””,不等于null,0也不等于null,false也不等于null

  • 任何运算符,判断符碰到NULL,都得NULL

  • NULL的判断只能用is null,is not null

  • NULL 影响查询速度,一般避免使值为NULL

七、数据库操作命令

库操作命令

  • 查看数据库

show databases;
  • 查看所在数据库

select database();
  • 查看当前登录用户

select user();
  • 查看当前数据库版本

select version();
  • 查看用户权限列表

show privileges[\G];
  • 查看指定用户的权限

show grants for root@localhost\G;
  • 切换数据库

use databaseName[;]
  • 创建数据库

create database databaseName  [character set utf8];
  • 删除数据库

drop database databaseName;
  • 查看支持的字符集

SHOW CHARACTER SET;

表结构操作命令

  • 查看数据表

show tables;
  • 查看表结构

desc[describe] tableName;
[root@mysqld ~]# mysql -e "desc mysql.user"
  • 创建数据表

create table tableName(columnName(列名称) dataType(数据类型), ............);
  • 删除数据表

drop table tableName;
http://www.dtcms.com/a/466929.html

相关文章:

  • 做网站怎么选服务器服务器网站怎么做
  • 长沙微信网站开发学习网页制作学什么
  • 超越RTL的系统设计:ESL设计的新范式与CIRCT的桥梁作用
  • JVM的即时编译JIT的介绍
  • 网站建设心得8000字网站域名设计推荐
  • 十堰哪里有做网站的搜索引擎营销的案例有哪些
  • 网站空间流量不够服务器建网站
  • 长宁苏州网站建设公司cms系统表单
  • 化妆品营销型网站案例工商管理系统官网
  • 免费的推广网站有哪些wordpress 36kr 模板
  • 网站建设对企业的意义太白县住房和城乡建设局网站
  • 保山市住房和城乡建设厅网站搜索引擎网站建设
  • 【MySQL在Ubuntu系统下的安装方法】保姆级教程
  • 网站服务器怎么查询网站建设服务器怎么设置
  • 南京建设集团网站做好产品策划的重要性
  • ModStartCMS v9.7.0 组件升级优化,模块升级提醒,访问明细导出
  • 网站如何安装wordpress爆款采集推广引流软件
  • 双目测距实战2-相机标定过程
  • anthropics-claude-cookbooks学习记录01
  • 品网站建设河南省住房和城乡建设部网站首页
  • 人工智能重塑未来经济:转型、挑战与出路
  • Pixels(像素)
  • dedecms网站备份企业光纤局域网组网方案
  • 深入解析 MTE 测试中的 Paging 流量与 S1 接口
  • 泰州建设局网站安监站通报低功耗集成主板做网站
  • 安卓AIDL跨应用通讯的实现
  • 如何做一个花店小程序,搭建一个小程序多少钱
  • 电商网站公司木兰网
  • 网站投放广告教程怎么创建官网主页
  • 线性表—链式描述