oracle
初始操作
--创建表空间
create tablespace itheima
datafile '/home/oracle/tablespace/itheima.dbf'
size 100m
autoextend on
next 10m;
--删除表空间
drop tablespace itheima
--创建用户
create user itheima
identified by itheima
default tablespace itheima;
--给用户授权
--oracle数据库中常用角色
connect --连接角色
resource --开发者角色
dba --超级管理员角色
--给itheima用户授予dba角色
grant dba to itheima;
--切换到itheima用户
oracle的基本操作
--创建一个person 表
CREATE TABLE person ( pid NUMBER ( 20 ), pname VARCHAR2 ( 10 ) ) -- 修改一个表结构
-- 添加一列
ALTER TABLE person ADD gender NUMBER ( 1 ) ---修改列类型
ALTER TABLE person MODIFY gender CHAR ( 1 ) ---修改列的名称
ALTER TABLE person RENAME COLUMN gender TO sex;
---删除一列
ALTER TABLE person DROP COLUMN sex;
SELECT
*
FROM
person ---添加一条记录
INSERT INTO PERSON ( pid, pname )
VALUES
( 1, '小明' ) ALTER USER ITHEIMA quota 4M ON users;
GRANT UNLIMITED TABLESPACE TO ITHEIMA --- 修改一条记录
UPDATE person
SET pname = '小马'
WHERE
pid = 1 --- 三个删除
--删除表中全部记录
DELETE
FROM
person;
--删除表结构
DROP TABLE person;
--先删除表结构,再次创建表。效果等同于删除表中全部数据
--在数据量大的情况下,尤其在表中索引的情况下,该操作效率高
--索引可以提供查询效率,但是会影响增删改的效率
truncate TABLE person;
出现报错:创建表时会报如下错误:'no privileges on tablespace ‘USERS’
原因在于users表空间中没有为bryan用户提供配额空间(在此默认的表空间为users)
有两种解决方案:
1.为bryan用户在users表空间上设置配额就可以了
alter user bryan quota 4M on users; //quota:配额,限额
2.GRANT UNLIMITED TABLESPACE TO bryan;
序列的使用
----序列不真属于任何一张表,但可以逻辑和表做绑定
----序列:默认从1开始,一次递增,主要用来给主键赋值使用
---dual :虚表,只是为了补全语法,没有任何意义
create sequence s_person;
select s_person.currval from dual;
INSERT INTO PERSON ( pid, pname )
VALUES
( s_person.nextval, '小明' )
select * from PERSON