创建表空间
1 create tablespace qnhouse
2 --表空间文件路径
3 datafile 'E:\qnhost\qnhouse.dbf'
4 --表空间文件大小
5 size 100M;
创建用户
1 create user qnhouse
2 --登录密码
3 identified by qnhouse
4 --默认的表空间
5 default tablespace qnhouse;
为用户授权
1 --RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。
2 --CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。
3 grant connect,resource to qnhouse;
建表与约束
1 --区域表
2 create table DISTRICT
3 (
4 id NUMBER not null,
5 name VARCHAR2(50) not null,
6 --约束
7 --主键约束
8 constraint PK_district_id primary key(id)
9 );
10
11 --街道表
12 create table STREET
13 (
14 id NUMBER not null,
15 name VARCHAR2(50),
16 district_id NUMBER, --区域id
17 --约束
18 constraint PK_STREET_id primary key(id),
19 --外键约束
20 constraint FK_STREET_district_id foreign key (district_id) references district(id)
21 );
22
23 --户型表
24 create table housetype
25 (
26 id NUMBER,
27 name VARCHAR2(50),
28 --约束
29 constraint PK_housetype_id primary key(id)
30 );
31
32 --用户表
33 create table USERS
34 (
35 id NUMBER not null,
36 name VARCHAR2(50),
37 password VARCHAR2(50),
38 telephone VARCHAR2(15),
39 username VARCHAR2(50),
40 --默认值
41 isadmin VARCHAR2(5) default 0 not null,
42 --约束
43 constraint PK_USERS_id primary key(id),
44 --唯一约束
45 constraint UQ_users_name unique(name),
46 --检查约束,密码不能少于6位
47 constraint CK_users_password check (length(password)>=6)
48 );
49
50 --房屋信息表
51 create table HOUSE
52 (
53 id NUMBER,
54 user_id NUMBER, --用户ID
55 type_id NUMBER, --户型ID
56 title NVARCHAR2(50),
57 description NVARCHAR2(2000),
58 price NUMBER,
59 pubdate DATE,
60 floorage NUMBER,
61 contact VARCHAR2(100),
62 street_id NUMBER, --街道ID
63 --约束
64 constraint PK_HOUSE_id primary key(id),
65 constraint FK_HOUSE_user_id foreign key (user_id) references users(id),
66 constraint FK_HOUSE_type_id foreign key (type_id) references housetype (id),
67 constraint FK_HOUSE_street_id foreign key (street_id) references STREET(id)
68 );
序列
1 --序列
2 create sequence seq_qnhouse
3 --递增值
4 increment by 1
5 --开始值
6 START WITH 1000;
自增触发器
1 --用户主键自增
2 create or replace trigger tri_users_id
3 before insert on users
4 for each row
5 begin
6 --用序列的值填到主键
7 select seq_qnhost.nextval into :new.id from dual;
8 end;
9 /
转载请注明:IT运维空间 » 批处理 » 简单的oracle sql 语句
继续浏览有关 数据库技术文章/教程 的文章
发表评论