-
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个不要锁定
查看全部 -
数据类型的截图。。。
查看全部 -
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,只能为一个字段设置别名。查看全部 -
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
查看全部 -
查询结果排序
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到多个字符
查看全部 -
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 #####
查看全部
举报