欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

马哥 33_01 _MySQL系列之五——MySQL数据类型及sql模型 有大用

image.png

存储引擎(表类型)  这两种是通用场景

    MyISAM表: 无事务,它是表锁

        .frm ( format )表结构定义文件

        .MYD (mysql data)表数据 (D data)

        .MYI  (mysql index)索引   (I index)

    InnoDB表: 事务,它是行锁

        .frm ( format ) 表结构

        .ibd ( format ) 表空间 (数据和索引) (i index) (b table? 还是base?) (d data)(假如每表一个单独的表空间的话,否则所有表共用它)


Mysql:    初始化后名叫mysql数据库->MyISAM



>show engines 查看所有引擎

>show table status [ like ... ] 查看表的状态属性





[root@mail ~]# mysql

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 2

Server version: 5.5.28-log Source distribution


Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.


Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.


Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


mysql> show engines;

+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+

| Engine  (引擎)           | Support (是否支持)| Comment(简要描述)                                                        | Transactions(事务) | XA (分布式事务)  | Savepoints (保存点) |

+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+

| MRG_MYISAM         | YES     | Collection of identical MyISAM tables                          | NO           | NO   | NO         |

| PERFORMANCE_SCHEMA | YES     | Performance Schema                                             | NO           | NO   | NO         |

| MyISAM             | YES     | MyISAM storage engine                                          | NO           | NO   | NO         |

| BLACKHOLE          | YES     | /dev/null storage engine (anything you write to it disappears) | NO           | NO   | NO         |

| CSV                | YES     | CSV storage engine                                             | NO           | NO   | NO         |

| InnoDB             | DEFAULT (默认存储引擎)| Supports transactions, row-level locking, and foreign keys     | YES          | YES  | YES        |

| ARCHIVE            | YES     | Archive storage engine                                         | NO           | NO   | NO         |

| MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables      | NO           | NO   | NO         |

+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+

8 rows in set (0.00 sec)


# 可以在事务中,有多个保存到,可以回滚到不同的保存点 (所以一般支持事务才支持保存点)


mysql>

mysql> use mysql

Database changed

mysql> show tables;

+---------------------------+

| Tables_in_mysql           |

+---------------------------+

| columns_priv              |

| db                        |

| event                     |

| func                      |

| general_log               |

| help_category             |

| help_keyword              |

| help_relation             |

| help_topic                |

| host                      |

| ndb_binlog_index          |

| plugin                    |

| proc                      |

| procs_priv                |

| proxies_priv              |

| servers                   |

| slow_log                  |

| tables_priv               |

| time_zone                 |

| time_zone_leap_second     |

| time_zone_name            |

| time_zone_transition      |

| time_zone_transition_type |

| user                      |

+---------------------------+

24 rows in set (0.00 sec)


mysql>

mysql> help show table status  # help  + command ( help 加 命令)

Name: 'SHOW TABLE STATUS'

Description:

Syntax:

SHOW TABLE STATUS [{FROM | IN} db_name]

    [LIKE 'pattern' | WHERE expr]


SHOW TABLE STATUS works likes SHOW TABLES, but provides a lot of

information about each non-TEMPORARY table. You can also get this list

using the mysqlshow --status db_name command. The LIKE clause, if

present, indicates which table names to match. The WHERE clause can be

given to select rows using more general conditions, as discussed in

http://dev.mysql.com/doc/refman/5.5/en/extended-show.html.


URL: http://dev.mysql.com/doc/refman/5.5/en/show-table-status.html



mysql> select database();

+------------+

| database() |

+------------+

| mysql      |

+------------+

1 row in set (0.00 sec)


mysql>


mysql> show table status like 'user'\G   # 查看表的属性信息

*************************** 1. row ***************************

           Name: user

         Engine: MyISAM

        Version: 10

     Row_format: Dynamic

           Rows: 3

 Avg_row_length: 126

    Data_length: 380

Max_data_length: 281474976710655

   Index_length: 2048

      Data_free: 0

 Auto_increment: NULL

    Create_time: 2020-09-15 12:58:20

    Update_time: 2020-09-15 14:44:54

     Check_time: NULL

      Collation: utf8_bin

       Checksum: NULL

 Create_options:

        Comment: Users and global privileges

1 row in set (0.00 sec)


mysql>


image.png



程序语言连接数据库的方式:

    动态sql:通过函数或方法与数据库服务器建立连接,将sql发往数据库服务器

    嵌入式sql:使用程序开发语言本身的格式来写的查询语句,通过api直接连到服务器上,(连之前要进行编译的)


JDBC, java database Connectivity:java数据库互连

ODBC,open database Connectivity: 开放数据库互连


客户端工具: mysql,mysqladmin.mysqldump,mysqlimport,mysqlcheck


服务器端工具: mysqld,mysqld_safe(支持安全线程的),mysql_multi(支持多实例,一个物理服务器上可以运行多个mysql进程,但端口不同)



[root@mail ~]# ls /usr/local/mysql/bin/

innochecksum       mysql_client_test           mysql_setpermission

msql2mysql         mysql_config                mysqlshow

myisamchk          mysql_convert_table_format  mysqlslap

myisam_ftdump      mysqld                      mysqltest

myisamlog          mysqld_multi                mysql_tzinfo_to_sql

myisampack         mysqld_safe(启动mysql服务器用的是它,而不是mysqld)                 mysql_upgrade

my_print_defaults  mysqldump                   mysql_waitpid

mysql              mysqldumpslow               mysql_zap

mysqlaccess        mysql_find_rows             perror

mysqlaccess.conf   mysql_fix_extensions        replace

mysqladmin         mysqlhotcopy(mysql的一个备份的工具)                resolveip

mysqlbinlog (非客户端工具,用得比较多,查看mysql二进制日志)        mysqlimport                 resolve_stack_dump

mysqlbug           mysql_plugin

mysqlcheck         mysql_secure_installation

[root@mail ~]#


[root@mail ~]# vim /etc/init.d/mysqld

image.png



[root@mail ~]# man mysqld_safe

image.png



my.cnf 配置文件

    unix上

        /etc/my.cnf-->/etc/mysql/my.cnf-->$MYSQL_HOME/my.cnf--> --default-extra-file=/path/to/file-> ~/.my.cnf


[mysqld]


[mysqld_safe]


[client] #对所有客户端生效

    host = 


[mysql] #只对mysql这一个客户端生效


绝大多数配置的参数都可以在命令行直接指定的

比如 mysql --host 可以在配置文件中指 (配置文件中不要加 -- 杠杠了)


杠杠 可以为下短横或中短横,但建议统一格式

default-extra-file

default_extra_file


innodb_file_per_table

innodb-file-per-table



[root@mail ~]# mysqld --help --verbose    # 查看 mysqld 能支持的选项配置,各种指令相关信息

image.png


跟 mysql >  show variables ;    显示的内容近似,



mysql 装好了,启动不了,什么没有更新pid文件这些情况

原因可能有:

        1) 此前装的mysql 忘了关掉了

                    # killall mysqld (killall mysqld_safe) 或者找到进程,并杀死这个进程,让其释放3306端口

            datadir = /mydata/data  数据目录下,会产生 hostname.err 错误日志文件(启动之后的错误信息都在里面)  如果没有hostname.err文件,说明数据目录位置指错了,此时要 编辑主配置文件 my.cnf 指定 datadir 的位置

        2) 数据初始化失败

        3) 数据目录位置错误 

        4) 数据目录权限问题 

        5) mysql运行目录权限问题 


排查问题:实在不行初始化数据库,再找找主配置文件,把 datadir指向数据目录,再启动,一般就可以了



DBA:  (database admistrator)

    开发DBA: 数据库设计,SQL语句,存储过程,存储函数,触发器,水晶报表的开发(Oracle上)

    管理DBA: 安装,升级,备份,恢复,用户管理,权限管理,监控,性能分析,基准测试


Developing With MySQL

        MySQL data types: mysql 数据类型

        MySQL Language Structure: mysql结构化查询语言的使用



数据类型:

        数值型: 不要指定长度?

                精确数值

                        int

                        decimal

                近似数值

                        float

                        double

                        real  (有时相当于float ,有时相当于double,根据系统而定,用得不多)

        字符型: 字符型必须要指定长度的

                定长字符型: CHAR(不区分大小写),BINARY(区分大小写)

                变长字符型: VARCHAR(不区分大小写),VARBINARY(区分大小写)

                长字符:text(相当于CHAR,不区分大小写),blob(相当于 binary large object , 区分大小写) 

                ENUM

                SET

        日期时间型

                date,time,datetime,timestamp

        


域(field 字段)属性,修饰符: 定义域限制的      


SQL:


image.png

 数据类型的作用: 

    1)它表示哪种类型的数据

    2)它表示最大的存储空间 (char(3)只能存3个字符)

    3)定长,变成它就己经确定了

    4)如何比较及排序字符,(区不区分大小写也在这里定义了)

    5)这个类型是否能够被创建索引        


> show character set;     #用于显示当前服务器所支持的所有字符集

> show collation;    #显示排序规则的

> show global variables; #显示全局变量

image.png


mysql遵循sql03的标准


数值型

image.png


数值型

image.png

bit 按位存储的用的不多

float: 4个字节存储

double:8个字节存储


字符串型

image.png



SET: 给你几个字符,组成任意值


image.png


image.png


ENUM 枚举,里面各项选一个

SET 集合,,里面的各项的组合


日期时间类型

image.png


image.png



image.png

image.png


image.png


image.png



image.png



text 上面创建索引,一般不能索引整个字段的,在char可以索引整个字段的

所以不能随意变换数据类型


越简单的数据类型,管理起来成本越低


image.png


image.png

字符串类型的修饰属性:

        NOT NULL

        NULL

        DEFAULT

        BINARY  :  是不是区分大小写的,好像现在不用 BINARY 修饰符了  

        CHARACTER SET  : 字符集 (字符类型的) (默认从表继承)

        COLLATION  : 排序规则 (字符类型的) (默认从表继承)



字符规则如未指定,,从字段,表,数据库,服务器一层一层的继承



看 mysql 支持哪些字符集规则

        

[root@mail ~]# mysql

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 17

Server version: 5.5.28-log Source distribution


Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.


Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.


Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


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

+----------+-----------------------------+---------------------+--------+

39 rows in set (0.00 sec)


mysql>

mysql> show collation;

+--------------------------+----------+-----+---------+----------+---------+

| Collation                | Charset  | Id  | Default | Compiled | Sortlen |

+--------------------------+----------+-----+---------+----------+---------+

| big5_chinese_ci          | big5     |   1 | Yes     | Yes      |       1 |

| big5_bin                 | big5     |  84 |         | Yes      |       1 |

| dec8_swedish_ci          | dec8     |   3 | Yes     | Yes      |       1 |

| dec8_bin                 | dec8     |  69 |         | Yes      |       1 |

| cp850_general_ci         | cp850    |   4 | Yes     | Yes      |       1 |

| cp850_bin                | cp850    |  80 |         | Yes      |       1 |

| hp8_english_ci           | hp8      |   6 | Yes     | Yes      |       1 |

| hp8_bin                  | hp8      |  72 |         | Yes      |       1 |

| koi8r_general_ci         | koi8r    |   7 | Yes     | Yes      |       1 |

| koi8r_bin                | koi8r    |  74 |         | Yes      |       1 |

| latin1_german1_ci        | latin1   |   5 |         | Yes      |       1 |

| latin1_swedish_ci        | latin1   |   8 | Yes     | Yes      |       1 |

| latin1_danish_ci         | latin1   |  15 |         | Yes      |       1 |

| latin1_german2_ci        | latin1   |  31 |         | Yes      |       2 |

| latin1_bin               | latin1   |  47 |         | Yes      |       1 |

| latin1_general_ci        | latin1   |  48 |         | Yes      |       1 |

| latin1_general_cs        | latin1   |  49 |         | Yes      |       1 |

| latin1_spanish_ci        | latin1   |  94 |         | Yes      |       1 |

| latin2_czech_cs          | latin2   |   2 |         | Yes      |       4 |

| latin2_general_ci        | latin2   |   9 | Yes     | Yes      |       1 |

| latin2_hungarian_ci      | latin2   |  21 |         | Yes      |       1 |

| latin2_croatian_ci       | latin2   |  27 |         | Yes      |       1 |

| latin2_bin               | latin2   |  77 |         | Yes      |       1 |

| swe7_swedish_ci          | swe7     |  10 | Yes     | Yes      |       1 |

| swe7_bin                 | swe7     |  82 |         | Yes      |       1 |

| ascii_general_ci         | ascii    |  11 | Yes     | Yes      |       1 |

| ascii_bin                | ascii    |  65 |         | Yes      |       1 |

| ujis_japanese_ci         | ujis     |  12 | Yes     | Yes      |       1 |

| ujis_bin                 | ujis     |  91 |         | Yes      |       1 |

| sjis_japanese_ci         | sjis     |  13 | Yes     | Yes      |       1 |

| sjis_bin                 | sjis     |  88 |         | Yes      |       1 |

| hebrew_general_ci        | hebrew   |  16 | Yes     | Yes      |       1 |

| hebrew_bin               | hebrew   |  71 |         | Yes      |       1 |

| tis620_thai_ci           | tis620   |  18 | Yes     | Yes      |       4 |

| tis620_bin               | tis620   |  89 |         | Yes      |       1 |

| euckr_korean_ci          | euckr    |  19 | Yes     | Yes      |       1 |

| euckr_bin                | euckr    |  85 |         | Yes      |       1 |

| koi8u_general_ci         | koi8u    |  22 | Yes     | Yes      |       1 |

| koi8u_bin                | koi8u    |  75 |         | Yes      |       1 |

| gb2312_chinese_ci        | gb2312   |  24 | Yes     | Yes      |       1 |

| gb2312_bin               | gb2312   |  86 |         | Yes      |       1 |

| greek_general_ci         | greek    |  25 | Yes     | Yes      |       1 |

| greek_bin                | greek    |  70 |         | Yes      |       1 |

| cp1250_general_ci        | cp1250   |  26 | Yes     | Yes      |       1 |

| cp1250_czech_cs          | cp1250   |  34 |         | Yes      |       2 |

| cp1250_croatian_ci       | cp1250   |  44 |         | Yes      |       1 |

| cp1250_bin               | cp1250   |  66 |         | Yes      |       1 |

| cp1250_polish_ci         | cp1250   |  99 |         | Yes      |       1 |

| gbk_chinese_ci           | gbk      |  28 | Yes     | Yes      |       1 |

| gbk_bin                  | gbk      |  87 |         | Yes      |       1 |

| latin5_turkish_ci        | latin5   |  30 | Yes     | Yes      |       1 |

| latin5_bin               | latin5   |  78 |         | Yes      |       1 |

| armscii8_general_ci      | armscii8 |  32 | Yes     | Yes      |       1 |

| armscii8_bin             | armscii8 |  64 |         | Yes      |       1 |

| utf8_general_ci          | utf8     |  33 | Yes     | Yes      |       1 |

| utf8_bin                 | utf8     |  83 |         | Yes      |       1 |

| utf8_unicode_ci          | utf8     | 192 |         | Yes      |       8 |

| utf8_icelandic_ci        | utf8     | 193 |         | Yes      |       8 |

| utf8_latvian_ci          | utf8     | 194 |         | Yes      |       8 |

| utf8_romanian_ci         | utf8     | 195 |         | Yes      |       8 |

| utf8_slovenian_ci        | utf8     | 196 |         | Yes      |       8 |

| utf8_polish_ci           | utf8     | 197 |         | Yes      |       8 |

| utf8_estonian_ci         | utf8     | 198 |         | Yes      |       8 |

| utf8_spanish_ci          | utf8     | 199 |         | Yes      |       8 |

| utf8_swedish_ci          | utf8     | 200 |         | Yes      |       8 |

| utf8_turkish_ci          | utf8     | 201 |         | Yes      |       8 |

| utf8_czech_ci            | utf8     | 202 |         | Yes      |       8 |

| utf8_danish_ci           | utf8     | 203 |         | Yes      |       8 |

| utf8_lithuanian_ci       | utf8     | 204 |         | Yes      |       8 |

| utf8_slovak_ci           | utf8     | 205 |         | Yes      |       8 |

| utf8_spanish2_ci         | utf8     | 206 |         | Yes      |       8 |

| utf8_roman_ci            | utf8     | 207 |         | Yes      |       8 |

| utf8_persian_ci          | utf8     | 208 |         | Yes      |       8 |

| utf8_esperanto_ci        | utf8     | 209 |         | Yes      |       8 |

| utf8_hungarian_ci        | utf8     | 210 |         | Yes      |       8 |

| utf8_sinhala_ci          | utf8     | 211 |         | Yes      |       8 |

| utf8_general_mysql500_ci | utf8     | 223 |         | Yes      |       1 |

| ucs2_general_ci          | ucs2     |  35 | Yes     | Yes      |       1 |

| ucs2_bin                 | ucs2     |  90 |         | Yes      |       1 |

| ucs2_unicode_ci          | ucs2     | 128 |         | Yes      |       8 |

| ucs2_icelandic_ci        | ucs2     | 129 |         | Yes      |       8 |

| ucs2_latvian_ci          | ucs2     | 130 |         | Yes      |       8 |

| ucs2_romanian_ci         | ucs2     | 131 |         | Yes      |       8 |

| ucs2_slovenian_ci        | ucs2     | 132 |         | Yes      |       8 |

| ucs2_polish_ci           | ucs2     | 133 |         | Yes      |       8 |

| ucs2_estonian_ci         | ucs2     | 134 |         | Yes      |       8 |

| ucs2_spanish_ci          | ucs2     | 135 |         | Yes      |       8 |

| ucs2_swedish_ci          | ucs2     | 136 |         | Yes      |       8 |

| ucs2_turkish_ci          | ucs2     | 137 |         | Yes      |       8 |

| ucs2_czech_ci            | ucs2     | 138 |         | Yes      |       8 |

| ucs2_danish_ci           | ucs2     | 139 |         | Yes      |       8 |

| ucs2_lithuanian_ci       | ucs2     | 140 |         | Yes      |       8 |

| ucs2_slovak_ci           | ucs2     | 141 |         | Yes      |       8 |

| ucs2_spanish2_ci         | ucs2     | 142 |         | Yes      |       8 |

| ucs2_roman_ci            | ucs2     | 143 |         | Yes      |       8 |

| ucs2_persian_ci          | ucs2     | 144 |         | Yes      |       8 |

| ucs2_esperanto_ci        | ucs2     | 145 |         | Yes      |       8 |

| ucs2_hungarian_ci        | ucs2     | 146 |         | Yes      |       8 |

| ucs2_sinhala_ci          | ucs2     | 147 |         | Yes      |       8 |

| ucs2_general_mysql500_ci | ucs2     | 159 |         | Yes      |       1 |

| cp866_general_ci         | cp866    |  36 | Yes     | Yes      |       1 |

| cp866_bin                | cp866    |  68 |         | Yes      |       1 |

| keybcs2_general_ci       | keybcs2  |  37 | Yes     | Yes      |       1 |

| keybcs2_bin              | keybcs2  |  73 |         | Yes      |       1 |

| macce_general_ci         | macce    |  38 | Yes     | Yes      |       1 |

| macce_bin                | macce    |  43 |         | Yes      |       1 |

| macroman_general_ci      | macroman |  39 | Yes     | Yes      |       1 |

| macroman_bin             | macroman |  53 |         | Yes      |       1 |

| cp852_general_ci         | cp852    |  40 | Yes     | Yes      |       1 |

| cp852_bin                | cp852    |  81 |         | Yes      |       1 |

| latin7_estonian_cs       | latin7   |  20 |         | Yes      |       1 |

| latin7_general_ci        | latin7   |  41 | Yes     | Yes      |       1 |

| latin7_general_cs        | latin7   |  42 |         | Yes      |       1 |

| latin7_bin               | latin7   |  79 |         | Yes      |       1 |

| utf8mb4_general_ci       | utf8mb4  |  45 | Yes     | Yes      |       1 |

| utf8mb4_bin              | utf8mb4  |  46 |         | Yes      |       1 |

| utf8mb4_unicode_ci       | utf8mb4  | 224 |         | Yes      |       8 |

| utf8mb4_icelandic_ci     | utf8mb4  | 225 |         | Yes      |       8 |

| utf8mb4_latvian_ci       | utf8mb4  | 226 |         | Yes      |       8 |

| utf8mb4_romanian_ci      | utf8mb4  | 227 |         | Yes      |       8 |

| utf8mb4_slovenian_ci     | utf8mb4  | 228 |         | Yes      |       8 |

| utf8mb4_polish_ci        | utf8mb4  | 229 |         | Yes      |       8 |

| utf8mb4_estonian_ci      | utf8mb4  | 230 |         | Yes      |       8 |

| utf8mb4_spanish_ci       | utf8mb4  | 231 |         | Yes      |       8 |

| utf8mb4_swedish_ci       | utf8mb4  | 232 |         | Yes      |       8 |

| utf8mb4_turkish_ci       | utf8mb4  | 233 |         | Yes      |       8 |

| utf8mb4_czech_ci         | utf8mb4  | 234 |         | Yes      |       8 |

| utf8mb4_danish_ci        | utf8mb4  | 235 |         | Yes      |       8 |

| utf8mb4_lithuanian_ci    | utf8mb4  | 236 |         | Yes      |       8 |

| utf8mb4_slovak_ci        | utf8mb4  | 237 |         | Yes      |       8 |

| utf8mb4_spanish2_ci      | utf8mb4  | 238 |         | Yes      |       8 |

| utf8mb4_roman_ci         | utf8mb4  | 239 |         | Yes      |       8 |

| utf8mb4_persian_ci       | utf8mb4  | 240 |         | Yes      |       8 |

| utf8mb4_esperanto_ci     | utf8mb4  | 241 |         | Yes      |       8 |

| utf8mb4_hungarian_ci     | utf8mb4  | 242 |         | Yes      |       8 |

| utf8mb4_sinhala_ci       | utf8mb4  | 243 |         | Yes      |       8 |

| cp1251_bulgarian_ci      | cp1251   |  14 |         | Yes      |       1 |

| cp1251_ukrainian_ci      | cp1251   |  23 |         | Yes      |       1 |

| cp1251_bin               | cp1251   |  50 |         | Yes      |       1 |

| cp1251_general_ci        | cp1251   |  51 | Yes     | Yes      |       1 |

| cp1251_general_cs        | cp1251   |  52 |         | Yes      |       1 |

| utf16_general_ci         | utf16    |  54 | Yes     | Yes      |       1 |

| utf16_bin                | utf16    |  55 |         | Yes      |       1 |

| utf16_unicode_ci         | utf16    | 101 |         | Yes      |       8 |

| utf16_icelandic_ci       | utf16    | 102 |         | Yes      |       8 |

| utf16_latvian_ci         | utf16    | 103 |         | Yes      |       8 |

| utf16_romanian_ci        | utf16    | 104 |         | Yes      |       8 |

| utf16_slovenian_ci       | utf16    | 105 |         | Yes      |       8 |

| utf16_polish_ci          | utf16    | 106 |         | Yes      |       8 |

| utf16_estonian_ci        | utf16    | 107 |         | Yes      |       8 |

| utf16_spanish_ci         | utf16    | 108 |         | Yes      |       8 |

| utf16_swedish_ci         | utf16    | 109 |         | Yes      |       8 |

| utf16_turkish_ci         | utf16    | 110 |         | Yes      |       8 |

| utf16_czech_ci           | utf16    | 111 |         | Yes      |       8 |

| utf16_danish_ci          | utf16    | 112 |         | Yes      |       8 |

| utf16_lithuanian_ci      | utf16    | 113 |         | Yes      |       8 |

| utf16_slovak_ci          | utf16    | 114 |         | Yes      |       8 |

| utf16_spanish2_ci        | utf16    | 115 |         | Yes      |       8 |

| utf16_roman_ci           | utf16    | 116 |         | Yes      |       8 |

| utf16_persian_ci         | utf16    | 117 |         | Yes      |       8 |

| utf16_esperanto_ci       | utf16    | 118 |         | Yes      |       8 |

| utf16_hungarian_ci       | utf16    | 119 |         | Yes      |       8 |

| utf16_sinhala_ci         | utf16    | 120 |         | Yes      |       8 |

| cp1256_general_ci        | cp1256   |  57 | Yes     | Yes      |       1 |

| cp1256_bin               | cp1256   |  67 |         | Yes      |       1 |

| cp1257_lithuanian_ci     | cp1257   |  29 |         | Yes      |       1 |

| cp1257_bin               | cp1257   |  58 |         | Yes      |       1 |

| cp1257_general_ci        | cp1257   |  59 | Yes     | Yes      |       1 |

| utf32_general_ci         | utf32    |  60 | Yes     | Yes      |       1 |

| utf32_bin                | utf32    |  61 |         | Yes      |       1 |

| utf32_unicode_ci         | utf32    | 160 |         | Yes      |       8 |

| utf32_icelandic_ci       | utf32    | 161 |         | Yes      |       8 |

| utf32_latvian_ci         | utf32    | 162 |         | Yes      |       8 |

| utf32_romanian_ci        | utf32    | 163 |         | Yes      |       8 |

| utf32_slovenian_ci       | utf32    | 164 |         | Yes      |       8 |

| utf32_polish_ci          | utf32    | 165 |         | Yes      |       8 |

| utf32_estonian_ci        | utf32    | 166 |         | Yes      |       8 |

| utf32_spanish_ci         | utf32    | 167 |         | Yes      |       8 |

| utf32_swedish_ci         | utf32    | 168 |         | Yes      |       8 |

| utf32_turkish_ci         | utf32    | 169 |         | Yes      |       8 |

| utf32_czech_ci           | utf32    | 170 |         | Yes      |       8 |

| utf32_danish_ci          | utf32    | 171 |         | Yes      |       8 |

| utf32_lithuanian_ci      | utf32    | 172 |         | Yes      |       8 |

| utf32_slovak_ci          | utf32    | 173 |         | Yes      |       8 |

| utf32_spanish2_ci        | utf32    | 174 |         | Yes      |       8 |

| utf32_roman_ci           | utf32    | 175 |         | Yes      |       8 |

| utf32_persian_ci         | utf32    | 176 |         | Yes      |       8 |

| utf32_esperanto_ci       | utf32    | 177 |         | Yes      |       8 |

| utf32_hungarian_ci       | utf32    | 178 |         | Yes      |       8 |

| utf32_sinhala_ci         | utf32    | 179 |         | Yes      |       8 |

| binary                   | binary   |  63 | Yes     | Yes      |       1 |

| geostd8_general_ci       | geostd8  |  92 | Yes     | Yes      |       1 |

| geostd8_bin              | geostd8  |  93 |         | Yes      |       1 |

| cp932_japanese_ci        | cp932    |  95 | Yes     | Yes      |       1 |

| cp932_bin                | cp932    |  96 |         | Yes      |       1 |

| eucjpms_japanese_ci      | eucjpms  |  97 | Yes     | Yes      |       1 |

| eucjpms_bin              | eucjpms  |  98 |         | Yes      |       1 |

+--------------------------+----------+-----+---------+----------+---------+

197 rows in set (0.03 sec)


mysql>


mysql> show global variables like '%char%';

+--------------------------+----------------------------------+

| Variable_name            | Value                            |

+--------------------------+----------------------------------+

| character_set_client     | latin1                           |

| character_set_connection | latin1                           |

| character_set_database   | latin1                           |

| character_set_filesystem | binary                           |

| character_set_results    | latin1                           |

| character_set_server     | latin1                           |

| character_set_system     | utf8                             |

| character_sets_dir       | /usr/local/mysql/share/charsets/ |

+--------------------------+----------------------------------+

8 rows in set (0.00 sec)


mysql>


image.png

image.png


image.png


image.png


image.png

image.png



image.png

image.png


大对象存的是指针,指向他处,所以无法创建索引,也不能设默认值

image.png



numeric(g,f)  括号里,总长度,精度

decimal(g,f)  括号里,总长度,精度

real 有时候相当于 float ,有时候相当于double(在不同的平台上不一样)(这个用得不多)

image.png




image.png



image.png



image.png


修饰符 auto_increment 

        主键或唯一键索引,

        不能为空,

        整形,

        只能是正数(unsigned)

            例 create table test (id int unsigned auto_increment not null primary key,name char(20))

last_insert_id() 函数,显示上一次的序列是几


所有的函数 select 函数名()

比如 select database();  select last_insert_id();


所有的存储过程 使用 call 存储过程


float(g,f): g:一共多长,f:浮点多少位

double(g,f): g:一共多长,f:浮点多少位


image.png


image.png


[root@mail ~]# mysql

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 18

Server version: 5.5.28-log Source distribution


Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.


Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.


Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


mysql> use mysql;

Database changed

mysql> select database();

+------------+

| database() |

+------------+

| mysql      |

+------------+

1 row in set (0.00 sec)


mysql>

mysql> select last_insert_id();

+------------------+

| last_insert_id() |

+------------------+

|                0 |

+------------------+

1 row in set (0.00 sec)


mysql>


image.png

image.png


image.png

not null , null ,default, auto_increment

image.png



unsigned:无符号 ( 0  和 正整数 )


image.png


image.png



zerofill: 多一位用 0 填充,(用得少)



image.png



image.png


tinyint(1)    数值型,这里(1)表示显示出1位

    boolean

    bool


image.png


日期,时间,日期时间 都支持时区

timestamp 没有时区的概念,就是格尼尼治时间戳,然后转为当地时间

 修饰符: not null ,null ,default


image.png


datetime(8字节) 比 date(3字节)+time(3字节)  多两个字节


image.png


image.png



image.png


image.png



enum,set都是字符型

        enum: 最多 65535 种变化

                    例如 DNS

                        RRtype CHAR(5)  #不理想    ( RRtype: rescource record type)

                                (A,PTR,CNAME,AAAA,NS,SOA,SRV,TXT)

                        RRtype ENUM('A','PTR','CNAME','AAAA','NS','SOA','SRV','TXT')    #只能从中选择,比较好

                        

        set:在表中存的是下标, 它是不能作为索引字段的


image.png



image.png



image.png


image.png




image.png

image.png


SQL模型 (模式):  违反sql规则,采取的处理机制                                   abc,abcdefg

                                                                                                        CHAR(3) 是丢弃,还是只存前3个



image.png


image.png

Mysql 其实尽量让模式与其它数据库兼容



ANSI_QUOTES:  " 双引号  相当于 反引号  `  (引用字段名称表名,等) , ' 单引号 被当作字符串


INNORE_SPACE: 在内建函数中忽略多余的空白字符


STRICT_ALL_TABLES: (最严格的法则)只要违反规则的数据,不允许填入,并且会返回错误的


STRICT_TRANS_TABLES: 向一个支持事务的表当中,插入非法数据时,是不允许的,而且返回一个错误


TRADITIONAL 传统的





[root@mail ~]# mysql

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 19

Server version: 5.5.28-log Source distribution


Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.


Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.


Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


mysql> show global variables like 'sql_mode';    #由结果,看到没有定义 sql  模型

+---------------+-------+

| Variable_name | Value |

+---------------+-------+

| sql_mode      |       |

+---------------+-------+

1 row in set (0.00 sec)


mysql>



mysql 变量

    状态变量

    服务器变量

             按作用域分类两类:    

                    全局

                            show  global variables

                            跟用户没关系,服务器启动后就生效了

                             只有root (或有管理权限的用户) 才能改           

                    会话变量

                            show  [session]  variables             # session 是可省的

                            每一次客户端连到mysql上去,只对当前会话生效的变量(会话终止就生效了)

                             普通用户就能改         

    

             按生效时间,分为两类:

                       可动态调整的: 调整后 立即生效 (可即时修改)

                       静态的:调整后,要重启mysql服务器才能生效,但是改的全局变量值因重启就没了;;所以静态的必须写在配置文件中或者通过参数传递给mysqld(mysqld_safe)进程


            动态调整参数的生效方式:

                    全局: 对当前会话无效,只对新建会话有效 (好像有点改profile文件,要另打开putty才生效)

                    会话:即时生效,但只对当前会话有效,



        服务器变量(内置变量):@@变量名    两个艾特变量名

                显示: select 

                设定: set [global|sesssion] 变量名='value'


/etc/my.cnf        全局

~/.my.cnf           局部 ,局部覆盖全局




默认情况下新建立会话变量 是从全局继承的,继承完可以自再修改



[root@mail ~]# mysql

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 19

Server version: 5.5.28-log Source distribution


Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.


Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.


Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


mysql> 

mysql> show global variables like 'sql_mode';

+---------------+-------+

| Variable_name | Value |

+---------------+-------+

| sql_mode      |       |

+---------------+-------+

1 row in set (0.00 sec)


mysql> show  variables like 'sql_mode';

+---------------+-------+

| Variable_name | Value |

+---------------+-------+

| sql_mode      |       |

+---------------+-------+

1 row in set (0.00 sec)


mysql>


mysql> select @@global.sql_mode;        #用两个@表示调用服务器变量 两个艾特变量名

                                                                 # 一个@表示用户自定义变量

+-------------------+

| @@global.sql_mode |

+-------------------+

|                   |

+-------------------+

1 row in set (0.00 sec)


mysql> select @@sql_mode;

+------------+

| @@sql_mode |

+------------+

|            |

+------------+

1 row in set (0.00 sec)


mysql> select @@session.sql_mode;  #session 变量,session其实是可以省略的

+--------------------+

| @@session.sql_mode |

+--------------------+

|                    |

+--------------------+

1 row in set (0.00 sec)


mysql>



image.png


image.png


[root@mail ~]# mysql

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 20

Server version: 5.5.28-log Source distribution


Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.


Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.


Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


mysql> set global sql_mode='strict_all_tables';  #修改全局的

Query OK, 0 rows affected (0.00 sec)


mysql>

mysql> select @@session.sql_mode;  #对会话不起作用

+--------------------+

| @@session.sql_mode |

+--------------------+

|                    |

+--------------------+

1 row in set (0.00 sec)


mysql> select @@global.sql_mode;  # 对全局有效

+-------------------+

| @@global.sql_mode |

+-------------------+

| STRICT_ALL_TABLES |

+-------------------+

1 row in set (0.00 sec)


mysql>


重开一个putty窗口

[root@mail ~]# mysql

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 21

Server version: 5.5.28-log Source distribution


Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.


Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.


Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.



mysql> select @@sql_mode;  #不加session 就是会话,所以说上面动态调整全局的,对当前会话无效,对这里新建会话有效

+-------------------+

| @@sql_mode        |

+-------------------+

| STRICT_ALL_TABLES |

+-------------------+

1 row in set (0.00 sec)


mysql>

mysql> set session sql_mode='strict_trans_tables';     #在这里改会话变量,只对当前会话有效

Query OK, 0 rows affected (0.00 sec)


mysql>


mysql> select @@sql_mode;        # 看到了,此时当前会话有效了  (session是可以省掉的)

+---------------------+

| @@sql_mode          |

+---------------------+

| STRICT_TRANS_TABLES |

+---------------------+

1 row in set (0.00 sec)


mysql>

mysql> select @@global.sql_mode;        # 对全局是无效的

+-------------------+

| @@global.sql_mode |

+-------------------+

| STRICT_ALL_TABLES |

+-------------------+

1 row in set (0.00 sec)


mysql>


再重开一个putty窗口

[root@mail ~]# mysql

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 22

Server version: 5.5.28-log Source distribution


Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.


Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.


Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


mysql> select @@global.sql_mode;  # 上一个putty窗口改的会话session,不起作用

+-------------------+

| @@global.sql_mode |

+-------------------+

| STRICT_ALL_TABLES |

+-------------------+

1 row in set (0.00 sec)


mysql> select @@sql_mode;    # 上一个putty窗口改的会话session,不起作用

+-------------------+

| @@sql_mode        |

+-------------------+

| STRICT_ALL_TABLES |

+-------------------+

1 row in set (0.00 sec)


mysql>


普通分类: