为了账号安全,请及时绑定邮箱和手机立即绑定

Oracle数据库开发必备利器之SQL基础

难度入门
时长 4小时14分
学习人数
综合评分9.67
338人评价 查看评价
9.8 内容实用
9.7 简洁易懂
9.5 逻辑清晰
  • SQL> create tablespace test1_tablespace datafile 'test1_file.dbf' size 10m;


    表空间已创建。


    SQL> alter tablespace test1_tablespace offline;


    表空间已更改。

    SQL> desc dba_tablespaces

     名称                                      是否为空? 类型

     ----------------------------------------- -------- ----------------------------


     TABLESPACE_NAME                           NOT NULL VARCHAR2(30)

     BLOCK_SIZE                                NOT NULL NUMBER

     INITIAL_EXTENT                                     NUMBER

     NEXT_EXTENT                                        NUMBER

     MIN_EXTENTS                               NOT NULL NUMBER

     MAX_EXTENTS                                        NUMBER

     MAX_SIZE                                           NUMBER

     PCT_INCREASE                                       NUMBER

     MIN_EXTLEN                                         NUMBER

     STATUS                                             VARCHAR2(9)

     CONTENTS                                           VARCHAR2(9)

     LOGGING                                            VARCHAR2(9)

     FORCE_LOGGING                                      VARCHAR2(3)

     EXTENT_MANAGEMENT                                  VARCHAR2(10)

     ALLOCATION_TYPE                                    VARCHAR2(9)

     PLUGGED_IN                                         VARCHAR2(3)

     SEGMENT_SPACE_MANAGEMENT                           VARCHAR2(6)

     DEF_TAB_COMPRESSION                                VARCHAR2(8)

     RETENTION                                          VARCHAR2(11)

     BIGFILE                                            VARCHAR2(3)

     PREDICATE_EVALUATION                               VARCHAR2(7)

     ENCRYPTED                                          VARCHAR2(3)

     COMPRESS_FOR                                       VARCHAR2(12)




    SQL> select tablespace_name from dba_tablespaces;


    TABLESPACE_NAME

    ------------------------------

    SYSTEM

    SYSAUX

    UNDOTBS1

    TEMP

    USERS

    EXAMPLE

    TEST1_TABLESPACE

    TEMPTEST1_TABLESPACE


    已选择8行。


    SQL> select status from dba_tablespaces where tablespace_name='TEST1_TEABLESPACE';


    未选定行


    SQL> select status from dba_tablespaces where tablespace_name='TEST1_TABLESPACE';


    STATUS

    ---------

    OFFLINE


    SQL> alter tablespace test1_tablespace online;


    表空间已更改。


    SQL> select status from dba_tablespaces where tablespace_name='TEST1_TABLESPACE';


    STATUS

    ---------

    ONLINE





    SQL> alter tablespace test1_tablespace read only;


    表空间已更改。


    SQL> select status from dba_tablespaces where tablespace_name='TEST1_TABLESPACE'

    ;


    STATUS

    ---------

    READ ONLY


    SQL> alter tablespace test1_tablespace read write;


    表空间已更改。


    SQL> select status from dba_tablespaces where tablespace_name='TEST1_TABLESPACE'

    ;


    STATUS

    ---------

    ONLINE

    查看全部
  • 创建永久表空间和临时表空间语句

    create [temporary] tablespace

    tablespace_name

    tempfile| default 'xxxx.dbf' sieze xxx;


    查看表空间具体路径
    desc dba_data_file    查看数据字典字段---永久表
    select file_name from dba_data_file where tablespace_name='表空间名字要大写';查看永久表空间数据文件
    select file_name from dba_temp_file where tablespace_name='表空间名字要大写';查看临时表空间数据文件


    ***************************************************************


    SQL> select file_name from dba_temp_files where tablespace_name='TEMPTEST1_TABLE

    SPACE';


    FILE_NAME

    --------------------------------------------------------------------------------

    D:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATABASE\TEMPFILE1.DBF


    SQL> select file_name from dba_temp_files where file_name='D:\APP\ADMINISTRATOR\

    PRODUCT\11.2.0\DBHOME_1\DATABASE\TEMPFILE1.DBF';


    FILE_NAME

    --------------------------------------------------------------------------------

    D:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATABASE\TEMPFILE1.DBF

    查看全部
  • 1.数据库与表空间

    表空间,是数据库为逻辑存储空间

    表空间可以理解为在数据库开辟的一个空间,可以存放数据

    数据库可以由多个表空间构成


    表空间是oracle和sql sqlserve 的区别

    oracle的很多优化也都根据表空间来优化的。


    2.表空间与数据文件的关系:

    表空间是由一个或多个数据文件构成的,数据文件的位置和大小可以由用户自己定义;

    查看全部
  • 系统用户

    sys , system

    sys权限高于system用户权限


    sysman 企业管理器管理员账户


    scott oracle创始人之一的名称


    connect sys/toor as sysdba

    tips:sysdba 必须加上

    con sys/toor as sysdba

    con 是connect的简写

    这里命令自动可以不区分大小写

    查看全部
  • 默认使用sys system这2个账户,这2个不要锁定

    查看全部
    0 采集 收起 来源:Oracle安装

    2022-01-28


  • 数据类型的截图。。。

    查看全部
    0 采集 收起 来源:总结

    2022-01-26

  • decode函数是case when的一种简化




    SQL> select username,decode(username,'aaa','计算机部门','bbb','市场部门','其他')

     as 部门 from users;


    用户名               部门

    -------------------- ----------

    aaa                  计算机部门

    bbb                  市场部门

    ccc                  其他

    cccccc               其他

    aaa                  计算机部门

    查看全部
  • 解析:

    设置查询结果别名

    方法一:

    使用as关键字设置字段别名的语法:select column_name as new_name,... from table_name;可以同时为多个字段设置别名。


    方法二:
    使用column命令设置字段别名的语法:column column_name heading new_name,只能为一个字段设置别名。

    查看全部
    0 采集 收起 来源:练习题

    2022-01-26

  • case....when语句的使用


    1.格式一-----场景比较单一

    case column_name when value1 then result1,....

    [else result] end



    2.格式二-----场景可以略微复杂

    case

    when column_name=value1

    then result1,....[ELSE result] END


    -------------------------------------------------------------

    SQL> select username,case username when 'aaa' then '计算机部门'

      2  when 'bbb' then '市场部门' else '其他部门' end as 部门

      3  from users;


    用户名               部门

    -------------------- ----------

    aaa                  计算机部门

    bbb                  市场部门

    ccc                  其他部门

    cccccc               其他部门

    aaa                  计算机部门


    SQL> select username,case when username='aaa' then '计算机部门'

      2  when username='bbb' then '市场部门' else '其他部门' end as 部门

      3  from

      4  users;


    用户名               部门

    -------------------- ----------

    aaa                  计算机部门

    bbb                  市场部门

    ccc                  其他部门

    cccccc               其他部门

    aaa                  计算机部门


    SQL>

    SQL>

    SQL> select username,case when salary < 800 then '工资低'

      2  when salary>1000 then '工资高' end as 工资水平

      3  from users;


    用户名               工资水

    -------------------- ------

    aaa                  工资低

    bbb                  工资低

    ccc

    cccccc               工资低

    aaa

    查看全部
    0 采集 收起 来源:case...when语句

    2022-01-26

  • 查询结果排序

    select * from table_name where....

    order by column1 desc/asc,......


    username 进行排序是按照字符存储的ascii进行排序


    SQL> select * from users order by salary asc;


    编号       用户名                     工资

    ---------- -------------------- ----------

    1          aaa                         300

    3          cccccc                      300

    2          bbb                         400

    3          ccc                         900


    SQL> select * from users order by id desc,salary asc;


    编号       用户名                     工资

    ---------- -------------------- ----------

    3          cccccc                      300

    3          ccc                         900

    2          bbb                         400

    1          aaa                         300


    SQL> insert into users values(4,'aaa',1000);


    已创建 1 行。


    SQL> select * from users order by id desc,salary asc;


    编号       用户名                     工资

    ---------- -------------------- ----------

    4          aaa                        1000

    3          cccccc                      300

    3          ccc                         900

    2          bbb                         400

    1          aaa                         300


    SQL> select * from users order by username desc,salary asc;


    编号       用户名                     工资

    ---------- -------------------- ----------

    3          cccccc                      300

    3          ccc                         900

    2          bbb                         400

    1          aaa                         300

    4          aaa                        1000

    查看全部
  • 范围查询

    between A and B

    between是闭合查询,包含AB


    in/not in



    SQL> select * from users where salary between 200 and 800;


    编号       用户名                     工资

    ---------- -------------------- ----------

    1          aaa                         300

    2          bbb                         400

    3          cccccc                      300


    SQL> select * from users where salary not between 200 and 800;


    编号       用户名                     工资

    ---------- -------------------- ----------

    3          ccc                         900


    SQL> select * from users where username in('aaa','bbb');


    编号       用户名                     工资

    ---------- -------------------- ----------

    1          aaa                         300

    2          bbb                         400


    SQL> select * from users where username not in('aaa','bbb');


    编号       用户名                     工资

    ---------- -------------------- ----------

    3          ccc                         900

    3          cccccc                      300

    查看全部
    0 采集 收起 来源:Oracle 范围查询

    2022-01-26

  • 一个_代表一个字符

    %代表0到多个字符

    查看全部
    0 采集 收起 来源:Oracle 模糊查询

    2022-01-25

  • 1.单一条件查询

    2.多条件查询--用到逻辑运算符

    SQL> select * from usres where username='aaa' or salary>200;

    select * from usres where username='aaa' or salary>200

                  *

    第 1 行出现错误:

    ORA-00942: 表或视图不存在



    SQL> select * from users where username='aaa' or salary>200;


    编号       用户名                     工资

    ---------- -------------------- ----------

    1          aaa                         300

    2          bbb                         400

    3          ccc                         900

    3          cccccc                      300


    SQL> select * from users where username='aaa' or salary>300;

    编号       用户名                     工资

    ---------- -------------------- ----------

    1          aaa                         300

    2          bbb                         400

    3          ccc                         900


    SQL> select * from users where username='aaa' or salary > 200 and salary < 2000;

    编号       用户名                     工资

    ---------- -------------------- ----------

    1          aaa                         300

    2          bbb                         400

    3          ccc                         900

    3          cccccc                      300


    SQL> select * from users where username='aaa' or (salary > 200 and salary < 2000

    );


    编号       用户名                     工资

    ---------- -------------------- ----------

    1          aaa                         300

    2          bbb                         400

    3          ccc                         900

    3          cccccc                      300

    SQL> select * from users where not(username='aaa');

    编号       用户名                     工资

    ---------- -------------------- ----------

    2          bbb                         400

    3          ccc                         900

    3          cccccc                      300

    查看全部
  • 如图2个语句,结果相同,运算符是有优先级的

    逻辑运算符的优先级:按not,and,or的顺序依次递减

    查看全部
  • 逻辑运算符 不等于用<>表示

    SQL> select * from users;


    编号       用户名                     工资

    ---------- -------------------- ----------

    1          aaa                         300

    2          bbb                         400

    3          ccc                         900

    3          cccccc                      300


    SQL> select id,username,salary+200 from users;


    编号       用户名               SALARY+200

    ---------- -------------------- ----------

    1          aaa                         500

    2          bbb                         600

    3          ccc                        1100

    3          cccccc                      500


    SQL> select * from users;


    编号       用户名                     工资

    ---------- -------------------- ----------

    1          aaa                         300

    2          bbb                         400

    3          ccc                         900

    3          cccccc                      300


    SQL> select username from users where salary>800;


    用户名

    --------------------

    ccc


    SQL> select username from users where salary>800 and salary <> 900;


    未选定行


    SQL> select username from users where salary>300 and salary <> 900;


    用户名

    --------------------

    bbb


    SQL> select username from users where salary>300 or salary <> 900;


    用户名

    --------------------

    aaa

    bbb

    ccc

    cccccc

    查看全部
  • oracle中的操作数可以有变量,常量和字段


    算术运算符--加减乘除

    比较运算符--大于,小于

    逻辑运算符---and or not

    查看全部
  • 给表中字段设置别名---这里仅仅查询展示用,并不会真正更改表中字段名称


    SQL> desc users;

     名称                                      是否为空? 类型

     ----------------------------------------- -------- ----------------------------


     ID                                        NOT NULL VARCHAR2(10)

     USERNAME                                           VARCHAR2(20)

     SALARY                                             NUMBER(7,2)


    SQL> select id as 编号,username as 用户名,salary as 工资 from users;


    编号       用户名                     工资

    ---------- -------------------- ----------

    1          aaa                         300

    2          bbb                         400

    3          ccc                         900

    3          cccccc                      300




    SQL> select distinct username as 用户名 from users;


    用户名

    --------------------

    cccccc

    aaa

    bbb

    ccc

    查看全部
  • select 语句用通过as来设置别名,注意:as也可以省略的。

    查看全部
  • SQL> select * from users;


    ID         USERNAME                 SALARY

    ---------- -------------------- ----------

    1          aaa                         300

    2          bbb                         400

    3          ccc                         900

    3          cccccc                      300


    SQL>

    SQL> col id heading 编号;

    SQL> col username heading 用户名;

    SQL> col salary heading 工资;

    SQL> select * from users;


    编号       用户名                     工资

    ---------- -------------------- ----------

    1          aaa                         300

    2          bbb                         400

    3          ccc                         900

    3          cccccc                      300


    SQL>

    SQL>

    SQL> select username,salary from users;


    用户名                     工资

    -------------------- ----------

    aaa                         300

    bbb                         400

    ccc                         900

    cccccc                      300

    查看全部
  • 用户名下面横线的数量,可以看出设置的字符型数据的长度;

    col username format a10;


    -----------------------------------------------------------------------------



    设置格式

    column column_name heading new_name;

    column 可以简写成col




     create table users

     (id varchar2(10) not n

     username varchar2(20),

     salary number(7,2));



    insert into users values(1,'aaa',200);

    insert into users values(2,'bbb',340);

    insert into users values(3,'cccccc',300);




    col username heading 用户名;

    select * from users;


    设置结果显示的格式的

    column column_name format dataformat;

    字符类型只可以设置显示的长度


    col username format a10;



    数值类型9代表一位数字


    SQL> col salary format 9999.9;

    SQL> select * from users;


    ID         用户名      SALARY

    ---------- ---------- -------

    1          aaa          300.0

    2          bbb          400.0

    3          ccc          900.0

    3          cccccc       300.0




    SQL> col salary format 999.9;

    SQL> select * from users;


    ID         用户名     SALARY

    ---------- ---------- ------

    1          aaa         300.0

    2          bbb         400.0

    3          ccc         900.0

    3          cccccc      300.0


    SQL> col salary format 99.9;

    SQL> select * from users;


    ID         用户名     SALARY

    ---------- ---------- ------

    1          aaa         #####

    2          bbb         #####

    3          ccc         #####

    3          cccccc      #####





    SQL> col salary format 999.9;

    SQL> select * from users;


    ID         用户名     SALARY

    ---------- ---------- ------

    1          aaa         300.0

    2          bbb         400.0

    3          ccc         900.0

    3          cccccc      300.0


    SQL> col salary format 99.9;

    SQL> select * from users;


    ID         用户名     SALARY

    ---------- ---------- ------

    1          aaa         #####

    2          bbb         #####

    3          ccc         #####

    3          cccccc      #####



    清除字段格式

    column column_name clear;



    SQL> col salary format 999.9;

    SQL> select * from users;


    ID         用户名     SALARY

    ---------- ---------- ------

    1          aaa         300.0

    2          bbb         400.0

    3          ccc         900.0

    3          cccccc      300.0


    SQL> col salary format 99.9;

    SQL> select * from users;


    ID         用户名     SALARY

    ---------- ---------- ------

    1          aaa         #####

    2          bbb         #####

    3          ccc         #####

    3          cccccc      #####

    查看全部

举报

0/150
提交
取消
课程须知
只要知道数据库是什么就可以来学习本课程呦!
老师告诉你能学到什么?
掌握Oracle的SQL语句基础,为后续的课程学习打好基础。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!