朝花夕拾(2)SQL

数据持久化 ——》电脑重新启动,数据会保存 ——》磁盘文集《——数据库系统管理的文件

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

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值