Oracle数据库(二)——基础的SQL语法
2018-02-22 23:19
435 查看
DML&DQL
insert插入数据
insert into table_name(column_name1,column_name2,…) values(data1,data2…);
insert into table_name1(column_name1,column_name2,…) select column_name1,column_name2… from table_name2;
直接通过源数据表在添加数据的同时创建表也是可以实现的。
create table table_name AS select column_name1,column_name2,…FROM source_table;
update 修改数据
update table_name set column_name=data1,column_name1=data2,…[where condition];
delete 删除数据
delete from table_name [where condition] 删除的数据不是字段
select 查询数据
select column_name1,column_name2,…from table_name where[condition];
其他语句:
TRUNCATE 删除全部数据,比delete快,TRUNCATE TABLE table_name;
MERGE 修改表中数据,可以对数据表同时进行增加和修改的操作。
下面使用MERGE语句完成对LOGIN表的操作
首先查询login和managerinfo表中的全部数据,然后使用on后面的条件编号是否相同,当相同时把login表中的loginname列改写成managerinfo表中的loginname,当不相同时,在login表中增加一条在managerinfo中存在的数据。
利用select检索数据
select基本语法
使用别名:
select productid 产品编号, productname AS 产品名称, productprice as 产品价格 from productinfo;
给字段定义别名可以用AS ,如果不用AS而是在查询的列名后加上空格然后输入别名效果相同
使用表达式查询
去除检索数据中的重复记录
select distinct(category) 产品类型 from productinfo;distinct 后面如果是多个列名,那么distinct把这些列名看出一个整体,来去除重复记录。
使用排序的语法
使用where子句设置检索条件
where 条件子句中可以使用的操作符主要有关系操作符,比较操作符和逻辑操作符。
1.关系操作符包括:<,<=,>,>=,=,!=,<> 不为和!=一样.
2.比较操作符包括:is NULL ;like 模糊比较字符串值 ;between…and… 验证值是否在范围内;in 验证操作数在设定的一系列值中
3.逻辑操作符包括: and 两个条件都必须得到满足;or 只要满足两个条件中的其中一个;not 与某个逻辑值取反
模糊查询数据,like 加上两个通配符:_ 可以替代字符 %可以替代多个字符
查询条件限制在某个列表范围之内:IN(list)
group by 和having子句
group by 用于归纳汇总相关数据,它不属于where子句,
having子句通常和group by子句一起使用,限用搜索条件,它和where子句不一样,having子句与组有关,而不是单个的值有关。在group by 子句中,它会作用与group by创建的组
insert插入数据
insert into table_name(column_name1,column_name2,…) values(data1,data2…);
insert into table_name1(column_name1,column_name2,…) select column_name1,column_name2… from table_name2;
直接通过源数据表在添加数据的同时创建表也是可以实现的。
create table table_name AS select column_name1,column_name2,…FROM source_table;
update 修改数据
update table_name set column_name=data1,column_name1=data2,…[where condition];
delete 删除数据
delete from table_name [where condition] 删除的数据不是字段
select 查询数据
select column_name1,column_name2,…from table_name where[condition];
其他语句:
TRUNCATE 删除全部数据,比delete快,TRUNCATE TABLE table_name;
MERGE 修改表中数据,可以对数据表同时进行增加和修改的操作。
MERGE [INTO] table_name1 USING table_name2 ON ( condition ) WHEN MATCHED THEN merge_update_clause WHEN NOT MATCHED THEN merge_insert_clause; --table_name1:要修改或添加的表 --table_name2:参照的更新的表 --condition:两表之间的关系,或其他的一些条件 --merge_update_clause:如果和参照表2中的雕件匹配,执行更新操作的SQL语句 --merge_update_clause:如果条件不匹配,就执行增加操作的SQL的语句 --可以删除一个,但不能都删除
下面使用MERGE语句完成对LOGIN表的操作
首先查询login和managerinfo表中的全部数据,然后使用on后面的条件编号是否相同,当相同时把login表中的loginname列改写成managerinfo表中的loginname,当不相同时,在login表中增加一条在managerinfo中存在的数据。
merge into login using managerinfo on (login.login_id=managerinfo.managerid) when matched then update set login.loginname=managerinfo.loginname when not matched then insert values(managerinfo.loginname,managerinfo.password,managerinfo.managerid);
利用select检索数据
select基本语法
select [DISTINCT|ALL] --描述列表字段中的数据是否去除重复记录 select_list --需要查询的字段列表,也可以说是占位符。可以是一个也可以是多个字段 FROM table_list [where_clause] --查询条件 [group_by_clause] --group by 子句部分 [HAVING condition] --HAVING子句部分 [order_by_clause] --排序 --其中select_list的具体语法 { * | {[ schema. ] { table | view } .* | expr [ [AS] c_alias ] } --schema:模式名称 table|view 表或视图 expr 表达式 c_alias:别名
使用别名:
select productid 产品编号, productname AS 产品名称, productprice as 产品价格 from productinfo;
给字段定义别名可以用AS ,如果不用AS而是在查询的列名后加上空格然后输入别名效果相同
使用表达式查询
SELECT productid,productname,productprice || '*' || 1.25 || '=' || productprice*1.25 AS new_productprice from productinfo; --* 代表乘号,"||"是连续操作符,用来连接两个字符串 --使用函数 subStr截取字符的函数 select productid 产品编号, subStr(productid,1,6) as 截取后的编号, productname AS 产品名称, productprice AS 产品价格 from productinfo;
去除检索数据中的重复记录
select distinct(category) 产品类型 from productinfo;distinct 后面如果是多个列名,那么distinct把这些列名看出一个整体,来去除重复记录。
使用排序的语法
order by {expr | position | c_alias} --表达式|列表中列的位置|别名 [ASC | DESC] --升|降 不写默认升序 [NULLS FIRST | NULLS LAST] --对空字段的处理方式 [,{expr | postion | c_alias} [ASC | DESC] [NULLS FIRST | NULLS LAST] --指定空字段的位置,默认NULL是最大值 ]... --使用字段位置作为排序字段 SELECT productname, productprice,quantity from productinfo order by 3 desc;
使用where子句设置检索条件
where 条件子句中可以使用的操作符主要有关系操作符,比较操作符和逻辑操作符。
1.关系操作符包括:<,<=,>,>=,=,!=,<> 不为和!=一样.
2.比较操作符包括:is NULL ;like 模糊比较字符串值 ;between…and… 验证值是否在范围内;in 验证操作数在设定的一系列值中
3.逻辑操作符包括: and 两个条件都必须得到满足;or 只要满足两个条件中的其中一个;not 与某个逻辑值取反
模糊查询数据,like 加上两个通配符:_ 可以替代字符 %可以替代多个字符
查询条件限制在某个列表范围之内:IN(list)
group by 和having子句
group by 用于归纳汇总相关数据,它不属于where子句,
group by { expr -- 通常表示数据库列名 | { rollup | cube } ({expr [, expr ]...}) --group by子句的扩展,可以返回小计和总计记录 }
having子句通常和group by子句一起使用,限用搜索条件,它和where子句不一样,having子句与组有关,而不是单个的值有关。在group by 子句中,它会作用与group by创建的组
select category avg(productprice) 平均价格 from productinfo group by category having avg (productprice) > 2000;
相关文章推荐
- 基于Oracle数据库操作的SQL基础语法
- Hive常用的基础sql语法(DML)
- Oracle数据库 —— 基础理论及SQL之select语句(1)
- SQL基础语法
- T-SQL语法 基础巩固
- sql 2005基础语法总结
- SQL的详细语法介绍——对于学习数据库最基础知识[转]
- PL/SQL之一 基础语法
- Oracle数据库 中的基础的一些语法结构
- java数据库编程--SQL语法基础
- SQL语法总结——基础篇
- Oracle PL/SQL基础语法 ——Oracle Database 11g R2
- Oracle数据库SQL重要语法总结
- Oracle数据库之PL/SQL程序设计基础
- SQLiite基础语法示例及说明
- SQL语法基础
- Oracle数据库中sql基础
- PL/SQL developer基础语法学习(三)之游标
- oracle数据库----笔记1---PL/SQL基础1
- SQL的详细语法介绍——对于学习数据库最基础知识一