1.创建数据库
1.1.sys用户登录
用户名:sys
密码:system
登录方式:dba
1.2.创建表空间
脚本:create tablespace zdy_tablespace datafile ‘C:\app\zhangdengyu\oradata\zdy\zdy_data.dbf’ size 500M
1.3.创建用户
脚本:create user langzi identified by 1234 default tablespace zdy_tablespace;
1.4.赋权限
脚本:
a. grant connect,resource to langzi;
b. grant dba to langzi;
1.5.撤销权限
基本语法同grant,关键字为revoke
1.6.权限说明
DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。
RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。
CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。
对于普通用户:授予connect, resource权限。
对于DBA管理用户:授予connect,resource, dba权限。
2.创建表
2.1.脚本:
CREATE TABLE 表名 (列名 类型(大小) DEFAULT’默认值’ 约束条件,
… …);
2.2. 约束条件:
2.2.1.null | not null
a.说明:用于定义列的空值约束。
b.NOT NULL 约束强制列不接受 NULL 值。
c.NOT NULL 约束强制字段始终包含值。
d.语法:
CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
2.2.2.UNIQUE
a. 说明:约束唯一标识数据库表中的每条记录。
b.语法:
CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT uc_PersonID UNIQUE (Id_P)
)
c.SQL Server / Oracle特殊语法:
CREATE TABLE Persons
(
Id_P int NOT NULL UNIQUE,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
2.2.3.PRIMARY KEY
a. 说明:约束唯一标识数据库表中的每条记录。
b.语法:
CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (Id_P)
)
c.SQL Server / Oracle特殊语法:
CREATE TABLE Persons
(
Id_P int NOT NULL PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
2.2.4.FOREIGN KEY
a. 说明:外键。
b.语法:
CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
Id_P int,
PRIMARY KEY (O_Id),
CONSTRAINT fk_PerOrders FOREIGN KEY (Id_P) REFERENCES Persons(Id_P)
)
c.SQL Server / Oracle特殊语法:
CREATE TABLE Orders
(
O_Id int NOT NULL PRIMARY KEY,
OrderNo int NOT NULL,
Id_P int FOREIGN KEY REFERENCES Persons(Id_P)
)
2.2.5.CHECK
a. 说明:用于指定基本表中的每一条记录必须满足的条件,可以对基本表在各个列上的值做进一步的约束,如成绩列的取值既不能大于100,也不能小于0。
b.语法:
CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT chk_Person CHECK (Id_P>0 AND City=’Sandnes’)
)
c.SQL Server / Oracle特殊语法:
CREATE TABLE Persons
(
Id_P int NOT NULL CHECK (Id_P>0),
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)