orcal数据库
orcal必背的知识点
/*
多表查询的思路:
1.分析题目涉及哪些表
2.如果数据来自多张表,就要使用多表查询:找到表与表之间相同的字段用 = 连接(并放到where字句后面);
3.如果需要对单条记录做过滤,就把过滤条件追加到where字句后面,用and连接
4.如果需要对多组数据做统计,就要使用group by
5.如果需要对分组之后的数据做过滤,就要使用having
6.如果需要对数据进行排序,就要用到order by
*/
---- delete truncate drop的区别
delete from 表名
where 过滤条件;(可以撤销)(删除单行或多行,不加where条件删除表的所数据)
truncate table 表名(不能撤销)(删除表里的所有数据)
drop table 表名(删除整个表,不能撤销)
模糊查询:
---模糊查询关键字:like
匹配符:
%:表示匹配任意长度的字符
_:下划线,表示匹配一个长度的任意字符
*/
/*
右连接:
select 字段
from 表1 表1别名,表2 表2别名
where 表1别名.字段(+) = 表2别名.字段
左连接:select 字段 from 表1 表1别名,表2 表2别名 where 表1别名.字段 = 表2别名.字段(+)
*/
去重:
/* 去重:distinct 字段 */
增,删,改,查的语法:
/*添加数据
insert into 表(字段1,字段2...字段n)
values(值1,值2,...值n)
commit;永久保存在数据库
rollback;撤销输入的数据
*/
/*---删除数据库表中的数据
delete from 表名
where 过滤条件;(可以撤销)
truncate table 表名(不能撤销)
drop table 表名(删除整个表,不能撤销)
*/
/*修改数据
update 表名
set 列1 = 值1,列2 = 值2...列N = 值N
[where过滤条件];
*/
/*查询数据
select 字段/表达式
from 表
where 过滤条件
group by 字段
having 分组条件
order by 字段/表达式asc/desc;
*/
orcal数据库知识点
--创建表格--
/*
create table 表名(
字段1 数据类型,
字段2 数据类型,
字段3 数据类型,
....
字段n 数据类型
); */
/* 数据类型
唯一约束(unique)
非空约束(not null)
主键(primary key)
检查约束(check)
外键(references)
默认值(default)
*/
--------修改表:增加列 --------
/*
alter table 表名add(增加)(
字段名1 数据类型,字段名2 数据类型...字段名n 数据类型
);
alter table 表名modify(修改)(
字段名1 数据类型,字段名2 数据类型...字段名n 数据类型
);
alter table 表名 drop(删除) column字段名;
*/
/* 去重:distinct 字段*/
/*----精确查询 模糊查询
---模糊查询关键字:like
匹配符:
%:表示匹配任意长度的字符
_:下划线,表示匹配一个长度的任意字符
*/
-----查询空值 is null非空is not null
---排序 order by asc(升序)/desc(降序)
/*添加数据
insert into 表(字段1,字段2...字段n)
values(值1,值2,...值n)
commit;永久保存在数据库
rollback;撤销输入的数据
*/
---插入指定的时间 to_date('字符串','格式')
to_date('1997-11-25','yyyy-mm-dd')
------修改数据库的数据
/*修改数据
update 表名
set 字段 = 修改后的值
where 过滤条件;
*/
/*---删除数据库表中的数据
1.delete from 表名
where 过滤条件;(可以撤销)
delete from 表名(不加wehere条件,删除表所有数据)
2.truncate table 表名(不能撤销)
3.drop table 表名(删除整个表,不能撤销)
*/
/*
---count(*)统计整个表的所有行数
---count(字段)统计整个表的非空行数
---avg(字段)--统计平均数据
---min(字段)--统计最小值
---max(字段)--统计最大值
---sum(字段)--统计总和
*/
---group by 分组查询
/*
select 字段/表达式
from 表
where 过滤条件
group by 字段
having 分组条件;
*/
---多表查询
/*
思路:
1.分析题目涉及哪些表
2.如果数据来自多张表,就要使用多表查询:找到表与表之间相同的字段用 = 连接(并放到where字句后面);
3.如果需要对单条记录做过滤,就把过滤条件追加到where字句后面,用and连接
4.如果需要对多组数据做统计,就要使用group by
5.如果需要对分组之后的数据做过滤,就要使用having
6.如果需要对数据进行排序,就要用到order by
*/
---外连接:左连接/右连接
/*
右连接:
select 字段
from 表1 表1别名,表2 表2别名
where 表1别名.字段(+) = 表2别名.字段
左连接:select 字段 from 表1 表1别名,表2 表2别名 where 表1别名.字段 = 表2别名.字段(+) where A.a = B.b(+)
*/
----子查询
/*
select 字段
from 表
where 字段= (select 字段 from 表 where 条件)
*/
----子查询,必须要用()括起来。
多行值子查询
多行子查询,是指子查询会返回多个值,此时,需要用到多值比较运算符:[not]in
in运算符表示属于的关系,即是否在所选数据的集合之中。"not in"表示不属于集合或不是集合的成员。