MariaDB二之数据类型、字符大小写、变量

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介:

   书接上文,本文主要MariaDB的数据类型和数据库DDL语言的使用

    数据类型的功用:

    1.存储的值的类型

    2.占据的存储空间大小

    3.定长,变长

    4.如何被索引及排序

    5.是否能够能够被索引

    数据字典:依赖于系统编目(花名册):system catalog,里面保存的为数据库服务器上的元数据

    元数据:

         关系的名字

         每个关系的各字段的名字

         各字段的数据类型和长度

         约束

         每个关系上的视图的名字及视图的定义

         授权用户的名字

         用户的授权和账户信息

         统计类的数据

            每个关系字段的个数

            每个关系中行数

            每个关系的存储方法

    保存元数据的数据库

           information_schema

           mysql

           performance_schema

     数据类型的分类

          字符型

          数值型

            精确数值型

               整型:

               十进制数据:

            近似数值型

               单精度浮点型

               双精度浮点型

          日期时间型

             日期型

             时间型

             日期时间型

             时间戳

             year类型

          布尔型

          内建类型

               enum(枚举)

               set(集合)

       数值型分为:

           TINYINT

           SMALLINT

           MENDIUMINT

           INT

           BIGINT

           DECIMAL

           FLOAT

           DOUBAL

       字符型分为:

           CHAR

           VARCHAR

           TINYTEXT

           TEXT

           MENDIUMTEXT

           LONGTEXT

           BINARY

           VARBINARY

           TINYBLOB

           BLOB

           MENDIUMBLOB

           LONGBLOB

       日期时间型

           DATE

           TIME

           DATETIME   

           TIMESTAMP

           YEAR

       内建类型

           ENUM

           SET    

       字符型(char、varchar和text)常用的属性修饰符

           NOT NULL:非空约束

           NULL:允许为空

           DEFAULT ‘string’:默认值,不适用于text类型

           character set 字符集:修改字符集

           查看默认的字符集        

1
2
3
4
5
6
7
8
9
10
11
12
13
MariaDB [(none)]> show global  var iables like  '%char%' ;
+--------------------------+----------------------------------+
| Variable_name            | Value                            |
+--------------------------+----------------------------------+
| character_set_client     | utf8                             |
| character_set_connection | utf8                             |
| character_set_database   | utf8                             |
| character_set_filesystem | binary                           |
| character_set_results    | utf8                             |
| character_set_server     | utf8                             |
| character_set_system     | utf8                             |
| character_sets_dir       | /usr/local/mysql/share/charsets/ |
+--------------------------+----------------------------------+

         查看当前数据库支持的字符集

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
MariaDB [(none)]> show character  set ;
+----------+-----------------------------+---------------------+--------+
| Charset  | Description                 | Default collation   | Maxlen |
+----------+-----------------------------+---------------------+--------+
| big5     | Big5 Traditional Chinese    | big5_chinese_ci     |       2  |
| dec8     | DEC West European           | dec8_swedish_ci     |       1  |
| cp850    | DOS West European           | cp850_general_ci    |       1  |
| hp8      | HP West European            | hp8_english_ci      |       1  |
| koi8r    | KOI8-R Relcom Russian       | koi8r_general_ci    |       1  |
| latin1   | cp1252 West European        | latin1_swedish_ci   |       1  |
| latin2   | ISO  8859 - 2  Central European | latin2_general_ci   |       1  |
| swe7     | 7bit Swedish                | swe7_swedish_ci     |       1  |
| ascii    | US ASCII                    | ascii_general_ci    |       1  |
| ujis     | EUC-JP Japanese             | ujis_japanese_ci    |       3  |
| sjis     | Shift-JIS Japanese          | sjis_japanese_ci    |       2  |
| hebrew   | ISO  8859 - 8  Hebrew           | hebrew_general_ci   |       1  |
| tis620   | TIS620 Thai                 | tis620_thai_ci      |       1  |
| euckr    | EUC-KR Korean               | euckr_korean_ci     |       2  |
| koi8u    | KOI8-U Ukrainian            | koi8u_general_ci    |       1  |
| gb2312   | GB2312 Simplified Chinese   | gb2312_chinese_ci   |       2  |
| greek    | ISO  8859 - 7  Greek            | greek_general_ci    |       1  |
| cp1250   | Windows Central European    | cp1250_general_ci   |       1  |
| gbk      | GBK Simplified Chinese      | gbk_chinese_ci      |       2  |
| latin5   | ISO  8859 - 9  Turkish          | latin5_turkish_ci   |       1  |
| armscii8 | ARMSCII- 8  Armenian          | armscii8_general_ci |       1  |
| utf8     | UTF- 8  Unicode               | utf8_general_ci     |       3  |
| ucs2     | UCS- 2  Unicode               | ucs2_general_ci     |       2  |
| cp866    | DOS Russian                 | cp866_general_ci    |       1  |
| keybcs2  | DOS Kamenicky Czech-Slovak  | keybcs2_general_ci  |       1  |
| macce    | Mac Central European        | macce_general_ci    |       1  |
| macroman | Mac West European           | macroman_general_ci |       1  |
| cp852    | DOS Central European        | cp852_general_ci    |       1  |
| latin7   | ISO  8859 - 13  Baltic          | latin7_general_ci   |       1  |
| utf8mb4  | UTF- 8  Unicode               | utf8mb4_general_ci  |       4  |
| cp1251   | Windows Cyrillic            | cp1251_general_ci   |       1  |
| utf16    | UTF- 16  Unicode              | utf16_general_ci    |       4  |
| cp1256   | Windows Arabic              | cp1256_general_ci   |       1  |
| cp1257   | Windows Baltic              | cp1257_general_ci   |       1  |
| utf32    | UTF- 32  Unicode              | utf32_general_ci    |       4  |
| binary   | Binary pseudo charset       | binary              |       1  |
| geostd8  | GEOSTD8 Georgian            | geostd8_general_ci  |       1  |
| cp932    | SJIS  for  Windows Japanese   | cp932_japanese_ci   |       2  |
| eucjpms  | UJIS  for  Windows Japanese   | eucjpms_japanese_ci |       3  |
+----------+-----------------------------+---------------------+--------+

     查看排序规则

1
MariaDB [(none)]> show collation;

     修改排序规则

1
MariaDB [(none)]> collation  'eucjpms_bin'

     binary,varbinary和blob字符常用的属性修饰符

           NULL

           NOT NULL

           DEFAULT 不适用于blob

      整型常用的属性修饰符

           AUTO_INCERMENT:自动增长

              前提:非空,且唯一,支持索引

           LEST_INSERT_ID():可以查看上次增长的数值,当插入多行时,至记录第一行

           UNSIGNED:无符号

           NULL

           NOT NULL

           DEFAULT

           TRUNCATE用来清空表中数据

       浮点型常用的修饰符

           NULL

           NOT NULL

           UNSIGEND

           DEDAULT

           使用g,f来定义总共有多少个数字和小数点后面有多少数字

        日期时间型常用的修饰符

           NULL

           NOT NULL

           DEFAULT

        ENUM和SET常用的修饰符

           NULL

           NOT NULL

           DEFAULT ''

     MariaDB有内置的SQL模型SQL_MODE:用来定义字符超出的操作和模仿别的数据库的类型,通过修改全局变量来修改

     常用的模式有:

       TRADITIONAL 使用传统模式

       STRICT_TRANS_TABLES 仅对支持事务的表使用严格模式

       STRICT_ALL_TABLES 对所有表使用严格模式

     设定服务器变量的值:通常仅用于支持动态的变量

        支持修改的服务器变量

           动态变量:可以在mysql运行时修改

           静态变量:与配置文件中修改其值,并重启后方能生效

        服务器变量从其生效范围来讲,分两类:

           全局变量:服务器级别,修改之后仅对新建立的会话有效

           会话变量:会话级别,仅对当前会话有效

           会话在建立时,会从全局变量中继承各变量

     查看服务器变量        

1
2
3
4
5
6
第一种方法
show [{global|session}]  var iables [like  '' ];
第二种方法
select @@{global|session}. var iable_name
第三种
select * from information_schema.{global|session}_ var iables where  var iables_name= 'some_variables_name'

     修改变量:

       前提:默认只有管理员有权限修改全局变量

1
set  {global|session}  var iable_name= 'value'

       注意:无论是全局还是会话变量级别的动态变量修改,在重启mysql后都会失效,想永久生效,可以定义在配置文件中的相应段[mysqld]

      MariaDB中字符大小写    

        1.SQL关键字及函数不区分大小写

        2.数据库、表及视图名称的大小写区分与否取决于底层OS和FS

        3.存储过程、存储函数及时间调度器的名字不区分大小写,但触发器区分大小写

        4.表别名区分大小写

        5.对字段中的数据,如果字段类型为binary类型,则区分大小写,非binary不区分大小写



本文转自wangfeng7399 51CTO博客,原文链接:http://blog.51cto.com/wangfeng7399/1393557,如需转载请自行联系原作者

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
关系型数据库 MySQL
MariaDB MySQL变量取值避免四舍五入的方法
MariaDB MySQL变量取值避免四舍五入的方法
308 0
|
NoSQL 关系型数据库 MySQL
阿里云RDS关系型数据库大全_MySQL版、PolarDB、PostgreSQL、SQL Server和MariaDB等
阿里云RDS关系型数据库如MySQL版、PolarDB、PostgreSQL、SQL Server和MariaDB等,NoSQL数据库如Redis、Tair、Lindorm和MongoDB
486 0
|
3月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
|
3月前
|
关系型数据库 分布式数据库 数据库
阿里云数据库收费价格:MySQL、PostgreSQL、SQL Server和MariaDB引擎费用整理
阿里云数据库提供多种类型,包括关系型与NoSQL,主流如PolarDB、RDS MySQL/PostgreSQL、Redis等。价格低至21元/月起,支持按需付费与优惠套餐,适用于各类应用场景。
|
3月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎,提供高性价比、稳定安全的云数据库服务,适用于多种行业与业务场景。
|
关系型数据库 Java MySQL
Linux安装JDK1.8 & tomcat & MariaDB(MySQL删减版)
本教程提供了在Linux环境下安装JDK1.8、Tomcat和MariaDB的详细步骤。这三个组件的组合为Java Web开发和部署提供了一个强大的基础。通过遵循这些简单的指导步骤,您可以轻松建立起一个稳定、高效的开发和部署环境。希望这个指导对您的开发工作有所帮助。
451 8
|
缓存 关系型数据库 MySQL
error: Failed dependencies: mariadb-connector-c-config is obsoleted by mysql-community-server-8.0.36-1.el7.x86_64 问题解决
error: Failed dependencies: mariadb-connector-c-config is obsoleted by mysql-community-server-8.0.36-1.el7.x86_64 问题解决
946 19
|
SQL 关系型数据库 MySQL
如何在 MySQL 或 MariaDB 中导入和导出数据库
如何在 MySQL 或 MariaDB 中导入和导出数据库
1128 0
|
SQL Ubuntu 关系型数据库
如何在云服务器上创建和管理 MySQL 和 MariaDB 数据库
如何在云服务器上创建和管理 MySQL 和 MariaDB 数据库
232 0
|
关系型数据库 MySQL 数据库连接
FreeSWITCH通过mod_mariadb原生连接MySQL
FreeSWITCH通过mod_mariadb原生连接MySQL
1041 0

推荐镜像

更多