Oracle数据库基础操作

1. 建表

Create TABLE productionfo(
    ProductId varchar2(10),
    ProductName varchar2(20),
    ProductPrice number(8,2),
    Quantity number(10),
    Category varchar2(10),
    Desperation varchar2(1000),
    Origin varchar2(10));

2.插入数据

insert 
into productionfo
values ('0240030001','海尔XQB50-918A',1100,29,'0100030002','','中国');

说明如下:
当有多行输入时
可以用:

insert all
into productionfo values ('0240030002','三星WF-R1065S/XSC',360012'0100030002','','中国')
into productionfo values ('0240030003','三星XQB55-T86A/XSC',2500111,'0100030002','','中国')
select 1 from productionfo1;

每次都有into 表名 values ;.最后加上一句 SELECT 1 FROM DUAL;
注:dual表是一个虚拟表,当from后确切表名时使用
详见本链接

3.删除
(1)某一值

delete from productionfo where productname='测试';

(2)全部记录(但字段不删除)

delete from productionfo;

(3)删除字段

alter table tablename drop (column);

(4)删除表(所有内容全部删除)

drop table tablename(productionfo);

4.查询(部分查询,以后用到会更新)

  1. 非空查询常用关键字 is
select * from productionfo where(quantity is null);
  1. 使用别名查询:
select  productid 产品编号,productname 产品名称,productprice 产品价格 from productionfo;
  1. 使用表达式操作查询字段
    查询并按照某种规则输出用“||”连接;要对其进行运算就用as操作。
select productid,productname,productprice ||'*' ||1.25 || '='||productprice*1.25 as new_productprice  from productionfo;

结果如下:
在这里插入图片描述
这个必须要给出照片,不然说不清楚。
4. 去重查询:
关键字是distinct

select distinct category 产品类型 from productionfo;
  1. 升降序查询:
    (1.)默认查询关键字 order by
select productname,quantity from productionfo order by quantity ;(默认升序)

(2.)降序查询关键字 order by,desc

select productname,quantity from productionfo order by quantity desc;(降序)

**注:NULL类型一般排在首位(升序)。但在降序时NULL排在末尾。 **
(3.)使用别名作为排序字段:

SELECT  PRODUCTNAME 产品名称,
        QUANTITY 产品数量
FROM    productionfo
ORDER BY 产品数量 nulls last;(重点)

注:最后是 nulls 而不是 null ;
**

注: last表示null出现在最末端,还有一个关键字是first表示null出现在最顶端。 使用多个字段排序: 首先按照第一个字段排序,接着按照第二个字段排序,以此类推: select productname,category,quantity from productionfo order by category asc , 3 desc; 表示先按照category排序,接着再按照第三个字段排序。 注:利用多个字段进行排序,可以单独为每个字段指定排序方式,而且可以用别名、表达式和位置排序混用。
6.group by用法:
1.单个字段分组查询:select category 产品类型编码 ,avg(productprice) 平均价格,origin 产地 from productionfo group by category;
2.断字段分组查询:select category 产品类型编码 ,avg(productprice) 平均价格,origin 产地 from productionfo group by category,origin;
3.与where子句合用:select category,avg(productprice)平均价格,origin from productionfo where productprice>1000 group by category,origin;
注:
(1)当查询中存在group by字句时,select 列表中只能存在分组函数,或出现在group by子句中的字段。
(2)group by 子句不允许出现在where条件中,但允许出现在其后,也可以与where条件并列使用。
having子句:
having 子句通常和group by 子句一起使用,限制搜索条件。它和where子句不一样,having子句与组有关,而不与单个的值有关。在group by 子句中,它会作用于group by 创建的组。
注:having与where的区别,having对group by子句负责,而where对from负责。
子查询:
1.any:表示满足子查询结果的任何一个。和<,<= 搭配,表示小于等于列表中的最大值;而和》,>、>=配合时表示大于等于列表中的最小值
2.some:可以认为和any含义相同。只不过any多用于非“=”的环境中。
3.all:表示满足子查询结果的所有结果。和<,<=搭配,表示小于等于列表中的最小值;而和>,>=配合时表示大于等于列表中的最大值。
注:关于笛卡尔积:
笛卡尔积,就是一个表中的每一行与另一个表中的每一行连接在一起,而形成的新表,也就是查询结果。查询结果的记录数就是这两个记录数的乘积。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值