---切换用户
--privileges 权限
--管理员登录
conn sys/oracle@orcl as sysdba;
--给scott账户解锁 alter修改 account账户 unlock 解锁
alter user scott account unlock;
--解锁完了就可以用 scott账户了
conn scott/tiger@orcl as normal;
conn scott/tiger@orcl;
--认识单词
/*
create [kriː'eɪt] 创建 drop[drɒp] 删除 alter['ɔːltə] 修改
insert[ɪn'sɜːt] 增加 delete [dɪ'liːt] 删除 update [ʌp'deɪt] 修改 select 查询
from [frɒm] 从.. where [weə] 条件 set [set] 赋值设置 into [ˈɪntu] 深入
*/
创建变
班级表 grade 班级名
学生表 student 姓名 年龄 性别 班级
要求: 满足三范式 必须都有主键 学生需要外键
create table grade(gid number(8) , gname varchar2(20) )
create table student(sid number(8),sname varchar2(30),age number(8),sex char(2),gid number(8) );
班级表中 新增一个地址栏
alter table grade add address varchar2(30)
每张表中插入3-5条数据
insert into grade values(1,'计算机一班','图书馆一楼');
insert into grade values(2,'计算机二班','图书馆二楼');
insert into grade values(3,'计算机三班','图书馆三楼');
insert into student values(1,'张三',20,'男',1);
insert into student values(2,'李四',21,'女',1);
insert into student values(3,'王五',20,'男',2);
insert into student values(4,'贾六',21,'女',2);
insert into student values(5,'田七',20,'男',3);
insert into student values(6,'王八',21,'女',3);
将 王五的 年龄修改为20 性别修改为女
update student set age=22 , sex='男' where sname='王五' ;
查询出3班的所有学生
select * from student where gid=3
查询出年龄是20岁的女生
select * from student where age=20 and sex='女'
删除所有的男生
delete from student where sex='男'
删除学生表和班级表
drop table grade;
drop table student;
-----name is already used by an existing object
-----存在着一个被使用的名字 说明已经有该对象了
---- 一个用户方案就是一个数据库
---- 创建一个新的用户方案
--1 管理员登录
conn sys/oracle@orcl as sysdba;
--2 创建用户
---先删除用户 drop user godyang cascade
---cascade 级联
---create user username identified by password
--创建一个用户 用户名字是 godyang 验证 密码是 g123
create user godyang identified by g123;
--3 授权
--grant privilege to user;
--grant 授予 connect连接(登录),resource资源(创建,删除,修改..) to 给 godyang
grant connect,resource to godyang;
---user用户 GODYANG lacks 缺乏 CREATE SESSION 会话(登录) privilege(权限) ;logon登录 denied 被阻止;
---创建一个老师表
create table teacher(
tid number(2) ,
tname varchar2(5)
);
--alter 修改 table表 teacher老师 modify修改 tname varchar2(20);
alter table teacher modify tname varchar2(20);
-- quoted 逗号 string 字符串 not 不能 properly 恰当地 terminated 结束
insert into teacher( tname ) values( '黄老师' );
insert into teacher( tid ) values(2 );
insert into teacher(tid,tname) values(4,'高老师');
insert into teacher values(4,'高老师');
--提交 commit --将缓存中的操作数据提交到数据表中
commit
--数据库类型
--字符
char --定长 char(10) 10个字符以内所占的空间都是10
varchar2 ---变长 varchar2(10) 10个字符以内所占的空间是根据字符个数实际所占空间
--数字
number -- 整数 小数
number(4) --最大值9999 number(2)最大值99
number(5,2)--最大值999.99 number(8,3)最大值99999.99
--时间
date 日期
timestamp 日期
--大文本
clob 大文本 最大值4G 新闻内容 小说 简介....
--大对象
blob 二进制文件 相片 压缩文件....
---创建部门 和员工表
部门[部门号,名称]
员工[员工号,姓名,性别,出生日期,工资,奖金,工龄,籍贯,学历]
--1 满足三范式
--2 有主外键
--3 给数据类型
create table dept(
did number(8),
dname varchar2(20)
);
create table emp(
eid number(8), --主键
ename varchar2(30),--姓名
sex char(2),--性别
birth date , --出生日期
salary number(9,2),--工资
comm number(8,2),--奖金
workYears number(3),--工龄
nation varchar2(30),--籍贯
degree varchar2(30),--学历
did number(8)
);
--4 在部门表上 加房间号
alter table dept add roomNo number(8);
--5 将 姓名的长度修改为40
alter table emp modify ename varchar2(40);
--11 将学历去掉
alter table emp drop column degree;
--6 每张表插入3-5条数据
insert into dept(did,dname,roomno) values(1,'业务部',3001);
insert into dept(did,dname,roomno) values(2,'技术部',3002);
insert into dept(did,dname,roomno) values(3,'人事部',3003);
insert into emp values(1,'张三','男',to_date('2000-1-1','yyyy-mm-dd') ,8000,2000,2,'江西',2);
insert into emp values(2,'李四','女',to_date('2000-2-1','yyyy-mm-dd') ,2000,1000,1,'江西',2);
insert into emp values(3,'王五','女',to_date('2000-8-1','yyyy-mm-dd') ,4000,500,3,'江西',1);
insert into emp values(4,'贾六','男',to_date('2000-3-1','yyyy-mm-dd') ,5000,200,2,'江西',1);
insert into emp values(5,'赵七','女',to_date('2000-6-1','yyyy-mm-dd') ,3000,1000,3,'江西',3);
--7 将工资低于3000的员工工资增加500
update emp set salary=salary+500 where salary<3000;
--8 将姓名为王五的人 工资增加2000,奖金增加1000,工龄增加2年
update emp set salary=salary+2000,comm=comm+1000 ,workYears=workYears+2 where ename='王五';
--9 删除贾六
delete from emp where ename='贾六' ;
--10 查询出工资大于5000所有员工
select * from emp where salary >5000;
--privileges 权限
--管理员登录
conn sys/oracle@orcl as sysdba;
--给scott账户解锁 alter修改 account账户 unlock 解锁
alter user scott account unlock;
--解锁完了就可以用 scott账户了
conn scott/tiger@orcl as normal;
conn scott/tiger@orcl;
--认识单词
/*
create [kriː'eɪt] 创建 drop[drɒp] 删除 alter['ɔːltə] 修改
insert[ɪn'sɜːt] 增加 delete [dɪ'liːt] 删除 update [ʌp'deɪt] 修改 select 查询
from [frɒm] 从.. where [weə] 条件 set [set] 赋值设置 into [ˈɪntu] 深入
*/
创建变
班级表 grade 班级名
学生表 student 姓名 年龄 性别 班级
要求: 满足三范式 必须都有主键 学生需要外键
create table grade(gid number(8) , gname varchar2(20) )
create table student(sid number(8),sname varchar2(30),age number(8),sex char(2),gid number(8) );
班级表中 新增一个地址栏
alter table grade add address varchar2(30)
每张表中插入3-5条数据
insert into grade values(1,'计算机一班','图书馆一楼');
insert into grade values(2,'计算机二班','图书馆二楼');
insert into grade values(3,'计算机三班','图书馆三楼');
insert into student values(1,'张三',20,'男',1);
insert into student values(2,'李四',21,'女',1);
insert into student values(3,'王五',20,'男',2);
insert into student values(4,'贾六',21,'女',2);
insert into student values(5,'田七',20,'男',3);
insert into student values(6,'王八',21,'女',3);
将 王五的 年龄修改为20 性别修改为女
update student set age=22 , sex='男' where sname='王五' ;
查询出3班的所有学生
select * from student where gid=3
查询出年龄是20岁的女生
select * from student where age=20 and sex='女'
删除所有的男生
delete from student where sex='男'
删除学生表和班级表
drop table grade;
drop table student;
-----name is already used by an existing object
-----存在着一个被使用的名字 说明已经有该对象了
---- 一个用户方案就是一个数据库
---- 创建一个新的用户方案
--1 管理员登录
conn sys/oracle@orcl as sysdba;
--2 创建用户
---先删除用户 drop user godyang cascade
---cascade 级联
---create user username identified by password
--创建一个用户 用户名字是 godyang 验证 密码是 g123
create user godyang identified by g123;
--3 授权
--grant privilege to user;
--grant 授予 connect连接(登录),resource资源(创建,删除,修改..) to 给 godyang
grant connect,resource to godyang;
---user用户 GODYANG lacks 缺乏 CREATE SESSION 会话(登录) privilege(权限) ;logon登录 denied 被阻止;
---创建一个老师表
create table teacher(
tid number(2) ,
tname varchar2(5)
);
--alter 修改 table表 teacher老师 modify修改 tname varchar2(20);
alter table teacher modify tname varchar2(20);
-- quoted 逗号 string 字符串 not 不能 properly 恰当地 terminated 结束
insert into teacher( tname ) values( '黄老师' );
insert into teacher( tid ) values(2 );
insert into teacher(tid,tname) values(4,'高老师');
insert into teacher values(4,'高老师');
--提交 commit --将缓存中的操作数据提交到数据表中
commit
--数据库类型
--字符
char --定长 char(10) 10个字符以内所占的空间都是10
varchar2 ---变长 varchar2(10) 10个字符以内所占的空间是根据字符个数实际所占空间
--数字
number -- 整数 小数
number(4) --最大值9999 number(2)最大值99
number(5,2)--最大值999.99 number(8,3)最大值99999.99
--时间
date 日期
timestamp 日期
--大文本
clob 大文本 最大值4G 新闻内容 小说 简介....
--大对象
blob 二进制文件 相片 压缩文件....
---创建部门 和员工表
部门[部门号,名称]
员工[员工号,姓名,性别,出生日期,工资,奖金,工龄,籍贯,学历]
--1 满足三范式
--2 有主外键
--3 给数据类型
create table dept(
did number(8),
dname varchar2(20)
);
create table emp(
eid number(8), --主键
ename varchar2(30),--姓名
sex char(2),--性别
birth date , --出生日期
salary number(9,2),--工资
comm number(8,2),--奖金
workYears number(3),--工龄
nation varchar2(30),--籍贯
degree varchar2(30),--学历
did number(8)
);
--4 在部门表上 加房间号
alter table dept add roomNo number(8);
--5 将 姓名的长度修改为40
alter table emp modify ename varchar2(40);
--11 将学历去掉
alter table emp drop column degree;
--6 每张表插入3-5条数据
insert into dept(did,dname,roomno) values(1,'业务部',3001);
insert into dept(did,dname,roomno) values(2,'技术部',3002);
insert into dept(did,dname,roomno) values(3,'人事部',3003);
insert into emp values(1,'张三','男',to_date('2000-1-1','yyyy-mm-dd') ,8000,2000,2,'江西',2);
insert into emp values(2,'李四','女',to_date('2000-2-1','yyyy-mm-dd') ,2000,1000,1,'江西',2);
insert into emp values(3,'王五','女',to_date('2000-8-1','yyyy-mm-dd') ,4000,500,3,'江西',1);
insert into emp values(4,'贾六','男',to_date('2000-3-1','yyyy-mm-dd') ,5000,200,2,'江西',1);
insert into emp values(5,'赵七','女',to_date('2000-6-1','yyyy-mm-dd') ,3000,1000,3,'江西',3);
--7 将工资低于3000的员工工资增加500
update emp set salary=salary+500 where salary<3000;
--8 将姓名为王五的人 工资增加2000,奖金增加1000,工龄增加2年
update emp set salary=salary+2000,comm=comm+1000 ,workYears=workYears+2 where ename='王五';
--9 删除贾六
delete from emp where ename='贾六' ;
--10 查询出工资大于5000所有员工
select * from emp where salary >5000;