菜鸟学Linux 第073篇笔记 client,数据类型,变量

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介:

菜鸟学Linux 第073篇笔记 client,数据类型,变量



小标题

client、mysql数据类型、服务器变量、存储引擎、sql模型


MySQL客户端

mysql

--user, -u

--host, -h

--password, -p

--port

--protocol

--database DATABASE, -D

--html 返回结果以html格式显示

--xml 返回结果以xml格式显示



mysql>

交互式模式

批处理模式(脚本模式)

脚本写法和在mysql>模式输入一样;号结尾,只是不用进入交互模式便可执行

执行mysql脚本方式

命令行下

# mysql < /path/name.sql

进入交互模式下引用脚本

mysql> \. /path/name.sql

mysql> source /path/name.sql



mysql>

命令两类

客户端命令

\c 提前终止语句执行

\g 无论语句结束符是什么,直接将此语句送至服务器端执行

\G  无论语句结束符是什么,直接将此语句送到服务器端执行,以竖排方式显示

\.  引用.sql结尾的Mysql语句脚本

\s  Get status information from the server.

\!  Execute a system shell command.

\W  Show warnings after every statement.

\w  Don't show warnings after every statement.

\#  对新建的对象支持补全的功能

\d  定义结束符


服务器语句;有语句结束符,默认为;号

help Key-word




mysql提示符含义

mysql> 正常输入命令

-> 少结束符

'> 少单引号的后一半

"> 少双绰号的后一半

`> 少反绰号的后一半




mysql让其支持补全

(不推荐,只是说有这样一种功能,因为支持补全需要将这些数据加载到内存)

名称补全 \#




mysqladmin 

# mysqladmin [options] command [arg] [command [arg] ] ...

create DATABASE-NAME;

drop DATABASE-NAME;

ping 

# mysqladmin -uroot -h192.168.11.122 -p -ping测试服务器是否可以ping通

processlist 显示正在执行的线程列表

status

--sleep N(second)

--count N(次数)

extended-status 显示状态变量和其值

variables  显示服务器变量

flush-privileges 让mysql重读授权表

flush-status  重置大多数的服务器状态变量

flush-tables  关闭已经打开的表

flush-threads  重置线程缓存

flush-logs  二进制和中继日志滚动

flush-hosts 清除主机的错误信息,主机尝试多次连接失败,mysql会禁止其一段时间登录

kill    杀死某线程

reload    = flush-privileges

refresh  = fush-logs and flush hosts 同时执行

shutdown  关闭mysql服务器进程

version  版本号和状态信息

start-slave 启动复制,启动从服务器复制线程

SQL thread

IO thread

stop-slave 停止复制线程


mysqldump(备份), mysqlimport(导入), mysqlcheck(导入)




开发视角:

数据类型

约束

创建数据库、表、索引、视图

SELECT 语句





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

MyISAM(表类型):

不支持事务,表锁

.frm 表结构定义文件

.MYD 表数据

.MYI 索引


InnoDB表 事务,行锁

.frm 表结构

.ibd 表空间(数据和索引)


mysql: mysql库: MyISAM

mysql> SHOW TABLE STATUS LIKE 'user'\G;  显示表所使用的存储引擎

mysql> SHOW ENGINES;




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

动态SQL 通过函数或方法与数据库服务器建立连接,将语句发至服务器

嵌入式SQL 连接之前需要编译

JDBC (Java database connection), ODBC(open database connection)



客户端组件  mysql, mysqladin, mysqldump, mysqlimport, mysqlcheck

服务器 mysqld, mysqld_safe, mysqld_multi(多实例)



my.cnf查找顺序

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



[mysqld]

[mysql]

[clent]


#mysqld --help --verbose 显示可以在my.cnf文件中配置的参数


记得勤查看错误日志



DBA 方向

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

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





数据类型

数值型

精确数值

int

decimal

近似数值

float

double

real

字符型

定长 CHAR(#), BINARY(区分大小写)

变长 VARCHAR(#), VARBINARY(区分大小写)

text, blob

ENUM, SET


日期时间型

date

time

datetime

timestamp

布尔型




详解

String Data Types

TINYINT 255

SMALLINT 65535

MEDIUMINT 16M

INT  4G

BIGINT  非常大!

DECIMAL

FLOAT  (fixed)

DOUBLE  (fixed)

BOOL


Numeric data type attributes

NOT NULL

NULL

DEFAULT

AUTH_INCREMENT

UNSIGNED



String Data Types

CHAR  255

VARCHAR 65535

BINARY  255(fixed)

VARBINARY 65535(variable)

TINYBLOB 255(variable)

BLOB  65535(variable)

MEDIUMBLOB  16Mb(variable)

LONGBLOB  4GB(variable)

TINYTEXT 255

MEDIUMTEXT 16777215

LONGTEXT 40亿

ENUM

SET  (不支持索引)


Character string type attributes

NOT NULL

NULL

DEFAULT

CHARACTER SET

COLLATION


Date and Time Data Types

DATA

TIME

DATATIME

TIMESTAMP

YEAR



AUTO_INCREMENT

整形

非空

无符号

主键或唯一键

mysql> SELECT LAST_LAST_INCRET_ID();


CREAT TABLE test(ID INT UNSIGNED AUTO_INCREMENT NOTNULL PRIMARY KEY,Name CHAR(20));





域属性,修改符



定义数据类型意义:

1. 存入的值类型

2. 占据的存储空间

3. 定长还是变长

4. 如何比较及排序

5. 是否能够索引



重点掌握数据存储类型的格式、表示的范围大小、所能够接受的修饰符



SQL语句

mysql> SHOW CHARACTER SET; 

显示当前mysql服务器所支持的所有字符集

mysql> SHOW COLLATION; 

各个字符集的排序规则





SQL模型

ANSI QUOTES   单绰号标识字符串,双引号和反引号引用字段名称,表名等

IGNORE_SPACE  built-in function内建函数忽略空白字符

STRICT_ALL_TABLES 设置后不允许写非法字符

STRICT_TRANS_TABLES  向支持事务的表中插入非法数据会被拒绝

TRADITIONAL

mysql> SHOW GLOBAL VARIABLES LIKE 'sql_mode'; 查询SQL模型




服务器变量

按作用域分为两类

全局变量(管理员权限)

SHOW GLOBAL VARIABLES

会话变量(用户可修改)

SHOW [ SESSION ] VARIABLES


按生效时间划分为两类

动态 可即时修改

静态

写在配置文件中

通过参数传递给mysqld


动态参数调整生效方式

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

会话: 即时生效,但只对当前会话有效,关闭后失效


服务器变量@@

显示: SELECT @@{GLOBAL|SESSION}.sql_mode;

设定: SET {GLOBAL|SESSION} 变量名='value'

SET GLOBAL sql_mode='strict_trans_tables';s

设置后当前会话无效,重新建立会话生效

SET SESSION sql_mode='strict_trans_tables';

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

Winthcloud
相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3月前
|
Ubuntu Linux Python
Tkinter错误笔记(一):tkinter.Button在linux下出现乱码
在Linux系统中,使用Tkinter库时可能会遇到中文显示乱码的问题,这通常是由于字体支持问题导致的,可以通过更换支持中文的字体来解决。
224 0
Tkinter错误笔记(一):tkinter.Button在linux下出现乱码
|
5月前
|
Linux
Linux源码阅读笔记10-进程NICE案例分析2
Linux源码阅读笔记10-进程NICE案例分析2
|
5月前
|
Linux
Linux源码阅读笔记09-进程NICE案例分析1
Linux源码阅读笔记09-进程NICE案例分析1
|
3月前
|
Linux API 开发工具
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
ijkplayer是由B站研发的移动端播放器,基于FFmpeg 3.4,支持Android和iOS。其源码托管于GitHub,截至2024年9月15日,获得了3.24万星标和0.81万分支,尽管已停止更新6年。本文档介绍了如何在Linux环境下编译ijkplayer的so库,以便在较新的开发环境中使用。首先需安装编译工具并调整/tmp分区大小,接着下载并安装Android SDK和NDK,最后下载ijkplayer源码并编译。详细步骤包括环境准备、工具安装及库编译等。更多FFmpeg开发知识可参考相关书籍。
132 0
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
|
5月前
|
Unix Linux 开发工具
linux笔记 diff及patch的制作与使用
这篇文章是关于Linux系统中使用`diff`命令生成补丁文件以及使用`patch`命令应用这些补丁的详细教程和实战案例。
150 2
linux笔记 diff及patch的制作与使用
|
3月前
|
安全 Linux
Linux线程(十一)线程互斥锁-条件变量详解
Linux线程(十一)线程互斥锁-条件变量详解
|
5月前
|
Linux
Linux源码阅读笔记13-进程通信组件中
Linux源码阅读笔记13-进程通信组件中
|
5月前
|
消息中间件 安全 Java
Linux源码阅读笔记13-进程通信组件上
Linux源码阅读笔记13-进程通信组件上
|
5月前
|
Linux 开发者
Linux源码阅读笔记18-插入模型及删除模块操作
Linux源码阅读笔记18-插入模型及删除模块操作
|
5月前
|
Linux
Linux源码阅读笔记12-RCU案例分析
Linux源码阅读笔记12-RCU案例分析