数据持久化 ——》电脑重新启动,数据会保存 ——》磁盘文集《——数据库系统管理的文件
SQL语言 数据 增删改查
SQL语句分类
– DQL语句 (数据查询语言)
Select
– DML语句 (数据操作语言)
Insert / Update / Delete / Merge
– DDL语句 (数据定义语言)
Create / Alter / Drop / Truncate
– DCL语句 (数据控制语言)
Grant / Revoke
– TCL语句事务控制语句
Commit / Rollback / Savepoint
基本查询语句语法 SELECT:
SELECT * | {[DISTINCT] 列名 | 表达式 [别名] [,...]} FROM 表名;
----- select * form "where" 从where 查询所有的(*)
--可以在select 子句中 创建别名 列名 别名 或者 列名 as 别名
select salary*12 ass , salary*13 as asd , first_name||last_name as fn
from employees;
--可以在select语句中,使用运算符进行 + - * \ ||(字符串连接)
主要数据类型
VARCHAR2 (size) 可变长度字符数据,最小字符数是 1;最大字符数是 4000
NUMBER(p,s) 数值型:总长度为p,小数位最大为s位 ,整数位最大为p-s位,p的
范围从1到38,s的范围从-84到127
DATE 日期和时间类型
select *
from employees
where hire_date > to_date('1992/9/30','yyyy/mm/dd');
to_date 方法名
where employee_id = 100;
select * from employees where
查询 * 标 行
where 列名 跟 运算符 值
CRM 对象 关系 映射
数据库 java
表 类
字段 属性
一个记录 一个对象
表 表
1 n(有一列存放id)
n n(新建一个列,存放相同的列)
1 1
类 类
1 n (将多方的属性改为1方的数据类型)
SQL语句查询什么内容,java代码中只能写这些内容
创建一个数据类,把数据库中对应的表的所有字段,都设置成一个属性,每一行对应一个对象
将对象放在list集合里面
查询 工作室是
and 两个表达式都满足 相当于&
or 两个表达式满足一个 想当月“”
between 1 and 2 表示在1和2 之间
not between and 表示取反 不在1和2 之间
in 在一个集合中 select * from employees where department_id in(10,30,50);
not in 不在集合中 select * from employees where department_id not in(10,30,50);
like 字符串匹配查询 % 任意长度 _任意的一个字符
escape 自己定义一个转意字符 当做 转意字符用 escape '\' \就是说转意字符
is null 判断空值
is not null 不为空
ORDER BY 升序
ORDER BY .... desc; 降序
? 关于表别名需要注意以下几点:
– 表别名长度不超过30个字符;
– 表别名定义在FROM子句中;
– 如果已经定义了表别名,那么只能使用表别名而不能使用
原表名;
– 表别名的有效范围只是当前语句。
? SQL语句的书写顺序是:
– SELECT FROM WHERE ORDER BY
? 而实际的执行顺序是:
– FROM WHERE SELECT ORDER BY
外连接:为了查找到所有记录,包括没有匹配的记录,需要用外连接语句来实现。
在where连接条件,如果关联列有空值(null),在另一列名后添加(+) 叫做外连接
右外连接:以右表为基准,右表中的每个记录都必须显示,即使左表
中没有与之相匹配的记录。
左外连接:以左表为基准,左表中的每个记录都必须显示,即使右表
没有与之相匹配的记录。
全外连接
全外连接 (FULL OUTER JOIN)主要功能是返回两表连接中等
值连接结果,及两个表中所有等值连接失败的记录。
FULL OUTER JOIN
UNION (联合)运算
– UNION 运算返回所有由任一查询选择的行。用 UNION 运算从
多表返回所有行,但除去任何重复的行。
不等值连接
--group by 子句 按照给定列进行分组 (该列数据相同为一组)
-- select 列名必须是分组列和分组函数
-- 分组函数 count 返回每组记录的条数
min max sum avg 实参为一个 数字列 或 min max 实参为一个日期列
--having 子句 完成组函数筛选判断
--
一个完整的SQL 语句
select from where group by having order by
总结SELECT语句执行过程:
– 通过FROM子句中找到需要查询的表;
– 通过WHERE子句进行非分组函数筛选判断;
– 通过GROUP BY子句完成分组操作;
– 通过HAVING子句完成组函数筛选判断;
– 通过SELECT子句选择显示的列或表达式及组函数;
– 通过ORDER BY子句进行排序操作。
为主键添加序列
insert into z_commodity(id) values
(TAOBAO_SEQ.Nextval)
create or replace trigger trgg_test
before insert on z_commodity
for each row
begin
select TAOBAO_SEQ.Nextval into :new.ID from dual ;
end trgg_test