SQL server(微软)、Oracle、MySQL
常用的Oracle指令:
启动/关闭服务
net start oracleserviceORCL
net stop oracleserviceORCL
采用暂时不登录的模式启动sqlplus
sqlplus /nolog
身份包括:sysdba/sysoper/normal(默认),@连接字符串是多个用户连接服务器用的
conn 用户名/密码@连接字符串 as 身份;
修改密码(修改别的用户):
alter user 用户名 identified by 新密码;
修改密码(修改当前用户):
password
记得用;结尾
将某个用户上锁/解锁
alter user 用户名 account lock/unlock;
一个数据库可以有多个表空间,大小为所属表空间大小的总和;
一个表空间可以有多个数据文件,大小为所属数据文件大小的总和;
一个数据文件只能从属于一个表空间;
表空间
创建名为“tptest”的表空间,(里面包含一个数据文件“tptest01.dbf”,初始大小10m,不够则再新增10m,最大是1G)
create tablespace tptest datafile ‘d:/tptest01.dbf’ size 10m autoextend on next 10m maxsize 1G;
在表空间“tptest”里面添加一个新的文件“tptest02.dbf”
alter tablespace tptest add datafile ‘d:/tptest02.dbf’ size 10m;
删除表空间tpname
drop tablespace tpname including contents and datafiles;
查询表空间
desc dba_data_files
//这样可以查询这个表有什么字段
用来查询系统控制文件:
select name from v$controlfile;
启动和关闭oracle数据库过程:
shutdown
→ nomount(未连上数据库,只是启动了实例)
→ mount (连上数据库,但为打开数据库,读控制文件)
→ open(读取所有文件)
误删了数据文件,数据库无法启动?
- 要去控制文件里将误删的文件删掉
①先是startup mount
(会提示:ORACLE例程已经启动,证明mount这步没问题)
②alter database open;
(会提示具体缺少的数据文件)
③alter database datafile ‘d:/tptest01.dbf’ offline drop;
(会提示数据库已更改)
(测试数据库完好的最好办法是直接创建一张新表)
一个数据库 = 多个表空间
- 一个表空间 = 多个表
- 一个表 = 一个段
- 一个段 = 多个数据区
- 一个数据区 = 多个数据块
- 一个数据块 = 多个OS块
然而,每一个数据文件 = 多个OS块
每一个最小的oracle的存储快 – oracle的数据块:16k
每一个连续的数据存储空间:数据区
用户
(一般没权限的,需要)
grant connect,resource to shopping_user;
创建用户(密码为abc)
create user 用户名 identified by abc;
创建用户(在默认表空间,密码为abc)
create user test_user2 identified by abc default tablespace tptest quota 100m on tptest padword expire;
删除用户
drop user 用户名;
删除用户(包括该用户创建的所有表)
drop user 用户名 cascade;
将“建表权限”授权给用户test_user
grant create table to test_user;
从用户test_user的在t4这张表的“插入权限”回收(对象权限)
revoke insert on t4 from test_user;
创建角色
create role r_teach
Connect(登录执行基本函数)、
Resoource(建立用户自己的数据对象)
DBA(所有系统权限、给其他用户授予全部权限的能力)
删除角色
drop role r_teach
将test_user2用户加入到connect、resource这两个角色里
grant connect,resource to test_user2;
概要文件profile
修改概要文件权限:
show parameter resource_limit
alter system set resource_limit
dba_tables : 数据库中所有的表对象
all_tables : 当前登录的用户能够访问的表对象
user_tables :当前用户所拥有的表对象
创建一张表t4,并将这张表放大到表空间users里
create table t4(
“`
)
tablespace users;
完整性约束:
1、实体完整性:主键 primary key
2、域完整性:数据类型、日期型
3、引用完整性:外键
【学生表:学号、姓名…
成绩表:学号、课程号、成绩】
4、自定义的完整性
性别:char、check
成绩:number
>
create table t_orders(
oid char(8) primary key,–主键(唯一 + 非空)uiid char(6) references t_user(uiid),–外键写法1–列级约束
uiid1 char(6) constraint fk_uiid references t_user(uiid),–外键写法2有约束名的外键
uiid2 char(6),
foreign key(uiid2) constraint fk_uiid2 references t_user(uiid),–外键写法3customer varchar2(20) not null,–只能做列级约束
odate date default sysdate,–默认值
dddd char(8) unique,–唯一,不能重复
onum number(2) check(onum>0),–自定义约束