达梦数据库学习笔记

1、基础CRUD操作

1)插入单条数据

insert into 模式名.表名 [(列名 1,,列名 n)] values(1,, 值 n);

2)插入多条数据

insert into dmhr.student values(1001,'Sid'),(1002,'Kat');

3)插入多条数据(需要先创建新表tab)

insert into dmhr.tab select stuName from dmhr.student; 

4)创建新表并从其他数据表中查询数据插入到新表中

create table dmhr.stu1 as select stuNo,stuName from dmhr.student;

5)删除数据

delete from 模式名.表名 [where 条件] 

6)修改数据

update 模式名.表名 set1=1,,列 n=值 n [where 条件] 

7)查询数据`

select 列名 1,,列名 n from 模式名.表名 [where 条件] 

2、数据查询

1)查询基础语法结构

Select1,,列 n from[where 条件] [group by 分组列 1,,
列 n] [having 筛选分组条件] [order by 排序列 1,,列 n]

2)条件查询常用表达式
a) 查询中使用别名
b) 关系运算符:>、<、=、!=、>=、<=
c) 逻辑运算符:and、not、or
d) 范围运算:
i. 关系和逻辑运算符组合
ii. between … and
iii. in (值 1,…,值 n)
e) 模糊查询
i. like
ii. 掌握 % 和 _ 两个特殊符号在 模糊查询中的 作用
f) null 值和非空查询
i. is null
ii. is not null
3)查询分组、多列分组、聚合函数
a) sum() 求和
b) count() 统计梳理
c) max() 求最大值
d) min() 求最小值
e) avg() 求平均值
4)删选分组
a) having 筛选分组条件
5)查询排序
a) order by 分组列名列表
6)分页查询
a) top分页

Select top 每页显示条数 列名列表 fromwhere id not in (   Select top 偏移量条数 id from) 

b) limit分页

Select 列名列表 from[] limit 偏移量,每页显示条数 

c) 伪列分页
i. rowid

Select rowid, 列名列表 fromwhere rowid between 起始编号 and 结束编号

ii. rownum

select t. 列名列表 from ( select rownum num, 列名列表 from 表名 where rownum < maxValue ) t where num > minValue 

3、实战演练

1)查询价格在 50.0 到 100.0 元之间的商品信息

select * from vspace.i_goods where price>=50 and price<=100;

2)查询商品标题中包含”肉”的商品信息

select * from vspace.i_goods where goods_title like '%肉%';

3)查询购买订单数量超过 11 个的用户手机号码

select phone from vspace.i_order where ammount>11;

4)请使用 top,limit 和伪列三种方式实现商品信息的分页查询,要求没有显示 3 条数据,显示 第 5 页的数据

select *from vspace.i_goods limit 1,2,3;

select top 15 *from vspace.i_goods;

select top 3 *from vspace.i_goods where vspace.goods_id not in (
     select top 12 vspace.goods_id from vspace.i_goods
);

select rowid,*from vspace.i_goods where rowid between 13 and 15;

5) 从商品信息列表中查询包含”五花肉”的商品标题信息,并从标题中截取出”五花肉”这个字符串

select *from vspace.i_goods where goods_title like '%五花肉%';
select substring('猪五花肉',2,3);

7)查询最近 10 天的订单信息

select* from vspace.i_order where datediff (DD,order_date,curdate)<=10;

8)查询统计最近一个月的总销售额

select sum(sum_price) from vspace.i_order where datediff (DD,order_date,curdate)<30;

你可能感兴趣的:(数据库)