orcl数据库

登录时指定数据库:
sqlplus system/orcl@orcl as sysdba;
查看当前数据库名:
select instance_name from v$instance;
show parameter instance_name;
添加用户:
创建用户时,需要具有管理员权限。sys system
语法:create user 用户名 identified by 用户密码
修改密码:
alter user 用户名 identified by 新密码
修改用户锁定:
alter user 用户名 account lock;
修改用户未锁定:
alter user 用户名 account unlock;
授权命令
创建session的权限:
grant create session to 用户名;
创建table的权限:
grant create table to 用户名;
创建针对表操作的权限:
grant insert,select,update,delete on table_name to 用户名;
授予用户所有的系统权限 dba:
grant dba to 用户名;
解除权限:
revoke create table from 用户名;
查看当前一用户的用户名:
select username from user_users;
查询当前用户所有的表:
select table_name from user_tables;
创建表语句:
create table 表名(
字段名 字段类型 not null primary kry,
字段名 字段类型
);
as关键字 :复制表:
create table stu2 as select * from stu;
scott:普通用户
插入数据:
insert into 表名 values(字段1,字段2,字段3…);
修改字段数据类型:
alter table 表名 modify (字段名 字段类型);
修改字段名
alter table 表名 rename name to 新表名;
提交: commit
撤销: rollback
约束:
1.主键约束
创建表时创建主键
constraint 主键名 primary key(字段名);
修改表时创建主键:
alter table 表名 add primary key(字段名);
删除主键:
alter table student drop primary key;
2.外键约束:
alter table 表名 add constraint 外键名称 foreign key(字段名) references 关联表名 (字段名);
3.唯一性约束 unique:
添加唯一性约束:
alter table users add constraint 约束名 unique(字段名);
删除唯一性约束:
alter table 表名 drop constraint 约束名;
4.检查约束
添加检查约束:check:
alter table 表名 add constraint 约束名 check(genter in (‘男’,‘女’));
5.默认值约束
alter table 表名 modify 字段名 default ‘指定的默认值’;
6.非空约束:
alter table 表名 modify 字段名 not null;
空约束:
alter table 表名 modify 字段名 null;
修改表结构:
1.修改字段:
alter table 表名 modify(字段名 字段类型 约束);
2.添加字段:
alter table 表名 add(字段名 字段类型 约束);
3.删除字段:
alter table 表名 drop column 字段名;
删除表:
drop table 表名;
查询表中所有的字段:
select * from 表名;
查询指定字段:
select 字段名 from 表名;
查询带伪列的数据:需要给表指定别名 t:
select t.*,t.rowid from 表名 t;
拼接字符串:||
select ‘员工是:’ || 字段名 from 表名;
查询并运算 : + - * / :
select ename,sal + 1000 from 表名;
别名: as
select 字段名 as 姓名 from 表名;
select 字段名 要修改的名字 from 表名;
where条件查询:
查询工资大于8000的员工:
select * from emp where sal>8000;
查询1981年入职的员工:
select * from scott.emp where hiredate between to_date(‘1981-01-01’,‘yyyy-mm-dd’)and
to_date(‘1981-12-31’,‘yyyy-mm-dd’);
把字符串转成日期类型:
to_date(values,format);
to_date(‘1981-10-10’,‘yyyy-mm-dd’);
oracle函数:
函数是数据库的完善程度的重要标识
function_name(column|expression,[arg1,arg2,…])
function_name:函数名
count(exp);
avg(column);
column:参数 字段
expression:字符串或表达式
args:参数列表
oracle的内置函数可以直接被调用
scott.function_name(args);
字符串处理函数String:
UPPER(str):把小写字母转为大写字母
dual:虚表
LOWER(str):把大写字母转换为小写字母
concat(‘str1’,‘str2’):拼接字符串
length(‘asfffaa’):统计字符串长度
substr(‘str’,1,length):截取字符串
replace(‘str’,‘s’,‘b’):替换自定的字符串
to_char(sysdate,‘yyyy-mm-dd’):把日期类型转换成字符串类型
数值函数:Math
round(num):四舍五入方法
mod(num,num2):模运算取余
日期函数:
sysdate:获取当前系统时间
months_between(sysdate,date):获取指定的日期的范围有多少个月
add_months(sysdate,4);添加指定的月份
next_day(sysdate,‘星期四’);下一个星期四是几号
LAST_DAY(sysdate);查看当前月份的最后一天
分组:
关键字:group by
select 列名 from 表名 group by 列名 order by desc;
having子句:把分组函数作为调节的时候,需要使用having子句
分组的原则:
只要一列中有重复的内容的时候,才考虑分组
排序:
order by 列名 asc/desc
asc:升序
desc:降序
子查询:
把一个查询的查询结构作为另一个查询的条件:
select * from emp where emp = (查询语句)
select * from (select * from emp)t where empno = (select empno from emp where ename = ‘’);
注意:所有的子查询必须在()中编写代码
ANY:关键字,针对多个值
ALL :关键字,针对多个值
案例:
–> any 比结果集中最小值大(800,950,1300) > 800都显示
select *from emp where sal>any(select min(sal) from emp group by deptno);
–>all 比结果集中最大值大(800,950,1300) > 1300大的都显示
select * from emp where sal >ALL(select min(sal) from emp group by deptno);
–> any:比里面最大的值要小(800,950,1300) < 1300
select * from emp where sal < any(select min(sal) > any(select min(sal) from emp group by deptno);
–> all:比最小的值要小(800,950,1300) 800
select * from emp where sal < all(select min(sal) from emp group by deptno);

你可能感兴趣的:(orcl数据库)