第五章:OB Server的SQL引擎

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 第五章:OB Server的SQL引擎

SQL引擎支持MySQL和Oracle兼容模式

同一个集群,同时支持MySQL和Oracle

租户创建时需要配置为MySQL兼容模式或Oracle兼容模式

DBA由原来维护“多个数据库产品”变为维护一个“统一的数据库产品”,DBA可以结合应用需求,创建不同兼容模式的租户

MySQL兼容模式:

MySQL5.6语法全兼容

兼容MySQL通信协议,MySQL应用可直接迁移至OceanBase

Oracle兼容模式:

兼容Oracle 11g语法

支持90%的Oracle数据类型和内置函数;还在持续完善中

支持分布式执行的存储过程(PL/SQL)

SQL引擎-Oracle兼容性

基础特性

数据类型:NUMBER/CHAR/LOB 10+

内建函数:MATH/CAST/FORMAT 40+

DDL&DML

ROWNUM/CTAS/MERGE INTO

窗口函数:MIN/MAX/RANK 20+

LOAD/DUPLICATED Table

Schema

Sequence/Synonym

CTE/Foreign Key

GBK

静态视图:TABLES/INDEXES/OBJECTS 10+

动态视图:V$SESSTAT/V$SESSION_WAIT 20+

PL

PL/函数/包基础语法

匿名块/自定义类型/游标/ARRAY/动态SQL

常用系统包

功能特性

回收站

Hybrid Columnar Compression

Outline

Hierachical Query

Data Guard

基本操作:创建、查看和删除数据库

使用CREATE DATABASE语句创建数据库

CREATE DATABASE[IF NOT EXISIS]dbname
[create_specification_list]

使用SHOW DATABASES语句查看数据库

SHOW DATABASES;

使用DROP DATABASE语句删除数据库

DROP DATABASE my_db;

基本操作:创建、查看、删除表

使用CREATE TABLE语句在数据库中创建新表

CREATE TABLE [IF NOT EXISTS]tblname
[table_options]
[partition_options];

使用SHOW CREATE TABLE语句查看建表语句

SHOW CREATE TABLE test;

使用DROP TABLE语句删除数据库

DROP TABLE [IF EXISTS]table_list;
table_list:
tblname[,tblname]

使用SHOWTABLES语句查看数据库中的所有表

SHOW TABLES FROM my_db;

基本操作:创建、查看、删除索引

索引是创建在表上的,对数据库表中一列或多列的值进行排序的一种结构。其作用主要在于提高查询的速度,降低数据库系统的性能开销。

创建索引

CREATE[UNIQUE]INDEX indexname
ON tblname

查看索引

SHOW INDEX FROM tblname;

删除索引

DROP INDEX indexname
ON tblname;

基本操作:插入数据

插入数据最常使用的语法如下:

INSERT INTO table_name VALUES;

基本操作:查询数据

使用SELECT语句检索表内数据

SELECT
[ALL | DISTINCT]
selectexpr [[AS] othername] [,selectexpr ...]
[FROM table_references]
[WHERE where_conditions]
[GROUP BY group_by_list]
[HAVING search_confitions]
[ORDER BY order_list]
[LIMIT {[offset,] rowcount | rowcount OFFSET
offset}]
[FOR UPDATE]

基本操作:更新数据

修改表中的数据,最常使用的语法如下

UPDATE tblname
SET colname=colvalues
[, colname=colvalues...]
[WHERE where_condition]

基本操作:事务介绍


数据库事务(DatabaseTransaction)是指作为单个逻辑工作单元执行的一系列操作。事务处理可以用来维 护数据库的完整性,保证成批的SQL操作全部执行或全部不执行。


通过BEGIN TRANSACTION,或BEGIN和BEGIN WORK(被作为STARTTRANSACTION的别名受到 支持)语句显示开始,以COMMIT(提交)或ROLLBACK(回滚)语句显示结束。

事务语法如下:

START TRANSACTION|[BEGIN
[WORK]]
COMMIT [WORK];
ROLLBACK [WORK];

基本操作:提交事务

在提交事务之前:

修改只对当前用户可见,对其他用户来说是不可见的

修改不是最终结果,可以通过ROLLBACK语句撤销修改

在提交事务之后:

修改对其他用户都是可见的

修改是最终结果,不能通过ROLLBACK语句回滚修改

基本操作:回滚事务

回滚事务:回滚事务操作,表示事务已经结束,回滚所有事务操作,并释放事务锁。

查看SQL的执行计划-EXPLAIN命令

• 语法:explain [extended]<sql statement>\G

• 使用非常方便,无需创建单独系统表,可直接获取语句的执行计划

• extended选项会产生更多详细内容,排查执行计划问题时建议指定

• 命令的输出格式和Oracle数据库的EXPLAIN工具比较接近,可读性好

• 只是获取执行计划,并不真正执行

使用案例:多分区并行查询

explain extended select * from employees \G

使用案例:分区表主键查询

explain extended select * from employees where emp_id=1002\G
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
|
4月前
|
SQL 存储 监控
SQL Server的并行实施如何优化?
【7月更文挑战第23天】SQL Server的并行实施如何优化?
109 13
|
4月前
|
SQL
解锁 SQL Server 2022的时间序列数据功能
【7月更文挑战第14天】要解锁SQL Server 2022的时间序列数据功能,可使用`generate_series`函数生成整数序列,例如:`SELECT value FROM generate_series(1, 10)。此外,`date_bucket`函数能按指定间隔(如周)对日期时间值分组,这些工具结合窗口函数和其他时间日期函数,能高效处理和分析时间序列数据。更多信息请参考官方文档和技术资料。
|
4月前
|
SQL 存储 网络安全
关系数据库SQLserver 安装 SQL Server
【7月更文挑战第26天】
60 6
|
4月前
|
存储 SQL C++
对比 SQL Server中的VARCHAR(max) 与VARCHAR(n) 数据类型
【7月更文挑战7天】SQL Server 中的 VARCHAR(max) vs VARCHAR(n): - VARCHAR(n) 存储最多 n 个字符(1-8000),适合短文本。 - VARCHAR(max) 可存储约 21 亿个字符,适合大量文本。 - VARCHAR(n) 在处理小数据时性能更好,空间固定。 - VARCHAR(max) 对于大文本更合适,但可能影响性能。 - 选择取决于数据长度预期和业务需求。
358 1
|
3月前
|
SQL 安全 Java
驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client
驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client
463 0
|
4月前
|
SQL Oracle 关系型数据库
MySQL、SQL Server和Oracle数据库安装部署教程
数据库的安装部署教程因不同的数据库管理系统(DBMS)而异,以下将以MySQL、SQL Server和Oracle为例,分别概述其安装部署的基本步骤。请注意,由于软件版本和操作系统的不同,具体步骤可能会有所变化。
297 3
|
4月前
|
SQL 存储 安全
数据库数据恢复—SQL Server数据库出现逻辑错误的数据恢复案例
SQL Server数据库数据恢复环境: 某品牌服务器存储中有两组raid5磁盘阵列。操作系统层面跑着SQL Server数据库,SQL Server数据库存放在D盘分区中。 SQL Server数据库故障: 存放SQL Server数据库的D盘分区容量不足,管理员在E盘中生成了一个.ndf的文件并且将数据库路径指向E盘继续使用。数据库继续运行一段时间后出现故障并报错,连接失效,SqlServer数据库无法附加查询。管理员多次尝试恢复数据库数据但是没有成功。
|
4月前
|
SQL 数据处理 Apache
Apache Flink SQL:实时计算的核心引擎
Apache Flink SQL 的一些核心功能,并探讨了其在实时计算领域的应用。随着 Flink 社区的不断发展和完善,Flink SQL 将变得越来越强大,为实时数据分析带来更多的可能性。
|
4月前
|
SQL 监控 数据库
SQL Server 查询超时问题排查
【7月更文挑战第8天】排查 SQL Server 查询超时涉及五个主要方面:检查复杂查询、评估服务器性能、审视配置参数、更新统计信息和分析执行计划。关注点包括查询的结构(如连接、子查询和索引),服务器资源(CPU、内存、网络延迟),连接和内存设置,以及统计信息的时效性。通过这些步骤可定位并解决性能瓶颈。
114 0