云服务器内容精选

  • 多表查询中on条件和where条件的区别 从上面各种连接语法中可见,除自然连接和交叉连接外,其他都需要有on条件(using在查询解析过程中会被转为on条件)来限制两表连接的结果。通常在查询的语句中也都会有where条件限制查询结果。这里说的on连接条件和where过滤条件是指不含可以下推到表上的过滤条件。on和where的区别是: on条件是两表连接的约束条件。 where是对两表连接后产生的结果集再次进行过滤。 简单总结就是:on条件优先于where条件,在两表进行连接时被应用;生成两表连接结果集后,再应用where条件。
  • 连接类型介绍 通过SQL完成各种复杂的查询,多表之间的连接是必不可少的。连接分为:内连接和外连接两大类,每大类中还可进行细分。 内连接:标准内连接(INNER JOIN),交叉连接(CROSS JOIN)和自然连接(NATURAL JOIN)。 外连接:左外连接(LEFT OUTER JOIN),右外连接(RIGHT OUTER JOIN)和全外连接(FULL JOIN)。 为了能更好的说明各种连接之间的区别,下面通过具体示例进行详细的阐述。 创建示例表student和math_score,并插入数据,设置enable_fast_query_shipping为off(默认为on)即查询优化器使用分布式框架;参数explain_perf_mode为pretty(默认值为pretty)指定explain的显示格式。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 CREATE EXTERNAL TABLE student( id INTEGER, name varchar(50) ) STORE AS orc; CREATE EXTERNAL TABLE math_score( id INTEGER, score INTEGER ) STORE AS orc; INSERT INTO student VALUES(1, 'Tom'); INSERT INTO student VALUES(2, 'Lily'); INSERT INTO student VALUES(3, 'Tina'); INSERT INTO student VALUES(4, 'Perry'); INSERT INTO math_score VALUES(1, 80); INSERT INTO math_score VALUES(2, 75); INSERT INTO math_score VALUES(4, 95); INSERT INTO math_score VALUES(6, NULL); SET enable_fast_query_shipping = off; SET explain_perf_mode = pretty;
  • URI GET /mysql/v3/{project_id}/flavors/{database_name} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 租户在某一region下的project ID。 获取方法请参见获取项目ID。 database_name 是 String 数据库引擎名称。 表2 Query参数 参数 是否必选 参数类型 描述 version_name 否 String 数据库版本号,目前仅支持兼容MySQL 8.0。 availability_zone_mode 是 String 规格的可用区模式,现在仅支持"single"、"multi",不区分大小写。 spec_code 否 String 规格编码。
  • 响应示例 状态码: 200 Success. { "flavors" : [ { "type" : "x86", "vcpus" : "1", "ram" : "4", "id" : "3169caaf-6c2f-41d5-aadd-c8fc3d83597e", "spec_code" : "gaussdb.mysql.xlarge.x86.4", "instance_mode" : "Cluster", "version_name" : "8.0", "az_status" : { "cn-north-4a" : "normal", "cn-north-4b" : "normal" } } ]}
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 datastores Array of MysqlEngineVersionInfo objects 数据库版本信息列表 表4 MysqlEngineVersionInfo 参数 参数类型 描述 id String 数据库版本ID,该字段不会有重复。 name String 数据库版本号,只返回两位数的大版本号。 kernel_version String 数据库内核版本号,返回完整的四位版本号。 version String 兼容的开源数据库版本号,返回三位开源版本号。 状态码: 400 表5 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误消息。 状态码: 500 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误消息。