1.cmd模式连接Oracle
2.表空间
(1)创建默认表空间
create tablespace test1
datafile 'd:\oracle\test1.dbf' --路径
size 10m --大小
autoextend on next 20m --如果内存不够,每次增加20MB内存
maxsize unlimited; --无限增加
(2)临时表空间
create temporary tablespace test2
tempfile 'd:\oracle\test2.dbf'
size 10m
autoextend on next 20m
maxsize unlimited;
(3)删除表空间
drop tablespace test2 including contents and datafiles;
3.用户
说明:用户是由dba创建的:dba最高权限。
新创建的用用户是没有任何权限,给相关权限才能执行相关操作。
(1)创建用户
创建用户的两种方式:
--1.创建用户的同时指定表空间
--2.创建用户不指定表空间。这时候该用户所在的表空间是系统默认表空间users
create user zz --用户名
identified by 123 --指定密码
default tablespace test1 --指定默认表空间
temporary tablespace test2 quota 20m on test1; --指定临时表空间的同时给用户分配内存
(2)给用户分配内存
alter user zz quota unlimited on users;
(3)修改密码
alter user zz identified by 123;
注:dba可以修改任何普通用户的密码
(4)密码过期
alter user zz password expire;
(5)将用户上锁
alter user zz account lock;
(6)将用户解锁
alter user zz account unlock;
(7)删除用户
drop user zz cascade;
注:cascade 用户内存在对象必修加这个参数,否则删除不了
4.权限
(1)授予登录权限
grant create session to zz with admin option;
注:with admin option:允许将权限授予其他用户
(2)收回权限
revoke create session from zz;
(3)多个权限同时授予用户
grant create session,create table to zz;
注:多个权限同时授予,那么每个权限之间逗号隔开
(4)多个权限同时收回
revoke create session,create table from zz;
5.角色: 角色是权限的集合,更方便的赋予用户权限
1.创建角色
create role lx;
2.给角色授权
grant create session,create table to lx;
3.通过角色给用户授权:
grant lx to test;
4.收回角色的权限
revoke create session,create table from lx;
5.收回用户权限
revoke lx from zz;
6.删除角色
drop role lx;
6.dba权限 :最高权限
grant dba to zz;
grant dba to lx;
7.符号和特殊字段
1.算数运算符 + - * /
先乘除后加减,优先括号
select empno,ename,sal,sal+300
from emp;
--原来的表中数据并未改变
2.null 不参加运算 运算值还是null
select ename,comm,comm+300 from emp
3.起别名 (唯一使用双引号的) 使用方法如下 可省略as
select ename as 姓名 from emp;
起别名的注意事项
(1.不能有空格,有的话双引号
(2.区分大小写
(3.别名中特殊符号 必须加双引号
4.连接操作符 || 表里面的数据也会连接
select ename||'薪水'|| sal from emp;
5.原意字符串
select ename|| ' is a ' || job from emp;
6.去重 distinct
select distinct deptno from emp;
7.数据类型
1.字符类型
--char(固定长度,一般不用):name(6) 剩余长度会占用空间,1-2000
--varchar2 可变长度,多余长度会被释放。1-4000
--clob 可变长度 最大4g
2.数值类型
--number 没有指定长度,小数和整数都可以表示
--number(n) 只有一个参数 只能存储整数 -9999-9999
--number(p,s)p代表长度,s代表小数位数 总位数不大于p都满足
--1.s>0:只能存储小数,精确到s位,四舍五入
--2.s<0:表示整数 小数点往左说s位 (5,-2) 153.123->200
--3.s=0 即一个参数
--4.p<s 小于1,小数点右边开始的s-p位必须是0 保留s位
3.日期类型
-- date 年月日时分秒
--timestamp 时间戳
4.default 默认值
8.创建和维护表
1. 两个条件
--有create table权限
--.用户要有内存大小:quota(限额)
2.语法
create table te1(
--字段名 数据类型(长度)
)
3.创建表dossier
create table dossier(
cid number(4) primary key,
cname varchar2(10),
brithday date,
weight number(5,2)
)
4. 给dossier 添加数据
--1.指定具体字段 (oracle只能单条添加数据) 增删改必须事务提交(commit) 不提交 空指针,异常报错
insert into dossier(cid,cname,brithday,weight)
values (1,'zz',to_date('2021-12-8 16:17:30','yyyy-mm-dd hh24:mi:ss'),24.12);
commit;
--2.不指定字段,即插入每个字段 to_date(参数,格式)
insert into dossier
values(2,'aa',to_date('2021-12-08','yyyy-mm-dd'),12.06);
commit;
5.通过子查询创建表
create table dossier1
as
select * from dossier;--相当于复制
--注 子查询创建表,如果子查询中有表达式必须起别名
create table dept10
as
select *from dept
where deptno=10;
6.引用其他用户的表
语法
select * from 用户.表;
7.修改表
--1.添加新字段 在所有字段的后面
alter table dossier
add (sex varchar2(10));
alter table dossier
add (age number(4) default 18);
select * from dossier;
--2.修改字段 字段只能调大不能变小
alter table dossier
modify(sex varchar(20))
--修改默认值 默认值的修改不会影响已经存在的行,只会影响新增加的行。
alter table dossier
modify(sex default '男');
commit;
--3.删除列(字段) drop
--1.字段中有没有数据都可以删除
--2.表中至少保留一列
--3.列中删除后不能恢复
--4.被外键引用的不能删除
alter table dossier drop column sex;
8.重命名表
--语法 rename 原有列名 to 新列名
rename dossier to dossier1;
9.截断表,删除表
--只有表的创建者或用于 any drop table权限的可以删除
truncate table dossier;--DDL语句 删除表中所有数据且 不可以回滚 释放存储空间
delete -- DML 可以删除指定记录,不释放存储空间,可以回滚
drop --删除的是数据库对象
9.SQL语言分为五大类:
DQL (Data Query Language-数据查询语言) - Select 查询语句不存在提交问题。
DML (Data Manipulation Language-数据操作语言) - Insert、Update、Delete,实现数据的“增删改。”
DDL (Data Definition Language-数据定义语言) - Create、Alter、Drop,实现表格的“增删改”。
DTL (Transaction Control Language-事务控制语言) - Commit、Rollback事务提交、回滚语句。
DCL (Data Control Language-数据控制语言) - Grant、Revoke 权限语句。