java+oracle+web(第四天) 第一张数据库表 supplier_t 表建立完成

时间:2021-08-30 06:07:57

20150509

数据库的建立:

创建cracle的新用户:igo,

然后获取igo的相关的权限。

对数据库的完整的操作的所有权限。

用pl/sql登陆的时候。报错:oci.dll无法初始化。

打开首选项发现:之前配置的目录信息已经丢失了。

oracle主目录:G:\JavaSoft\oracle\app\Administrator\product\instantclient_11_2

oci库:G:\JavaSoft\oracle\app\Administrator\product\instantclient_11_2\oci.dll

然后启动正常。

设置权限参考博客http://www.cnblogs.com/shlcn/archive/2011/07/21/2112879.html

设置流程:igo用户有自己的表空间,

cmd命令登入:

sqlplus / as sysdba

创建自己的表空间。

createtablespace igo_data_tablespace datafile 'G:\igo\igo_tablespace\igo.dbf' size50m autoextend on next 50m maxsize 20480m extent management local;

创建成功;可以查看:

select * from dba_data_files;

给这个表空间添加igo用户

 alter user igo default tablespace igo_data_tablespace;

 

给igo赋予操作这个表空间的所有权限:

GRANT CONNECT TO igo; 

GRANT RESOURCE TO igo; 

GRANT dba TO igo;

建立第一张表:

权限配置表

知识点补充:主键和外键:


1、主键是能唯一的标识表中的每一行,就是说这一列非空且值不重复,可以指定为主键;作用是用来强制约束表中的每一行数据的唯一性;
2、外键是b表中的某一列引用的值来源于a表中的主键列。也是约束b表中的外键列的值必须取致a表中的主键列值,不是其中的值就不能插入b表中。可以形成a表b表的联系,保持数据的约束和关联性。

3、主键、非空、唯一关键字可以参考:

http://www.cnblogs.com/CodingArt/articles/1621921.html

 

 

表名 supplier_t

字段名称

类型

长度

描述

是否非空

supplier_id

number(8)

8位数字

供应商编号,从10000开始自动增加;

主键

supplier_name

varchar2(200)

200字符

供应商的名字

非空

bank_name

varchar2(100)

100字符

银行全称

 

bank_card

varchar2(60)

60字符

银行卡号

 

supplier_address

varchar2(240)

240字符

供应商的地址

 

supplier_type

varchar2(20)

20字符

供应商状态/DISABLED/AILABLE

非空,可以自动置AILABLE

email_address

varchar2(60)

60字符

供应商邮件地址;多个以分号隔开

 

create_data

date

 sysdate

创建日期

 自动取系统时间

 

--创建供应商信息表的语句。

supplier_id是自动增加的,实现方法可以参考:

http://blog.csdn.net/xiaojunhu/article/details/2213190

实现的功能:供应商的ID信息从10000开始自增。

--创建供应商信息表的语句。

CREATE TABLE supplier_t(

       supplier_id NUMBER(8)PRIMARY KEY ,

                   supplier_name VARCHAR2(200)NOT NULL,             

                   supplier_address VARCHAR2(240),

                   email_address VARCHAR2(60),

                   bank_name VARCHAR2(100),

                   bank_card VARCHAR2(20),

                   supplier_type VARCHAR2(10)DEFAULT('AILABLE') not NULL,

                   create_date DATEDEFAULT(SYSDATE)

);

--创建supplier_id自动增加的逻辑

--第一步为 supplier_id建立序列

drop sequence ADD_SUPPLIER_ID;--这个只执行一次,为了保证没有重复的序列

create sequence ADD_SUPPLIER_ID

 increment by 1

 start with 9999

 maxvalue99999999

 nocache;

--插入数据

INSERT INTO supplier_t(supplier_id,supplier_name,supplier_address,email_address,bank_name,bank_card,supplier_type)

values(

(ADD_SUPPLIER_ID.NEXTVAL),

'方方国际家私连锁有限公司深圳分公司',

'中国广东省深圳市龙岗区天安云谷B栋北座705',

'hanfangfang@ffjs.com',

'招商银行',

'6224558866885588'

,'AILABLE')

 

--查询表

SELECT* FROM supplier_t;

 

--查询序列

select SEQUENCE_NAME,dbas.*fromdba_sequences dbas

WHERE dbas.sequence_nameLIKE 'SUPPLIER_ID%'

 

--查询触发器

SELECT OBJECT_NAMEFROM DBA_OBJECTS WHERE OBJECT_TYPE='TRIGGER'ANDOWNER='IGO'

 

--查询序列

SELECT SUPPLIER_ID.NEXTVALFROM dual;

 

--删除触发器

DROP TRIGGER SUPPLIER_ID

 

--删除序列

DROP SEQUENCE SUPPLIER_ID

 

--检查创建是否成功

SELECT  to_char(st.create_date,'YYYY/MM/DDHH24:MI:SS'), st.*FROM supplier_t st

 

--检查这个表属于哪个用户

select* from all_tableswhere all_tables.TABLE_NAME='SUPPLIER_T';

 

--删除表

drop TABLE IGO.SUPPLIER_T;

 

20150514追加:

供应商的名字至少是不可以重复的,

那么需要加上限制字段:

参考博客:

http://blog.csdn.net/kobe24shou/article/details/9989217

添加的命令行:

alter table supplier_t add constraint name_uk unique (supplier_name); 

如果再次添加名字为空或者名字重复,将无法插入到表中。