oracle的从入门到精通第一篇(oracle的基本概念与crud)

概念

什么是oracle?

Oracle 数据库 = 神谕 = 它的第一个客户 = CIA

什么是sqlplus?

sqlplus = 让我们和数据库进行交流的工具
regedit = 注册表
services.msc = 服务

oracle几大语言(SQL |DDL|DML|DQL|DCL|TCL)

SQL = Structured Query Language = 结构化查询语言

DDL = Data Defination Language = 数据定义语言

create 创建 alter 修改 drop 删除 truncate 截断

DML = Data Manipulation Language = 数据操纵语言

insert 插入 delete 删除 update 更新

DQL = Data Query Language = 数据查询语言

select 查询

DCL = Data Control Language = 数据控制语言

grant 授权 revoke 取消授权

TCL = Transaction Control Language = 事务控制语言

commit 提交 rollback 回滚 savepoint 保存还原点

oracle用户相关操作(加锁|解锁|授权|取消授权)

给用户解锁:

alter user scott account unlock;

给用户加锁:

alter user scott account lock;

创建新用户:

create user ET1912 identified by etoak;

给用户修改密码:

alter user scott identified by et;

给用户赋予权限:

grant dba to scott;

给用户取消授权:

revoke dba from ET1912;

删除用户:

drop user ET1912;

查看当前用户:

show user;

切换用户:

conn 用户名/密码;

小练习:

在scott用户下创建一个新用户ET,在ET下创建一个新用户ET1912,并连接

oracle当中的数据类型:

字符型:

varchar2(20) 可变长度 0-4000个字节
char(20) 固定长度 0-2000个字节
char(1) 男/女 1/2
long

数值型:

number()
number(5)
number(5,2)
number(5,-2)

日期型:

date
timestamp 时间戳(包含毫秒数)

oracle表相关操作

创建一张表:

create table student(
name varchar2(20),
birthday date,
sal number(5)
);

练习:
创建一张teacher表,字段:老师姓名tname,老师薪资tsal(薪资必须六位数及以上),生日tbirthday

查看当前用户下有哪些表:

select table_name from user_tables;

查看当前表结构:

desc student;

修改表名:

alter table student rename to stu;

修改字段名:

alter table stu rename column sal to salary;

建表以后 增加字段:

alter table stu add email varchar2(20);

建表以后 修改数据类型:

alter table stu modify email varchar2(50);

建表以后 删除字段:

alter table stu drop column email;

建表以后 删除表:


drop table student3;                
drop table student2 purge;     
truncate table student2;     

drop和truncate的区别?

1.表结构
2.表数据
3.表空间

练习:
1.把teacher表名改为tea
2.新增字段aihao
3.aihao字段名修改为hobby
4.删除字段hobby

查询数据:select

select * from student;
select name from student;
select name,salary from student;
select name,salary from student where salary >= 8000;

插入数据:insert

insert into student values('ET1912_zs',sysdate,5000);
insert into student (name,salary) values('ET1912_ls',6000);

删除数据:delete

delete from student;
delete from student where name = 'ET1912_zs1';

更新数据:update

update student set salary = salary + 1000;
update student set salary = salary + 1000 where name = 'ET1912_zs';
update student set name = 'ET1912_zs1',salary = salary + 1000 where name = 'ET1912_zs' and salary = 7000;

小练习:

1.插入数据:
1)张老师,当前时间,12222
2)周老师, ,13333
3)卢老师,当前时间,14444
2.更新数据:
张老师和卢老师薪资涨30%

like:
%:代表任意位的任意字符
_:代表一位上的任意字符

select name,salary from student where name like 'ET1912%';
select name,salary from student where name like '%ET%';
select name,salary from student where name like 'ET1912_';
select name,salary from student where name like 'ET1912_%';

练习:
1.插入数据
1)张老师,当前时间,15555
2.更新数据
姓张的老师和姓卢的老师薪资涨30%

escape:逃离符

通过后指定一个字符位进行逃离,来保证like之后的字符看作是普通字符

select name,salary from student where name like 'ET1912,_%' escape ',';
select name,salary from student where name like 'ET1912._.%' escape '.';

条件:
and:并且 同时成立
or:或者 有一个条件成立即可
between and:闭合区间

关系比较:

< >= <= !=
<>

运算符:

      • / mod(x,y)

课后作业

–1查询20号部门的所有员工信息
–2查询所有工种为CLERK的员工的工号、员工名和部门名。
–3查询奖金(COMM)高于工资(SAL)的员工信息
–4查询奖金高于工资的20%的员工信息
–5查询10号部门中工种为MANAGER和20号部门中工种为CLERK的员工的信息
–6查询所有工种不是MANAGER和CLERK,且工资大于或等于2000的员工的详细信息
–7查询有奖金的员工的不同工种
–8查询所有员工 工资和奖金的和
–9查询没有奖金或奖金低于100的员工信息
–10查询各月倒数第2天入职的员工信息
–11查询员工工龄大于或等于10年的员工信息
–12查询员工信息,要求以首字母大写的方式显示所有员工的姓名
–13查询员工名正好为6个字符的员工的信息
–14查询员工名字中不包含字母“S”员工
–15查询员工姓名的第2个字母为“M”的员工信息
–16查询所有员工姓名的前3个字符
–17查询所有员工的姓名,如果包含字母“S”,则用“s”替换
–18查询员工的姓名和入职日期,并按入职日期从先到后进行排列
–19显示所有的姓名、工种、工资和奖金,按工种降序排列,若工种相同则按工资升序排列
–20显示所有员工的姓名、入职的年份和月份,若入职日期所在的月份排序,若月份相同则按入职的年份排序
–21查询在2月份入职的所有员工信息
–22查询所有员工入职以来的工作期限,用“月**日”的形式表示。(不做)
–23查询至少有一个员工的部门信息
–24查询工资比SMITH员工工资高的所有员工信息
–25查询所有员工的姓名及其直接上级的姓名
–26查询入职日期早于其直接上级领导的所有员工信息
–27查询所有部门及其员工信息,包括那些没有员工的部门
–28查询所有工种为CLERK的员工的姓名及其部门名称
–29查询最低工资大于2500的各种工作

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值