金仓数据库单表与多表查询
单表与多表查询
单引号与双引号
针对有空格、特殊字符、数字开头的字段别名必须加双引号
针对标量字符串表达式必须用加单引号
连接运算
字符串的拼接运算
字符串拼接经常用于生成SQL脚本
删除exam模式下所有的表,可以通过拼接生成如下批量的SQL
select 'drop table ' || schemaname || '.' || tablename || ';' AS "batch_sql" from sys_tables where schemaname='exam';
算术运算符
数值的算术运算
日期的算术运算
使用条件表达式
输出成绩,成绩大于等于90时输出高,大于等70小于90输出中,其他输出低,使用
case when实现
select sno,cno,score, CASE WHEN score>=90 THEN '高' WHEN score<90 AND score>=70 THEN '中' ELSE '低' END AS score_level FROM exam.score;
where子句
等值查询
select 字段 from 表名 where 字段名> ‘字段值’;
select 字段 from 表名 where 字段名 = ‘字段值’;
.....
字符型字段列表匹配(显示多个值)
查看学员所在地为beijing和chongqing
select sno,sname,city from exam.student where city in('Beijing','Chongqing');
多条件匹配
查找所在城市为Beijing,工作岗位是Database Engineer的学员信息。
select sno,sname,city,job from exam.student where city='Beijing' AND job='Database Engineer';
多表查询
内连接
内连接根据两个连接表的同名列或逻辑相关列的值进行比较,返回与连接条件匹配的行数据。
使用INNER JOIN子句进行内连接
INNER是默认关键字,可以省略
注意:除“select *”外,同名字段出现在查询列表中需要指定表名前缀,否则报错
如:
正确写法:(加上表名,指定是哪个表的字段)
使用WHERE子句代替内连接的INNER JOINON子句
外连接(OUTER关键字可省略)
左外连接LEFF OUTER JOIN
左外连接的结果集包括LEFT OUTER 子句中指定的左表的所有行,而不仅仅是连接列匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中来自右表的所有列均为空值。
使用t01表的id1字段和t02表的id1字段连接,t01表显示全部记录,t02表只显示满足连接条件的记录。
右外连接RIGHT OUTER JOIN
右外连接是左向外连接的反向链接。返回右表的所有行。如果右表的某行在左表中没有匹配行,则在相关联的结果集行中来自左表的所有列均为空值。
使用t01表的id1字段和t02表的id1字段连接,t02表显示全部记录,t01表显示满足连接条件的记录。
全外连接full outer join
全外连接返回左表和右表中的所有行,当一个表中的某行在另一个表中没有匹配时,则在相关联的结果集行中来自另一个表的所有列返回的空值。全外连接显示两表匹配的行和不匹配的行。
连接条件和过滤条件
连接条件决定哪些行参与表连接,通常位于ON子句以下列子中“a.id1=1”属于连接条件。
select * from t01 a LEFT OUTER JOIN t02 b ON a.id1=b.id1 AND a.id1=1;
过滤条件是在表连接后的结果集中对数据进行过滤,通常放在WHERE子句中以下例子中“a.id1=1”属于过滤条件
内连接的连接条件与过滤条件是等价的
交叉连接CROSS JOIN
交叉连接也称为笛卡尔连接,交叉连接返回左右两表基于元组的笛卡尔积,如果使用不当会给数据库系统带来巨大性能压力。
自连接INNER JOIN
通过为表设置别名将一张表虚拟成两张表后进行连接操作,常用于一张表内列之间具有键值依赖的数据检索。
自然连接NATURAL INNER
自然连接是等值连接的一种特殊形式,使用NATURL关键字代替连接条件,通过两张或者多张表中所有具有相同名称的字段进行等值连接。多个同名字段连接时,逻辑运算符为AND。在自然连接中遇到关联表中的同名字段具有不匹配的或不可隐式转换的数据类型时会导致执行出错。
自然连接可以是内连接也可以是外连接
内连接
外连接
金仓数据库单表与多表查询相关推荐
- 人大金仓数据库的单表查询
人大金仓数据库的单表查询 查看表的内容 # 查询数据库的创建语句 \d exam.course # 查询数据表中的数据 select * from exam.course ; # 查询部分列 sele ...
- 金仓数据库KingbaseES表空间(tablespace)知多少
金仓数据库KingbaseES表空间定义 金仓数据库KingbaseES中的表空间允许在文件系统里定义那些代表数据库对象的文件存放位置,比如表和索引等.一旦表空间被创建,那么就可以在创建数据库对象时通 ...
- 人大金仓数据库-表的定义
表的定义 使用子查询来创建表 通过复制student表创建student_m表,只复制原表中的部分数据到新表 通过复制course表创建course01表,复制原表中的全部数据到新表 使用LIKE语法 ...
- 国产化人大金仓数据库转库工具:oracle12c数据库转kingbase8.6人大金仓数据库实例演示
oracle12c数据库转人大金仓数据库实例演示 第一章:数据准备 ① 人大金仓建库建用户 ② 人大金仓授权表空间 ③ 人大金仓创建 schema 表 第二章:转库演示 ① 转库工具准备 ② 创建源库 ...
- 人大金仓数据库sql语句_人大金仓数据库总结(SQL和JDBC)
人大金仓作为一款国产数据库,使用的人数和相关资料都比较少. 最近使用人大金仓数据库,做了个简单的SQL和java jdbc的测试,希望能够供大家参考. 1.SQL语句 创建表: CREATE TABL ...
- nacos 适配达梦、人大金仓数据库
文章目录 一.准备工作 1. 阅读官网文档 2. 下载源码,按官网更详细 3. 下载达梦.人大金仓数据库驱动 二.修改nacos源码 2.1. 引入驱动依赖 2.2. 引用数据库 2.3. 修改配置 ...
- 人大金仓数据库的使用心得
人大金仓作为一款国产数据库,为国争光确实做到了,但是国内使用的人数还是比较少的,能查到的相关资料比较少. 在此,我将最近使用人大金仓的一些心得总结一下,希望能够帮助到一些人: 1.人大金仓数据库的跨库 ...
- 数据库专题 数据库适配问题--人大金仓数据库适配问题总结(kingbase8)
人大金仓数据库链接配置 这里以springBoot配置文件演示: spring.datasource.driver-class-name=com.kingbase8.Driver spring.dat ...
- 金仓数据库字段_mysql迁移到金仓数据库(V8R3)
mysql迁移到金仓数据库(V8R3)方案 本次迁移为停机停服迁移,无需保障服务不中断,不存在在线数据实时迁移问题.为了实现mysql数据库迁移到金仓数据库,我们需要从以下几方面考虑解决方案 金仓 ...
最新文章
- 3des java 库_java 3DES 加密
- powerDesign设计随笔
- automation服务器不能创建对象是什么意思_从运营商角度来考虑为什么NAT不能搭建服务器?...
- Oauth 2.0概述
- 安装sql server 2000
- 纯css实现DIV以及图片水平垂直居中兼容多种浏览器(实现过程)
- C中指针和数组引发的探索二
- ajax兼容写法,Ajax的兼容性问题
- 力扣-543. 二叉树的直径
- Android 自定义View加属性动画实现动画时钟
- python爬虫验证码的处理(云打码)_python爬虫验证码的处理(云打码)
- Excel单元格引用方式
- 服务降级,限流,削峰
- APS系统的实施步骤,外行人都能看懂
- 人脸对齐之SDM论文解析
- python 比较运算符列表_python基础-列表,文件,运算符
- PB级企业电商离线数仓项目实战
- Map集合中的Map.Entry的定义:
- c51语言c100错误,KEIL C51错误的解决办法
- Python 用ARIMA、GARCH模型预测分析股票市场收益率时间序列
热门文章
- 统计学习模型——决策树
- [倚天屠龙记] vim 查找与替换(简单查找)
- 【PHP框架 | Laravel8 系列5】 - 视图与CSRF保护
- 无线模块在分布式数据采集中的应用
- dbd-mysql测试_DBD::mysql的cpan安装测试失败,找不到符号。OSX莫哈韦
- 弧齿锥齿轮零件图_弧齿锥齿轮齿轮基础知识
- 计算机科学与技术导论ppt,计算机科学与技术专业导论.ppt
- html获取text输入框中的值
- 创业知识(四):打造超强执行力团队(转载)
- 对于递归算法和二分查找的理解