Linux命令:MySQL系列之三--mysql数据类型及SQL结构化查询语句使用

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

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

.frm:表结构定义文件

.MYD:表数据文件

.MYI:表索引文件

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

.frm:表结构定义文件

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

MySQL常用的查询命令:

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

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

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

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

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

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

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

嵌入式SQL:

MySQL工具:

客户端工具:mysql(登录工具),mysqladmin(管理工具),mysqldump(备份工具),mysqlimport,mysqlcheck

服务器端工具:mysqld(启动进程),mysqld_safe(安全线程),mysqld_multi(支持多实例)

MySQL配置文件:my.cnf

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

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

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

1、此前mysql服务未关闭

2、数据初始化失败

3、数据目录位置错误

4、数据目录权限问题

DBA的工作内容:

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

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

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年

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

1、存入的值类型

2、占据的存储空间

3、是变长还是定长

4、如何比较及排序

5、是否能够索引

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

Usage: 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();

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)

时间: 2024-10-07 05:23:19

Linux命令:MySQL系列之三--mysql数据类型及SQL结构化查询语句使用的相关文章

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

一.简介 由MySQL AB公司开发,是最流行的开放源码SQL数据库管理系统,主要特点: 1.是一种数据库管理系统 2.是一种关联数据库管理系统 3.是一种开放源码软件,且有大量可用的共享MySQL软件 4.MySQL数据库服务器具有快速.可靠和易于使用的特点 5.MySQL服务器工作在客户端/服务器模式下,或嵌入式系统中 InnoDB存储引擎将InnoDB表保存在一个表空间内,该表空间可由数个文件创建.这样,表的大小就能超过单独文件的最大容量.表空间可包括原始磁盘分区,从而使得很大的表成为可能

mysql系列之三MySQL编译安装

mysql 安装: 专用软件包管理器包 deb,rpm rpm: RHEL(Oracle Linux),CentOS SUSE 通用二进制格式包 gcc:x86,x64 源代码 5.5,5.6 cmake编译 选择GA版本 mysql-client提供客户端 mysql-devel开发组建 mysql-server服务器端 mysql-shared共享库 mysql-shared-compat兼容库 mysql-test 测试组件 最后一次读取的配置优先级最高 /etc/my.cnf /etc/

Linux网站架构系列之Mysql—-部署篇

 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司.MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言.由于其体积小.速度快.总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库.由于其社区版的性能卓越,搭配PHP和Apache可组成良好的开发环境.本篇将为大家讲解mysql的简单部署. mysql的分为四个版本: Alpha版:一般只在软件开发公司内部运行,不对外公开. Beta版:完全功能的开发和

Mysql++学习(五)------专用SQL结构

专用SQL结构(SSQLS) 特性可以让你很轻易的定义用来匹配SQL表的C++结构.最通俗的理解:对于SQL表中的每一个字段,SSQLS结构都有一个变量与之对应.但是,MySQL++内部也会使用SSQLS的其他方法,操作符来提供简洁的功能. 要定义SSQLSes,需要使用定义在ssqls.h中的宏,这也是MySQL++唯一没有自动加入mysql++.h的头文件. sql_create 假如你有如下SQL表 CREATE TABLE stock ( item CHAR(30) NOT NULL,

Linux命令:MySQL系列之四--MySQL管理表和索引

SQL语句: 数据库 表 索引 视图 DML语句 单字段:    PRIMARY KEY 主键 UNIQUE KEY 唯一键 单或者多字段:    PRIMARY KEY(col,...) UNIQUE KEY(col,...) INDEX(col,...) 数据类型: data_type: BIT[(length)] 比特 | TINYINT[(length)] [UNSIGNED] [ZEROFILL] 非常小的整数(1字节) | SMALLINT[(length)] [UNSIGNED]

Linux命令:MySQL系列之八--MySQL事务相关内容

MySQL,ODBC    数据库事务 多事务同时执行:彼此之间互不影响的方式进行并行:事务之间交互,通过数据集. START TRANSACTION;  启动事务命令   数据库只有启动了事务才允许回滚撤销等操作. 且数据的engine引擎必须是innodb,才支持事务 ROLLBACK 回滚事务,mysql只要没有提交开启了事务都可以进行回滚操作. COMMIT:事务提交,事务提交后无法进行回滚操作. 如果没有明确启动事务:  autocommit能实现自动提交,每一个操作都直接提交: 所以

mysql系列之二数据类型和运算符

数据库表由多列字段构成,每一个字段指定了不同的数据类型.指定字段得数据类型之后,也就决定了向字段插入的数据内容,例如,当要插入数值的时候,可以将他们存储为整数类型,也可以将它们存储为字符串类型:不同的数据类型也决定了mysql在存储它们的时候使用的方式,以及在使用它们的时候选择什么运算符号进行运算. 1.MySQL数据类型介绍 MySQL支持多种数据类型,主要有数值类型.日期/时间类型和字符串类型. (1)数值数据类型:包括整数类型TINYINT.SMALLINT.MEDIUMINT.INT.B

[mysql系列01]mysql数据类型

1.整型 MySQL数据类型 含义(有符号) tinyint(m) 1个字节  范围(-128~127) smallint(m) 2个字节  范围(-32768~32767) mediumint(m) 3个字节  范围(-8388608~8388607) int(m) 4个字节  范围(-2147483648~2147483647) bigint(m) 8个字节  范围(+-9.22*10的18次方) 取值范围如果加了unsigned,则最大值翻倍,如tinyint unsigned的取值范围为

MySQL系列(三) MySQL的约束

约束 数据完整性 constraint 实体完整性保证表中有一个主键,还可以编写触发器保证数据完整性 域完整性保证数据每列的值满足特定条件,可以通过一下途径来保证: 选择适合的数据类型,外键,编写触发器,还可以用default 约束作为强制域完整性的一个方面 参照完整性保证两张表之间的关系 约束的创建和查找: 创建有两种方式: 表建立时就定义约束条件 利用 alter table 来进行约束的更新 唯一索引的默认约束名与列名相同. 约束和索引的区别: 约束是一个逻辑上的概念,用来保证数据的完整性