MySQL基础实例-阿里云开发者社区

开发者社区> 吟风_骋> 正文

MySQL基础实例

简介: 总结了一些个人觉得比较常用且重要的mysql sql语句基础操作,不全待续
+关注继续查看

我们可以对多个column 进行排序
image

DATE_FORMAT(DATE,format) 函数,可以让日期以指定格式输出
SELECT name, birth, DATE_FORMAT(now(),"%Y-%m-%d %T") as curDate FROM pet;
image

不能在NULL 列上做算数比较,不起作用
SELECT 1 = NULL, 1 <> NULL, 1 < NULL, 1 > NULL;
image

查询具体以特定字符串开头,用REGEXP_LIKE()函数, 并且表达式以“^”符号开始
SELECT * FROM pet WHERE REGEXP_LIKE(name, '^bu');
image

当然,有从开头查询,就有从结尾匹配查询,如查找以“fy”结尾的name,需要用到‘$’符号
SELECT * FROM pet WHERE REGEXP_LIKE(name, 'fy$');
image
REGEXP_LIKE(name, 'w') 匹配包含‘w’的字符串
REGEXP_LIKE(name, '^.{5}$') 匹配长度为5的字符串

Group by 可以针对多列进行分组行为
SELECT species, sex, COUNT(*) FROM pet GROUP BY species, sex;
image

@@global 可以进行全局访问
SELECT @@global.sql_mode;
set @@global.sql_mode ='’;

SELECT DATABASE(); 显示当前使用的数据库
SHOW TABLES; 当前库包含的表
DESCRIBE pet; 显示表pet的具体表描述

用户自定义变量
SELECT @min_weight:=MIN(weight),@max_weight:=MAX(weight) FROM pet;
SELECT * FROM pet WHERE weight=@min_weight OR weight=@max_weight;
image

连接mysql数据库
shell> mysql -u root -p --execute="SELECT User, Host FROM mysql.user"
Enter password:

连接mysql server,利用 SHOW BINARY LOGS; 可以查看当前所有binlog的二进制文件
image

mysqlbinlog 利用--hexdump 参数可以将二进制日志内容生成十六进制dump
如已配置mysqlpath,binlog.000001 文件在目录C:installmysql-8.0.16-winx64data 下
执行命令 C:installmysql-8.0.16-winx64data>mysqlbinlog --hexdump binlog.000001
image

登录msyql 终端,
日志文件路径show variables like 'general_log_file';
image
错误日志show variables like 'log_error';
image
慢查询日志文件show variables like 'slow_query_log_file';
image

可以告诉mysqlbinlog为行事件禁用BINLOG语句
先执行sql: update pet set sex='f' where id=9; 看看log里面干了什么事
mysqlbinlog -v --base64-output=DECODE-ROWS binlog.000001
image

显示log文件中慢查询的语句:shell> mysqldumpslow [options] [log_file ...]
如 mysqldumpslow -v binlog.000001

查看当前mysql运行的一些变量,可以执行命令 mysql> SHOW VARIABLES;
查看当前mysql运行的一些统计和状态指标,执行命令 mysql> SHOW STATUS;

SQL modes 影响Mysql支持的语法以及数据验证。它使得在不同环境使用mysql或者和其他数据库服务变得更加容易。
Sql mode很重要,比如一些 mode是至关重要的,拿 strict mode 来说
先查看 SELECT @@global.sql_mode;
image

修改sql mode 来支持严格的校验,如截图
image

And条件的优化
先执行 show index from pet; 查看索引
image

explain select * from pet where sex='f' and card_no > 201912020001;
image
使用了card_no_name 的索引,type为范围查询,共找到8行数据。
可以清晰看到,where 后的条件以“and” 连接,条件会根据索引等进行优先过滤,不受条件在and的位置顺序影响。
另外,range compare 范围比较,根据情况进行具体分析,也会走索引查询。

几个比较常用且特殊的操作符Comparison Operators
<=> NULL-safe equal to operator
!=, <> Not equal operator
NOT LIKE Negation of simple pattern matching
IS NOT NULL 判断不是NULL 返回1

mysql> SELECT 1 <=> 1, NULL <=> NULL, 1 <=> NULL;

    -> 1, 1, 0

mysql> SELECT 1 = 1, NULL = NULL, 1 = NULL;

    -> 1, NULL, NULL

mysql> SELECT 1 IS NOT NULL, 0 IS NOT NULL, NULL IS NOT NULL;

    -> 1, 1, 0

流控制方法
mysql> SELECT CASE 1 WHEN 1 THEN 'one' WHEN 2 THEN 'two' ELSE 'more' END;

    -> 'one'

mysql> SELECT IF(1<2,'yes','no');

    -> 'yes'

mysql> SELECT IF(STRCMP('test','test1'),'no','yes');

    -> 'no'

IFNULL(expr1,expr2)
If expr1 is not NULL, IFNULL() returns expr1; otherwise it returns expr2.

mysql> SELECT IFNULL(NULL,10);

    -> 10

查看mysql 引擎
mysql> SHOW ENGINES;
mysql> SELECT * FROM INFORMATION_SCHEMA.ENGINES;

停止自动提交
SET autocommit=0;

LOCK INSTANCE FOR BACKUP
UNLOCK INSTANCE
LOCK INSTANCE FOR BACKUP 获取一个实例级备份锁,该锁允许在联机备份期间使用DML,同时防止可能导致不一致快照的操作

Index
索引分为聚簇索引和二级索引
为什么聚簇索引查询快,是因为索引搜索直接到存有数据的叶子结点。

二级索引是如何关联聚簇索引?
二级索引上的每个记录都包含了行数据的主键以及二级索引指定的列。二级索引用此主键去聚簇索引上搜索数据。当然,因为二级索引存储primary Key, 所以key越短越好。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
MySQL 基础---数据操作
数据的操作(CRUD): 插入数据记录(CREATE) 查询数据记录(READ) 更新数据记录(UPDATE) 删除数据记录(DELETE) 插入数据记录("INSERT INTO") 插入数据: 插入完整数据记录、插入数据记录一部分、插入多条数据记录、插入查询结果。
477 0
MySQL 基础---运算符
运算符 算术运算符 比较运算符 逻辑运算符 位运算符 算术运算符 包括加、减、乘、除、求模运算。 select 6+4 '加法操作', 6-4 '减法操作', 6*4 '乘法操作', 6/2...
805 0
MySQL 基础---触发器(TRIGGER)
触发器: 实现由一些表事件触发的某个操作,是与数据库对象表关联最紧密的数据库对象之一。在数据库系统中,当执行表事件时,则会激活触发器,从而执行其包含的操作。
619 0
MySQL 基础---多表数据查询
多表数据记录查询: 关系数据的各种操作 内连接查询 外连接查询 子查询 关系数据操作 传统的运算: 并(UNION) 笛卡尔积(CARTESIAN PRODUCT) 专门针对数据库操作的运算---连接(JOIN) (1) 并(UNION) “并”就是把具有相同字段数目和字段类型的表合并到一起。
690 0
MySQL分析实例解读
MySQL分析实例是由RDS MySQL 与AnalyticDB for MySQL联合打造,产品级深度融合的OLTP+OLAP解决方案,解决MySQL客户复杂分析查询卡顿问题。一键购买,权限打通,自动数据同步,业务库毫无感知和影响情况下数据自动实时同步到分析库。
2975 0
MySQL 基础---索引
索引: 主要是为了提高从表中检索数据的速度,索引分为B型树索引(BTREE)和哈希索引(HASH)。 InnoDB和MyISAM存储引擎支持BTREE类型索引,MEMORY存储引擎支持HASH类型索引,默认为前者索引 MySQL支持6中索引: 普通索引 唯一索引 全文索引 单列索引 多列索引 空间索引 以下情况适合创建索引: 经常被查询的字段,即在WHERE语句中出现的字段。
717 0
MySQL 基础---表
表中的数据库对象包含列、索引和触发器。 列(Columns): 属性列,在具体创建表时,必须指定列的名字和数据类型。 索引(Indexes): 是指根据指定的数据库表建立起来的顺序,提供了快速访问数据的途径且可监督表的数据,使其索引所指向的列中的数据不可重复。
652 0
MySQL 基础---数据库
MySQL官网下载 要想在命令提示符中使用mysql命令语句,必须将mysql的安装路径下的bin文件夹(D:\java\mysql\bin)配置在环境变量path中 启动与停止服务 启动服务net start mysql 关闭服务net stop ...
641 0
MySQL 基础---事务
事务的实现机制与实际应用: 事务概述 事务控制语句 事务隔离级别 InnoDB锁机制 事务概述 事务特性: 原子性(Atomicity): 事务中所有的操作视为一个原子单元,即对事务所进行的数据修改等操作只能是完全提交或者完全回滚。
632 0
+关注
吟风_骋
先知先觉富贵一生,不知不觉贫穷一生,惰弱者注定残喘一生!
7
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载