黑马57 Oracle基础 - day01

----- 04 创建表空间、创建用户及用户授权

-- 创建表空间
create tablespace zsyy
datafile 'c:\zsyy.dbf'
size 100m
autoextend on
next 10m;
-- 删除表空间
drop tablespace zsyy;
drop tablespace itheima;
--- 重新创建表空间
create tablespace bhzsyy ---bhzsyy 为表空间名称
datafile 'c:\Develop\Oracle\datafile\bhzsyy.dbf' ---datafile 指定表空间对应的数据文件
size 100m ---size 后定义的是表空间的初始大小
autoextend on ---autoextend on 自动增长 ,当表空间存储都占满时,自动增长
next 10m; ---next 后指定的是一次自动增长的大小。
-- 删除表空间
drop tablespace bhzsyy;
-- 创建用户(必须设置密码,表空间,权限 才能登陆)
create user cgs
-- 删除用户
-- DROP USER cgs CASCADE;
-- 设置用户密码
identified by cgs
-- 设置所属表空间
default tablespace bhzsyy;
-- 若修改某一个用户密码, 修改用户口令的格式为:
-- alter user 用户名 identified by 新密码
alter user cgs identified by 123;
-- 给用户授权
-- oracle数据库中常用角色
connect --连接角色,基本角色
resource --开发者角色
dba --超级管理员
-- 给cgs授权超级管理员
grant dba to cgs;
-- 切换到cgs用户下(Session-logoff-all ---> Session-logon-cgs)

 

----- 05 数据类型和表的创建

-- 创建一个person表
create table person(
pid number(20),
pname varchar2(10),
pbirthday date,
gender number(1) default 1
);

 

----- 06 修改表结构

-- 添加一列
alter table person add (address varchar2(20));
-- 修改列类型
alter table person modify (address char(10));-- char长度固定
-- 修改列名称
alter table person rename column address to addr;
-- 删除一列
alter table person drop column addr;

 

----- 07 数据的增删改

-- 查询表中记录
select * from person;
-- 添加一条记录
insert into person (pid, pname) values (1,'小明');
commit;
---修改一条姓名记录
update person set pname='小马', pbirthday=to_date((to_char(sysdate, 'yyyy-MM-dd')), 'yyyy-MM-dd'), pgender=2 where pid = 1;
commit;
---修改一条性别记录
update person set pgender = 1 where pid = 1;
commit;
---修改一条生日记录
update person set pbirthday = to_date('08-21-2003','MM-dd-yyyy') where pid = 1;
commit;
---删除一行记录
DELETE FROM person WHERE pid=1;
commit;
-- 添加一行记录
insert into person values
(2, '张三', to_date('1999-12-22', 'yyyy-MM-dd'), 1);
commit;
-- 添加今天日期时间的一行记录
insert into person values
(3,'李四', sysdate, 1);
commit;
-- 添加今天日期的一行记录
insert into person values
(4,'王五', to_date((to_char(sysdate, 'yyyy-MM-dd')), 'yyyy-MM-dd'), 1);
commit;

 

---- 插入字符串乱码的解决办法

-- 1.查看服务器端编码
   select userenv('language') from dual;
   我实际查到的结果为:AMERICAN_AMERICA.ZHS16GBK
-- 2.执行语句 select * from V$NLS_PARAMETERS 
   查看第一行中PARAMETER项中为NLS_LANGUAGE 对应的VALUE项中是否和第一步得到的值一样。
   如果不是,需要设置环境变量.
   否则PLSQL客户端使用的编码和服务器端编码不一致,插入中文时就会出现乱码.
-- 3.设置环境变量
   计算机->属性->高级系统设置->环境变量->新建
   设置变量名:NLS_LANG,变量值:第1步查到的值, 我的是    AMERICAN_AMERICA.ZHS16GBK
-- 4.重新启动PLSQL,插入数据正常

 

---- 三个删除

--删除表中全部记录
delete from person;
--删除表结构
drop table person;
--先删除表,再次创建表。效果等同于删除表中全部记录。
--在数据量大的情况下,尤其在表中带有索引的情况下,该操作效率高。
--索引可以提供查询效率,但是会影响增删改效率。
truncate table person;

 

------------------------------------------------------------

----- 08 序列的使用:
----- 默认从1开始,以此递增,主要用来给主键赋值使用。
----- 序列不真的属于仁和一张表,但是可以逻辑和表做绑定。
----- dual:虚表,知识为了补全语法,没有任何意义。

create sequence s_person;
select s_person.nextval from dual;
select s_person.currval from dual;

---- [INCREMENT BY n] 每次增加n(默认增加1)
---- [START WITH n] 从n开始
---- [{MAXVALUE/ MINVALUE n|NOMAXVALUE}] 最大值/最小值
---- [{CYCLE|NOCYCLE}] 循环/不循环
---- [{CACHE n|NOCACHE}]; 缓存

-- 添加一条需要自增的主键记录
insert into person (pid, pname) values (s_person.nextval, '小明');
commit;
select * from person;

 



转载于:https://www.cnblogs.com/chengguangsong/p/11316898.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值