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

简介:
+关注继续查看

   书接上文,本文主要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 variables 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}] variables [like ''];
第二种方法
select @@{global|session}.variable_name
第三种
select * from information_schema.{global|session}_variables where variables_name='some_variables_name'

     修改变量:

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

1
set {global|session} variable_name='value'

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

      MariaDB中字符大小写    

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

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

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

        4.表别名区分大小写

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



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

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
26天前
|
关系型数据库 MySQL API
MariaDB数据库中如何允许远程链接mysql并开放3306端口
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。
116 0
|
1月前
|
存储 关系型数据库 MySQL
mysql--Centos安装MariaDB(mysql)
mysql--Centos安装MariaDB(mysql)
|
3月前
|
SQL Oracle 前端开发
使用MariaDB线程池提高MySQL的扩展性
MySQL的线程池能够有效地解决大量短连接的性能问题,大幅提高MySQL数据库的扩展性。但官方MySQL的线程池在收费的企业版中才有,免费的社区版中没有这个功能,这里介绍MairaDB的线程池。
|
3月前
|
SQL 运维 Oracle
使用MariaDB线程池提高MySQL的扩展性
MySQL的线程池能够有效地解决大量短连接的性能问题,大幅提高MySQL数据库的扩展性。但官方MySQL的线程池在收费的企业版中才有,免费的社区版中没有这个功能,这里介绍MairaDB的线程池。
|
4月前
|
Oracle 关系型数据库 MySQL
迁移MariaDB审计插件(Audit Plugin)到MySQL 5.7---发表到爱可生开源社区
Oracle的MySQL社区版本不带审计插件(Audit Plugin),要想使用审计功能,你可以用Enterprise的版本,不过这需要银子。业界还有一些GPL协议的审计插件,这里我们选择MariaDB的审计插件。
|
4月前
|
SQL 存储 算法
Online DDL MySQL&MariaDB
本文主要对Mariadb和MySQL对Online DDL的支持情况做一个对比,方便读者随时参考。MariaDB 10.8引入了Lag Free Alter这个新特性,该特性主要是为了降低DDL引起的复制延迟,本文也给出了MariaDB 对不同DDL,lag free alter的支持情况。Mariadb Online DDL当用户通过ALGORITHM 参数为DDL指定执行算法时,如果用户指定算
|
5月前
|
关系型数据库 MySQL 数据库连接
Python使用MySQLConnector/Python操作MySQL、MariaDB数据库
Python使用MySQLConnector/Python操作MySQL、MariaDB数据库
89 0
|
5月前
|
关系型数据库 MySQL
MySQL、Mariadb中GROUP_CONCAT 函数使用介绍
MySQL、Mariadb中GROUP_CONCAT 函数使用介绍
62 0
|
5月前
|
关系型数据库 MySQL
MariaDB MySQL变量取值避免四舍五入的方法
MariaDB MySQL变量取值避免四舍五入的方法
79 0
|
5月前
|
存储 SQL 关系型数据库
MariaDB、MySQL存储过程、游标基础应用举例说明
MariaDB、MySQL存储过程、游标基础应用举例说明
82 0
推荐文章
更多
推荐镜像
更多