zoukankan      html  css  js  c++  java
  • Oracle数据库语句

    Oracle数据库语句

    ORACLE支持五种类型的完整性约束

    NOT NULL (非空)--防止NULL值进入指定的列,在单列基础上定义,默认情况下,ORACLE允许在任何列中有NULL值.

    CHECK (检查)--检查在约束中指定的条件是否得到了满足.

    UNIQUE (唯一)--保证在指定的列中没有重复值.在该表中每一个值或者每一组值都将是唯一的.

    PRIMARY KEY (主键)--用来唯一的标识出表的每一行,并且防止出现NULL值,一个表只能有一个主键约束.

    POREIGN KEY (外部键)--通过使用公共列在表之间建立一种父子(parent-child)关系,在表上定义的外部键可以指向主键或者其他表的唯一键.

    1--设置每行显示多少字符  set linesize  300;

    2 设置每页显示多少条记录 set pagesize 30;

    3 用户名的切换: 如 conn system/tiger Conn sys/change_on_install as sysdba(注意超级用户 在后面加as sysdba)

    4 在超级用户下查找普通用户的表是查不到的 必须这样查找  如 select * from scott.emp(普通用户下的emp表)

    5 查看当前是那个用户身份登录: show user;

    6 查看有多少张表: select * from tab;(注意不同用户下的表是不同的)

    7查看表的结构: desc emp(emp为表名)

    8 取出重复的列(DISTINCT): 如 SELECT DISTINCT  JOB EMP(去掉job的重复的值)

    9字符串的链接操作用:  ||

    10 查询有奖金的员工: select* from emp where comm is not null;

    11 查询没有奖金的员工信息: select * from emp where comm is null;

    12 两个条件以上就得用and 如查询工资大雨1500和有奖金的员工 select * from emp where sal>1500  and comm is not null;

    13 表示两个条件有一个满足就可就用:or 如查询工资大于1500或者没有奖金的员工信息 Select * from emp where sal>1500 or comm is not null;

    14取反可以用not 如 查询员工工资不大于1500和有奖金的员工信息 如: Select * from emp where not (sal>1500  or comm is not null);

    15 在什么什么之间用between----and----如查询工资在1500和3000之间的员工信息: Select * from emp  where sal  between 1500 and 3000;

    16   查询员工编号是2323, 4555, 2222的员工具体信息: 如 Select * from emp where empno in(2323,4555,2222);

    17.l模糊查询  like 一般结合"%"和"_"使用其中%:表示可以匹配任意长度的内容,"_"表示匹配一个长度放入内容  如:  

    查询员工姓名中第二哥字母是M的员工信息:Select * from emp where ename LIKE '_M%';

    又如姓名中包含M的员工  Select * from emp where ename LIKE  '%M%';

    18oracle中不等于有两种表示方式"<>"和"!="

    19 排序用order by {asc desc}其中asc 是升序排列 如果不写就默认按升序排列desc是按降序排列  排序语句放在sal语句的最后如: 

    按员工工资进行排序

    Select * from emp order by sal asc(升序)

    Selecct * from emp order by sal desc(降序)

    Select * from emp where deptno='10' order by sal desc,hiredate asc;(查询部门10的员工工资的升序排列如果工资相等就按员工的入职时间排序)

    20.group by 用于对查询的结果进行分组统计: 显示每个部门的平均工资和最高工资  如:Select avg(sal),max(sal) from emp group by deptno;

    21.Having  子句用于限制分组显示结果: 显示平均工资大于2000的的部门号和他的平均工资,如:select avg(sal), deptno from emp group by deptno having avg(sal)>2000;

    2. 单行函数:

    1 小写变大写: upper 如 select * from emp where ename=upper('smith');

    将一个字符串变为小写字母表示 如:  select  lower('HELLO WORLD') FROM DUAL;

    将单词的首字母变大写 用 INITCAP 如: SELECT INITCAP('HELLO WORLD') FROM DUAL;

    2.字符串的操作

    Substr()截取字符串 length()字符串的长度 replace()替换字符串

    3数值函数

    四舍五入: round();

    截断小数位:trunc();

     

    一.入门部分

    1.    创建表空间
    create tablespace schooltbs datafile ‘D:oracledatasourceschooltbs.dbf’ size 10M autoextend on;

    2.    删除表空间
    drop tablespace schooltbs[including contents and datafiles];

    3.    查询表空间基本信息
    select *||tablespace_name from DBA_TABLESPACES;

    4.    创建用户
    create user  lihua
    identified by lihua
    default tablespace schooltbs
    temporary tablespace temp;

    5.    更改用户
    alter user lihua
    identified by 123
    default tablespace users;

    6.    锁定用户
    alter user lihua account lock|unlock;

    7.    删除用户
    drop user lihua cascade;--删除用户模式

    8.    oracle数据库中的角色
    connect,dba,select_catalog_role,delete_catalog_role,execute_catalog_role,exp_full_database,imp_full_database,resource

    9.    授予连接服务器的角色
    grant connect to lihua;

    10.授予使用表空间的角色
    grant resource to lihua with grant option;--该用户也有授权的权限

    11.授予操作表的权限
    grant select,insert on user_tbl to scott;--当前用户
    grant delete,update on lihua.user_tbl to scott;--系统管理员

    12.修改表的结构(alter)

    Alter table  表名 add(列的名称,列的类型);

  • 相关阅读:
    统计nginx日志里访问次数最多的前十个IP
    while 格式化输出 运算符 字符编码
    Python 软件安装
    Python 基础
    Typora 基础的使用方法
    Django ORM (四) annotate,F,Q 查询
    Django 惰性机制
    Django ORM (三) 查询,删除,更新操作
    Django ORM (二) 增加操作
    Django ORM (一) 创建数据库和模型常用的字段类型参数及Field 重要参数介绍
  • 原文地址:https://www.cnblogs.com/Strive-count/p/6676452.html
Copyright © 2011-2022 走看看