zoukankan      html  css  js  c++  java
  • Oracle数据库sql命令整理

    转至:https://blog.csdn.net/weixin_43712330/article/details/88358604

                                            以下为oracle数据库中sql语句的整理,将持续更新
    01、 如何登陆用户

    conn 用户名/口令;

    02、 如何创建用户并设置密码和默认表空间

    create user 用户名 identified by 口令 dafault tablespace users;

    03、 如何查看所有表空间

    select * from dba_tablespace;

    04、 如何查看当前用户

    show user;

    05、 如何查看所有用户

    select * from all_users;

    06、 如何修改用户口令

    alter user 用户名 identified by 新口令;

    07、 如何锁定用户

    alter user 用户名 account lock;

    08、 如何解锁用户

    alter user 用户名 account unlock;

    09、 如何删除用户

    alter user 用户名 cascade;

    10、 如何给用户授予创建会话权限

    grant create session to 用户名;

    11、 如何查看用户权限

    select * from user_sys_pivs;

    12、 如何授予用户权限转让权限

    grant create any table,execute any procedure to 用户名 with admin option;

    13、 Oracle中的三种权限是什么?

    connect:分配给普通用户
    resource:分配给设计人员
    dba: 授予系统管理员
    具体说明请转到connect、resource和dba三个标准角色权限

    14、 如何创建表空间,并同时创建DBF文件

    create tablespace 表空间名 datafile '文件路径(绝对路径).dbf';

    15、 如何修改表空间的状态,表空间的状态有哪几个

    离线、在线、只读、read、write
    alter tablespace 表空间名 状态名;

    16、 如何修改表空间文件DBF文件大小

    alter dataspace datafile '文件路径(绝对路径).dbf'resize 目标大小;

    17、 如何添加DBF文件(数据库文件)

    alter tablespace 表空间名 add datafile '文件路径(绝对路径).dbf' size 目标大小;

    18、 如何删除表空间和文件

    drop tablespace 表空间名 including contents and datafiles;

    19、 如何查看数据库文件

    select * from dba_data_files;

    20、 表空间和数据库文件的关系

    一对多

    21、 数据库的数据保存在哪里?

    保存在dbf文件中

    22、 数据库的实体:

    23、 Oracle的数据类型:

    number(字节长度)
    varchar2(字节长度)
    char(字节长度)默认长度为一个字节
    date:DD-MM-YY
    dfile、clob、blob(三种大型对象,大数据类型(能够保存较大文件,最大为4G))

    24、 如何创建表?

    create table 表名(
    cid bumber(4),
    cname varchar2(100),
    cyear number(4),
    clen number(1)  
    );

    25、 如何添加数据

    insert into 表名 values(要添加的数据);

    26、 如何删除所有的数据

    delete from 表名;

    27、 如何添加主键约束

    alter table 表名 add constraint PK_表名_列名 primary key(列名);

    28、 如何添加非空约束

    alter table 表名 add constraint UQ_表名_列名 unique(列名);

    29、 如何添加不为空,唯一约束

    alter table 表名 add constraint modify 列名 not null;

    30、 如何删除表

    drop table 表名;

    31、 如何创建带行级约束的表

    create table 表名(
    cid number(4) primary key, 
    cname varchar2(100) unique not null,
    cyear number(4) not null 
    );

    32、 如何创建自增长的主键

    create sequence class_test start with 开始值 increment by 增长数值;

    33、 如何添加外键约束

    alter table 表名 add constraint FK_表名_列名 foreign key(列名) reference 目标表名(目标列名);

    34、 如何添加检查约束

    alter table 表名 add constraint CK_表名_列名 check(检查语句);

    35、 如何删除约束

    alter table 表名 drop constraint 约束名;

    36、 如何添加默认约束,添加了默认约束之后如何添加数据才能正确使用默认约束

    alter table 表名 add modify 列名 default '默认值';

    37、 如何查看表的所有约束

    select * from user_constranints where tablename='表名(表名必须全部大写)';

    38、 如何在建表时添加约束

    create table 表名(
    stuNo number(10) primary key,
    cid number(4) constraint FK_STUINFO_cid references classInfo(cid),
    stuCarId varchar2(20) constraint CK_STUINFO_stuCarId check(length(stuCarId)=18), 
    sex varchar2(4), 
    stuAge number(3) constraint CK_STUINFO_stuAge check(stuAge>12 and stuAge<30),
    stuTel vaarchar2(15) unique;

    39、 如何查看表的结构

    select * from user_tab_columns where talble_name='表名(表名必须全部大写)';

    40、 如何修改表名

    alter table 表名 rename to 新名字;

    41、 如何修改表的列(删除列、添加列)

    alter table 表名 rename column 列名 to 新名字;

    42、 SQL语句由哪几部分组成?

    DCL(Data Control Language):数据控制语言
        grant      revoke
    DDL(Data Definiation Language):数据定语言
        create      drop      truncate
    DML(Data Manipulation Language):数据操作语言
        insert      delete      updata      select
    TCL(Transcation Contro;Language):事务控制语言
        rollback      commit      savepoint

    43、 如何参照另一个表建表(要表记录不要表记录)

    要记录:
    create table 表名 as select * from 参照表名;  
    不要记录:
    create table 表名 as select * from 参照表名 where 1=0;

    44、 如何参照另一个表建表并且修改参照表的列名

    create table 表名 as select 列名1、列名2、列名3...列名n as 新列名n from 参照表名;

    45、 如何同时想某个表中插入多条记录

    insert into 表名 
    select 5,'女','小花' from dual union --union 连接词
    select 5,'女','小红' ;

    46、 数据更新(更改表中数据)

    update 表名 set name='张思' where id=8;

    47、 如何删除指定数据

    delete from 表名 where tsex='男';

    48、 dual表的作用

    Oracle中的一个实际存在的表,任何用户均可访问读取,常在没有任何目标的select语句块中使用(一个神奇的表)

    -----------------------------------------------2019/3/8 21:13更新------------------------------------------------------
    49、 什么是事务?

    事务是最小的工作单位,作为一个整体进行工作保证事务成功或失败称为事务控制

    50、 事务的提交与回滚,以及回滚时要注意的地方

    事务的提交:commit;
    事务的回滚:rollback; --rollback撤销本次未提交的事务

    51、 部分回滚的设置,在部分回滚时跳过若干个时间点直接回滚到很久之前的保存点,这之间的保存点会发生怎么样的变化

    如果一个事务中包含多个执行语句,要部分回滚,则用到savepoint。
    例:

    savepoint p1--将当前数据库的数据状态设置为一个保存点
    update stuInfo set name='李四' where id=1;
    savepoint p2;
    delete from stuInfo where id=1;
    rollback to savepoint p1;

    如果使用了rollback回滚到时间点p1处那么在p1之后的时间点中的保存点将全部销毁

    52、 怎么生成序列 
    在设计表的时候需要一个不需要明确意义的列作为主键,这时需要序列。

    create sequence seq_id('序列名');
    create sequence seq_id start with 1000 increment by 2;--从某个地方开始自增长的序列 

    53、 怎么获取当前序列的值

    select seq_id.curral from dual;

    54、 如何删除序列

    drop sequence seq_id(序列名);

    55、 如何使用序列

    insert into stuInfo(seq_id.nextval,'张三');

    56、 基础查询

    select * from 表名 where 条件; 
    
    查询时进行数学运算  例:
    select empno,ename,sal+comm as sal from emp;--其中as可以省略,sal可以任意改变

    57、 连接操作符有哪几个,作用分别是什么

    union、union all、intersect、mius
    union:连接上下信息,并剔除重复信息
    union all:连接上下信息,不剔除重复信息
    intersect:获得相同的数据
    minus:获得不相同的数据
    58、 exists如何使用
    例:
    select * from student where exists 
    (select * from classInfo where classInfo.cid=1001 and classInfo.cid=student.cid);

    59、 内联查询

    例:
    select * from student s inner join classInfo cs on s.cid=cs.cid where cs.cid=1001;

    60、 左联查询

    例:
    select * from a left join b on a.id=b.id;  
    --a,b均为表名 只要a表有,而b可没有对应的记录。此时b表中的所有字段用null代替。

    61、 右联查询

    例:
    select * from a right join b on a.id=b.id; 
    --a,b均为表名 和左外联相反,只要b表有,a表可没有对应的记录。

    62、 数值函数:floor、trunc、ceil、round的作用以及用法

    floor:求平均数,忽略小数 
    例:
    select ename,sal/30 sal,floor(sal/30) 日平均工资 from emp; 
    trunc:求平均数,保留两位小数  
    例:
    select ename,sal/30 sal,trunc(sal/30) 日平均工资 from emp; 
    ceil:求平均数,向上取整  
    例:
    select ename,sal/30 sal,ceil(sal/30) 日平均工资 from emp;  
    round:求平均数,四舍五入  
    例:
    select ename,sal/30 sal,round(sal/30)日平均工资 from emp;

    63、 聚合函数:max、min、avg、sum的作用及用法

    max:最大值  
    min:最小值 
    avg:平均值 
    sum:总和   
    例:
    select max(sal),min(sal),avg(sal),sum(sal) from emp;
    --求员工的最高底薪,最低底薪,平均底薪,底薪总和

    64、 如何查询某例所有的值

    select all 列名 from 表名;

    65、 如何过滤重复的数据

    distinct:过滤重复的数据	
    select distinct addr from student;--统计学生来自哪里

    66、 如何统计共有多少行数据

    count:总数  
    select count(distinct addr) from student;--统计学生来自多少个地区(并去重)

    67、 例:如何查询学生性别如果是男转换为M如果是女转换为F(两种写法)

    decode:译码  
    例:
    select sname,decode(sex,'男','M','F')性别 from student;		
    另一种写法:
    select sname,case sex when '男' then 'M' when '女' then 'F' end 性别 from student;

    -----------------------------------------------2019/3/9 16:40更新------------------------------------------------------
    68、 分析函数有哪几个?

    (1)、order by(排序函数,desc 降序,asc升序)
    (2)、rank(排序)
    (3)、DENSE_RANK(排序)
    (4)、 row_number(排序)
    (5)、rownum(分页查询)

    69、 升降序排序

    --升序:
    select * from 表名 order by 列名 (asc);
    --列名后什么都没有时默认升序排序 
    --降序:
    select * from 表名 order by 列名 desc;

    70、 row_number()排序

    --如果字段值相同,序号也不中断:
    select row_number over(order by 列名 desc) as 自定义名称 from emp;--(as可省略) 
    --效果:1 2 3 4 5 6

    71、 rank 排序

    --具有相同的值得排位相同,随后序数跳跃:
    select rank() over(order by 列名 desc) as 自定义名称 from emp; 
    --效果:1 2 2 4 4 6

    72、 DENSE_RANK

    --具有相同的值的排位相同,随后的序号是连续的:
    select DENSE_RANK() over(order by sal desc) as 自定义名称 from emp; 
    --效果: 1 2 2 3 3 4 4 5

    73、 分页查询

    rownum: select * from 列名;--自动生成了rownum并有1-14的值 
    select a.*,rownum from (select * from emp) a where rownum<=10;--查询<=10的序列数据

    74、 分组查询 group by 分组 having 筛选

    group by  having : select 分组依据,a from 表名 group by 分组依据 having 条件;
    --a处可添加计算结果如:sum(),max(),avg()...等
    --having 和where类似用法 
    --group by 可以去重 
    --order by 也是分组的一种,如果同时使用了group by 和 order by 需将'by'后的全部写在from之前 
    高级查询是基础查询的组合使用

    75、 连接查询

    例:
    select * from stuInfo sf,score sc,course cs where sc.courseid=cs.cid and
    sc.stuid=sf.stuid and sc.score<60 and cs.cname='html网页设计';

    76、 <补充>日期数据类型的使用

    日期数据类型的使用呢,已经有很多大神们都总结过了,我也就不再过多的说明
    详见:https://blog.csdn.net/qq_33573235/article/details/78154928

    date数据类型查入数据时:
    insert into 表名 values(to_date('2018-1-25','YYYY-MM-DD'));
    date数据类型查询某个月份时:
    select * from 表名 where to_number(to_char(sdate,'MM'))='3';--查询三月份的数据

    77、 <补充>修改字段数据类型

    alter table tablename modify filedname varchar2(20);

    -----------------------------------------------2019/3/14 20:00更新------------------------------------------------------

    截至到2019/3/14 20:00呢,这个关于Oracle数据库sql语句的更新也差不多就要结束了,各位路过的大神们如果对本篇文章有看法的话欢迎提出来,让我继续改进或者高兴一会。初次接触数据库还有很多不懂的地方,希望以后可以把数据库了解的更清楚一点吧。




                                      拜拜了您嘞★,°:.☆( ̄▽ ̄)/$:.°★ 。


    我“胡汉三”又回来了,突然发现还有些没写完的...来吧 
    78、<补充>模糊查询

    select * from student where sname like '%所查询字符%';
    --‘%’ 是有字符但是不用去管他是啥,可以放到前面也可以放到后面
    
    select * from 表名 where 列名 like '张__';--'张'的后面是两个'_'
    --两个‘_’代表着两个不知道是啥的字符,啥都行,但是必须是两个,‘_’的数量多少都行,放前放后也都可以
    
    2019-3-15 20:20    --这更新时间选的真好
  • 相关阅读:
    mySQL教程 第1章 数据库设计
    数学符号大全
    C# 正则表达式 判断各种字符串(如手机号)
    C# 面向对象编程
    博客园 网址
    优化正则表达式的诀窍
    hdu 1596 floyd
    poj3259,简单判断有无负环,spfa
    hdu 1496 hash
    hdu 1429 bfs+二进制状态压缩
  • 原文地址:https://www.cnblogs.com/my-first-blog-lgz/p/14252172.html
Copyright © 2011-2022 走看看