Mysql数据库理论基础之三 --- 数据类型及SQL结构化查询语句使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql数据库理论基础之三 --- 数据类型及SQL结构化查询语句使用相关的知识,希望对你有一定的参考价值。

一、简介

mysql AB公司开发,是最流行的开放源码SQL数据库管理系统,主要特点:

  • 1、是一种数据库管理系统

  • 2、是一种关联数据库管理系统

  • 3、是一种开放源码软件,且有大量可用的共享MySQL软件

  • 4、MySQL数据库服务器具有快速、可靠和易于使用的特点

  • 5、MySQL服务器工作在客户端/服务器模式下,或嵌入式系统中


  • InnoDB存储引擎将InnoDB表保存在一个表空间内,该表空间可由数个文件创建。这样,表的大小就能超过单独文件的最大容量。表空间可包括原始磁盘分区,从而使得很大的表成为可能。表空间的最大容量为64TB。


二、MySQL 存储引擎,也称表类型

2.1. MySQL 存储引擎,也被称为表类型:

 MyISAM表:无事务处理功能,支持表锁

     .frm:表结构定义文件

     .MYD:表数据文件

     .MYI:表索引文件

 InnoDB表:支持事务处理功能,支持行锁

     .frm:表结构定义文件

     .ibd:表空间(包含数据和索引文件)


2.2. MySQL常用的查询命令:

    SHOW ENGINES;        #查看数据库支持的引擎及状态。

    SHOW TABLE STATUS LIKE ‘user‘ \G  #查看表user的属性信息,\G竖排显示

    mysqld --help --verbose     #查看mysql支持的各种相关指令

     SHOW CHARACTER SET;       #显示所有支持的字符集

     SHOW COLLATION ;       #显示各个字符集下的排序规则


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

    动态SQL:通过函数或方法与数据库服务建立连接,

    嵌入式SQL:


2.4. MySQL工具:

 客户端工具:

   mysql(登录工具),   mysqladmin(管理工具),

   mysqldump(备份工具),   mysqlimport,mysqlcheck 

 服务器端工具:

    mysqld(启动进程),   mysqld_safe(安全线程),

    mysqld_multi(支持多实例)


2.5. MySQL配置文件:my.cnf

 配置文件启动顺序为,/etc/my.cnf  -->/etc/mysql/my.cnf  -->$MYSQL_HOME/my.cnf

   --> --default-extra-file=/path/to/somefile  -->~/.my.cnf


2.6. MySQL启动失败的原因大致有:

    1、此前mysql服务未关闭  killall mysqld

    2、数据初始化失败

    3、数据目录位置错误    

    4、数据目录权限问题


2.7. DBA的工作内容:

    开发DBA:数据库设计,SQL语句,存储过程,存储函数,触发器

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


2.8. MySQL数据类型:

  数值型: 

      精确数值型:   int(整数型)     decimal(十进制型)

      近似数值型: float(单精度浮点型) double(双精度浮点型)  real(实数型)

  字符型:

     定长字符型:CHAR(NUM)BINARY(区分大小写)  最长不超过255个字符

     变长字符型:VARCHAR(NUM)VARBINARY(区分大小写)  最长不超过65535

     ENUM枚举型:ENUM(‘A‘,‘BB‘,‘CC‘,‘DD‘)用户只能在列举中选择一个

     SET枚举字符串型

  日期时间型:

     date日期, time时间,  datetime日期时间, timestamp时间戳,  year


2.9. 数据类型需具备以下几点:

    1、存入的值类型

    2、占据的存储空间

    3、是变长还是定长

    4、如何比较及排序

    5、是否能够索引


AUTO_INCREMENT 自动增长类型,需满足几点:必须为整型,非空,元符号,主键或唯一键

 eg:CREATE TABLE test(ID INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,Name CHAR(20))

  创建一个test表,包含2个字段ID和Name,ID字段的修饰符必须是INT(整型),UNSIGNED(无符号的)


  AUTO_INCREMENT(自动增长),NOT NULL(非空的),PRIMARY KEY(主键)。

  Name字段类型为CHAR(20)(定长字符型长度为20).

 mysql> SELECT LAST_INSERT_ID();


2.10. MySQL服务器变量:

   按作用域,分两类:

   全局变量

        SHOW GLOBAL VARIABLES LIKE ‘ ‘;    查看全局变量

    会话变量

        SHOW [SESSION] VARIABLES LIKE ‘ ‘;   查看会话变量

   按生效时间,分两类:

       可动态调整的变量:可即时修改

       静态变量:

            写在配置文件中,通过参数传递给mysqld

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

       全局变量:对当前会话无效,只对新建立会话有效;

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


   服务器变量:@@变量名

        显示:SELECT

        设定:SET GLOBAL|SESSION 变量名=‘value‘


mysql> SET GLOBAL sql_mode=‘strict_all_tables‘;  #设定sql_mode的值为strict_all_tables

Query OK, 0 rows affected (0.00 sec)

mysql> SELECT @@global.sql_mode;  #查看sql_mode的全局变量

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

| @@global.sql_mode |

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

| STRICT_ALL_TABLES |

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

1 row in set (0.00 sec)

mysql> SELECT @@sql_mode;  #查看sql_mode的会话变量

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

| @@sql_mode |

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

|            |

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

1 row in set (0.00 sec)

  

---end---


本文出自 “风过无痕” 博客,请务必保留此出处http://wangfx.blog.51cto.com/1697877/1925294

以上是关于Mysql数据库理论基础之三 --- 数据类型及SQL结构化查询语句使用的主要内容,如果未能解决你的问题,请参考以下文章

系统学习redis之三——redis数据类型之string类型及操作

初识Redis系列之三:Redis支持的数据类型及使用

python基础之三:intboolstr

缓存系列之三:redis安装及基本数据类型命令使用

Mysql数据库理论基础之四 --- 表和索引的管理

Mysql系列四:数据库分库分表基础理论