达梦数据库单表查询——条件查询

        SELECT完整语句格式:

        SELECT [DISTINCT] *|{字段名1, 字段名2, 字段名3,……} FROM 表名(主语句)

        [WHERE 条件表达式1]                                 ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​         ( <--子语句)

         [GROUP BY 字段名 [HAVING 条件表达式2]                     

        [ORDER BY 字段名 [ASC|DESC]] [LIMIT        

         [OFFSET,] 记录数];

注意各个子句的位置和顺序,一旦打乱会出错。

比较条件的使用

条件查询中需要使用运算符进行条件比较:

 例如:

1.在Students表中查找stuName='王明'的学生信息

        select * from Students where stuName='王明';

2.在Bookinfo 表中查询所有Publisher='清华大学出版社'出版的书

        select * from Bookinfo where Publisher='清华大学出版社';

比较条件的组合使用

 例如:

3.查询Bookinfo 表中Publisher不是“清华大学出版社”出版的书。

select * from Bookinfo where not Publisher='清华大学出版社';

4.查询Bookinfo 表中Publisher所有“清华大学出版社”或“电子工业出版社”出版的书

select * from TBL_Bookinfo where Publisher='清华大学出版社' or Publisher='电子工业出版社';

BETWEEN关键字

 一般使用于数值和日期型数据

5.从Bookinfo表中检索1990年(PublishDate)出版的图书信息

select * from TBL_Bookinfo where PublishDate between '1990-01-01' and '1990-12-31';

between...  and... 是包含边界的,超出边界就会报错

IN关键字

 7.从Bookinfo表中检索出索取号(BookID )为'TB11/46', 'TG/71','TG38-62/12'的图书信息。

select * from Bookinfo where BookID in ('TB11/46 ','TG/71','TG38-62/12');

等价于

select * from Bookinfo where BookID=' TB11/46 ' or BookID=' TG/71' or BookID=' TG38-62/12';

### 达梦数据库查询示例教程 #### 1. 基本概念 在关系型数据库中,联查询是指通过多个之间的关联字段来检索数据达梦数据库支持多种类型的联查询方式,包括内连接(INNER JOIN)、左外连接(LEFT OUTER JOIN)、右外连接(RIGHT OUTER JOIN)以及全外连接(FULL OUTER JOIN)。这些连接类型允许用户根据不同需求组合不同格的数据[^1]。 #### 2. 内连接 (INNER JOIN) 当两个或更多个之间存在共同列时,可以使用 `INNER JOIN` 来返回匹配记录的结果集。下面是一个简的例子: 假设有一个订 `orders` 和客户 `customers`,其中 `customer_id` 是两者的公共键,则可以通过如下 SQL 查询获得所有已下客户的姓名及其对应的订编号: ```sql SELECT customers.name, orders.order_number FROM customers INNER JOIN orders ON customers.customer_id = orders.customer_id; ``` 此命令仅显示那些既存在于顾客列又出现在订中的条目。 #### 3. 左外连接 (LEFT OUTER JOIN) 有时即使右边的里找不到对应项也希望保留左边的所有行;这时就可以采用 `LEFT OUTER JOIN`. 它会列出左侧内的全部记录,并附加右侧符合条件的部分——对于没有找到配对的情况则填充NULL值: 继续以上述两张为例,如果我们想要查看所有的客户信息并附带他们所下的订(如果有),那么应该这样写SQL语句: ```sql SELECT customers.name, orders.order_number FROM customers LEFT OUTER JOIN orders ON customers.customer_id = orders.customer_id; ``` 这将展示每一个注册过的消费者的名字连同他们的购买历史(如果没有的话就为空白). #### 4. 右外连接 (RIGHT OUTER JOIN) 和 全外连接(FULL OUTER JOIN) - **右外连接**: 类似于左外连接但是保持的是右边里的所有记录。 - **全外连接**: 将左右两侧都尽可能多地展现出来,无论是否有对方相匹配的内容都会被包含进来. 由于这两种情况相对少见,在这里不再给出具体实例. #### 5. 多重联接 还可以在一个查询里面同时运用多次JOIN操作来进行复杂的关系映射。比如要从三个不同的中提取有用的信息,只需依次指定各个参与方即可实现多层嵌套式的联合搜索: ```sql SELECT a.column_name, b.another_column, c.yet_another_one FROM tableA AS a JOIN tableB AS b ON a.common_field = b.matching_field JOIN tableC AS c ON b.some_other_key = c.related_value; ``` 上述代码片段展示了如何利用别名简化达的同时完成跨三张独立存储元间的数据交互过程.
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值