第五章:OB Server的SQL引擎

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS PostgreSQL,高可用系列 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
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
5天前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
|
6天前
|
关系型数据库 分布式数据库 数据库
阿里云数据库收费价格:MySQL、PostgreSQL、SQL Server和MariaDB引擎费用整理
阿里云数据库提供多种类型,包括关系型与NoSQL,主流如PolarDB、RDS MySQL/PostgreSQL、Redis等。价格低至21元/月起,支持按需付费与优惠套餐,适用于各类应用场景。
|
11天前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎,提供高性价比、稳定安全的云数据库服务,适用于多种行业与业务场景。
|
9月前
|
SQL 存储 缓存
日志服务 SQL 引擎全新升级
SQL 作为 SLS 基础功能,每天承载了用户大量日志数据的分析请求,既有小数据量的快速查询(如告警、即席查询等);也有上万亿数据规模的报表级分析。SLS 作为 Serverless 服务,除了要满足不同用户的各类需求,还要兼顾性能、隔离性、稳定性等要求。过去一年多的时间,SLS SQL 团队做了大量的工作,对 SQL 引擎进行了全新升级,SQL 的执行性能、隔离性等方面都有了大幅的提升。
377 99
|
7月前
|
SQL 关系型数据库 分布式数据库
利用 PolarDB PG 版向量化引擎,加速复杂 SQL 查询!完成任务领发财新年抱枕!
利用 PolarDB PG 版向量化引擎,加速复杂 SQL 查询!完成任务领发财新年抱枕!
197 14
|
6月前
|
SQL 存储 自然语言处理
YashanDB SQL 引擎
YashanDB SQL 引擎
|
8月前
|
SQL 分布式计算 Java
Spark SQL向量化执行引擎框架Gluten-Velox在AArch64使能和优化
本文摘自 Arm China的工程师顾煜祺关于“在 Arm 平台上使用 Native 算子库加速 Spark”的分享,主要内容包括以下四个部分: 1.技术背景 2.算子库构成 3.算子操作优化 4.未来工作
947 0
|
关系型数据库 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)")
|
SQL 存储 监控
SQL Server的并行实施如何优化?
【7月更文挑战第23天】SQL Server的并行实施如何优化?
433 13