书接上文,本文主要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 字符集:修改字符集

           查看默认的字符集        

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/ |
+--------------------------+----------------------------------+

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

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 |
+----------+-----------------------------+---------------------+--------+

     查看排序规则

MariaDB [(none)]> show collation;

     修改排序规则

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运行时修改

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

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

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

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

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

     查看服务器变量        

第一种方法
show [{global|session}] variables [like ''];
第二种方法
select @@{global|session}.variable_name
第三种
select * from information_schema.{global|session}_variables where variables_name='some_variables_name'

     修改变量:

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

set {global|session} variable_name='value'

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

      MariaDB中字符大小写    

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

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

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

        4.表别名区分大小写

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