第二部分:SQL使用(持续更新中...)

现在只进行了SQL语句的部分学习,待学习完成后,会将剩余内容补充完整。猛的会过神来才发现,原来时间在无声无息之间过的这么快,已经是汶川地震11周年纪念日了,还有便是祝天下母亲,母亲节快乐。

2019年5月12日记

更新SQL实现用户管理、SQL语句创建表添加约束和SQL修改表结构三篇文章。

2019年5月23日记

通过SQL语句进行数据库的管理

数据读取

单表查询
  1. 查询表中所有数据

     select * from emp;
    
  2. 查询表中指定数据

      select EMPNO,MGR from emp;
    
  3. 查询结果使用别名

    方式1:select EMPNO ROW1,MGR ROW2 from emp;   
    方式2:select EMPNO as ROW1,MGR as ROW2 from emp;  
     方式3:select EMPNO"我",MGR"ni" from emp;
    
  4. 使用连接符号

     语法是:字段名||'字符'||字段名||....
     注意:一个拼好的连接在结果集中是作为一个新的字段显示,可以使用别名优化显示
     select ENAME||'的工资是'||SAL as String from EMP;
    
  5. 去除重复

    去除重复,相同的字段名称只显示一个,两行相同的内容如果重复取其一,按照行去重

     select distinct job,mgr from EMP;   
     select distinct job from EMP;		
    
  6. 排序

     排序 升序ASC,降序DESC
     select * from EMP order by SAL desc;
     如果order by是两个选项,先按照字段1排序,如果字段1一致,再按照字段2排序
     select * from EMP order by EMPNO,ENAME asc;
    
  7. Where 关键字进行结果筛选

    • 单条件筛选.

        因为语句过于简单,并没有实例。
      
    • 多条件筛选

      • and连接符连接的多条件筛选

          select * from EMP where comm is not null and comm > 0;
        
      • 模糊查询(like)

        • 字符%:表示0个或者多个字符,中文的话请用两个%%表示

            //比如查询名字是以A开头的数据    
            select * from EMP where ENAME like 'A%';
          
        • 字符_:表示任意单个字符,

            //比如查询第二个名字中是A的数据
            select * from EMP where ENAME like '_A%';
          
        • 字符[]:表示括号内的任意一个

          注意:Oracle中的"[]"使用方式是必须使用函数regxp_like,且其中不能再有别的匹配字符

            //比如查询名字的第一个字符是C或D的数据   
            select * from EMP where regexp_like(ENAME,'[CD]LARK');
          
        • 搜索的内容中含有转义字符

            // escape 后面的字符在引号中就变成了普通字符    
            //escapse 可以将普通字符变为转义字符,转义字符可以将特殊字符转化为普通字符
            //比如要查询的条件中带有 _ 下面两句同理
            select * from EMP where ENAME like '%._%' escape '.';
            select * from EMP where ENAME like '%/_%' escape '/';
          
        • 使用 or / in 关键字

            //使用or关键字,进行或条件的筛选。
            select * from emp where job='SALESMAN' or job='ANALYST' or job='MANAGER' order by job
            //使用in关键字,也可以进行或筛选,但是in中的内容只能为一个字段的值。
            select * from emp where job in('SALESMAN','ANALYST','MANAGER')
          
多表查询

多表查询是指要查询的数据并不在一张数据库表中,需要将两张甚至两张以上的表格连接起来做查询操作,其中笛卡儿积是做多表查询的理论基础,具体理解可以参考这篇博客MYSQL之笛卡尔积,虽然讲解的内容是MYSQL的,但是理论同样适用。

笛卡儿积:笛卡尔乘积是指在数学中,两个集合X和Y的笛卡尓积(Cartesian product),又称直积,表示为X×Y,第一个对象是X的成员而第二个对象是Y的所有可能有序对的其中一个成员

Oracle使用的多表查询主要有两个版本,SQL92和SQL99,数字代表年份,现在就这两个版本的语法及使用介绍。

  1. SQL92
  2. SQL99

具体可参考如下这篇文章 第二部分:SQL多表连接(SQL92 and SQL99)

子查询

具体可参考如下这篇文章 第二部分:子查询

数据管理

单表级别的增删改操作

主要是对一张数据表上的数据进行的增删改操作,
具体可以参考这篇文章 SQL增删改(单表操作)

表级别的增删改操作

主要是介绍表级别的增删改,比如增加表,修改表结构等。

增加表并设计相关约束请参考这篇文章:SQL语句二维表管理
修改表结构请参考这篇文章:SQL修改表结构

通过SQL语句管理用户

SQL实现用户的管理在一篇新的博客上:通过SQL语句管理账户

通过SQL语句管理实务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值