--查找所有表空间select * from dba_data_files;--创建表空间create tablepace 表空间名
datafile '表空间路径'如:D:\\
size10M 表空间大小
autoextend on ;自动扩充
--修改表空间alter tablespace 要修改的表空间名 rename to 新表名;--删除表空间drop tablespace 要删除的表空间名 including contents and datafiles;
用户
--查找所有用户select * from dba_users;--创建用户 createuser 用户名
identified by 密码
default tablespace 默认表空间
temporary tablespace 临时表空间;--授予权限grant 角色 to 要给与权限的用户名;--解除权限
revoke 角色 from 要接触权限的用户名;
--角色
connect普通
resource
dba 超级
--修改用户密码alteruser 要修改密码的用户名 identified by 新密码;--删除用户dropuser 要删除的用户名
表
--查找表内容select * from 要查找的表的名字;--创建表属性,属性类型createtable 表名(
id numbernotnull,
username varchar2(20) notnull,
password varchar2(20) notnull,
realname varchar2(20) notnull,
tel varchar2(20) notnull,
address varchar2(20) notnull,
zip varchar2(6) notnull,
email varchar2(50) notnull,
usertype number(5,0)
)
--插入表内容
insertinto 表名(id,username,password,realname,tel,address,zip,email,usertype) values(1,1,1,1,1,1,1,1,1);--修改表全部内容update 要修改值的表名 set id =5;--修改表的单个内容update 要修改值的表名 set id=6(要修改的值) where(条件是5) id=5;--删除表droptable 要删除的表名;--按条件查找select * from 要查找的表明 where id=5and username=1;--删除表所有内容delete 表名 该表名的属性名;--删除表所有内容delete 表名;commit;--between delete dept where dept_id between 23and28;delete dept where dept_id 23 >= and <= 28;
删除dept表dept_id的23到28之间的内容.
--查找空值 is(是)select 字段名 fromwhere 字段名 isnull;--查找不是空值select 字段名 fromwhere 字段名 isnotnull;--in(在)select 字段名 fromwhere 字段名 in(xx,xx,xx);--查找生日select 字段名 fromwhere 生日字段名 > '20-2月-81'(必须是该格式);--or(或)select 字段名 fromwhere 字段名 =xx 值 or 字段名 >xx 值;--取反select 字段名 fromwhere 字段名 notin(值,值,值);--模糊查询select 字段名 fromwhere 字段名 = '%all%';(查找all全面有好多字母和后面有好多字母)
select 字段名 fromwhere 字段名 = '_all%';(查找前面一个字母,第二个字母是A的)
select 字段名 fromwhere 字段名 = '%$%%'escape'$';(如果要查找的字段值里面有%号,命名$为转义字符即可)
--lowerselect lower(字段) from 表名;
将字段全部返回小写
--UPPERselect UPPER(字段) from 表名;
将字段全部返回大写
--substr(单行函数)select substr(字段,1,2) from 表名;
截取该字段1到2的数据
--chrselect chr(65) from 表名;--asciiselect ascii('B') from 表名;--round(四舍五入)select round(23.652) from 表名; output:24
select round(23.652,2) from 表名; output:23.65
--to_charselect to_char(dept_id) from dept;select to_char(dept_id,格式) from dept;select to_char(dept_id,'$999.999') from dept;--时间格式select to_char(时间字段,'YYYY-MM-DD HH:MI:SS') from dept;
HH:是12小时
HH24:是24小时
--to_dateselect 字段 from 表名 where 时间字段 > to_date('1956-2-20','YYYY-MM-DD HH:MI:SS');--to_numberselect 字段 from 表名 number字段 > to_number('$1.238.00','9.999.99');--nvl
单行函数
select dept_id*12 + nvl(dept_id*12,0) from dept;
1.NVL ( )语法:nvl(expr1,expr2)
如果 expr1 是 null 值,则 nvl 函数返回 expr2 ,否则就返回 expr1 。
说明:参数 expr1、expr2 可以是任何数据类型,但应该保持相同。若两者数据类型不一致,则Oracle数据库会隐式的转换其中一个的数据类型使其保持和另一个一致,若无法转换则会返回错误。隐式转换的实施规则如下:
(1)若 expr1 是字符数据,则Oracle数据库在比较之前就会把 expr2 转换成 expr1 的数据类型并且返回 VARCHAR2 数据类型到 expr1 的字符集。
(2) 若 expr1 是数值型,则Oracle数据库决定哪个参数具有最高数值优先级,并把另一个参数的数据类型隐式转换成这种数据类型,并返回这种数据类型的数据。
2.NVL2 ( )
语法:nvl2(expr1,expr2,expr3)
如果 expr1 不是 null 值,则 nvl 函数返回 expr2 ,否则就返回 expr3 。参数可以返回任何数据类型的值,但是 expr2 和 expr3 不能是 LONG 型的数据类型。
说明:若 expr2 和 expr3 的数据类型不同:
(1)若 expr2 是字符数据,则Oracle数据库在比较之前就会把 expr3 转换成 expr2 的数据类型除非 expr3 是null。在 这种情况下,隐式数据转换是不必要的。Oracle数据库返回 VARCHAR2 数据类型到 expr2 的字符集。
(2) 若 expr2 是数值型,则Oracle数据库决定哪个参数具有最高数值优先级,并把另一个参数的数据类型隐式转换成这种数据类型,并返回这种数据类型的数据。
组函数
--maxselectmax(dept_id) from dept;最大值
--minselectmin(dept_id) from dept;最小值
--avgselectavg(dept_id) from dept;平均值
--sumselectsum(dept_id) from dept;和
--countselectcount(*) from dept;总共多少条记录
selectcount(dept_id) from dept;dept_id有多少个,如果这个字段有空的不算一个
函数
--group byselectavg(dept_id) from dept
output:
21.3333333333333selectavg(dept_id) from dept groupby dept_name;
对dept_name进行分组求出每个分组的平均ID
--having 对分组进行限制selectavg(dept_id) from dept groupby dept_name havingavg(dept_id)>20;
对dept_name进行分组,用having限制,提取平均dept_id大于20的内容