玩转Oracle(6)
||------- 维护数据完整性 -------||
【约束】
//约束
not null //非空
unique //唯一 不能重复,但可以为空
primary key //主键
foreign key //外键
check //满足条件
//商店售货系统表设计案例(1)
//goods 商品表
goodsid //商品号
goodsname //商品名
unitprice //单价
category //商品类别
provider //供应商
SQL> create table goods(
2 goodsid char(8) primary key,--主键
3 goodsname varchar2(30) ,
4 unitprice number(10,2) check (unitprice>0),--单价必须>0
5 category varchar2(8),
6 provider varchar2(30));
//customer 客户表
customerid //客户号
name //姓名
address //住址
email //电邮
sex //性别
cardid //身份证
SQL> create table sustomer(
2 customerid char(8) primary key,--主键
3 name varchar2(30) not null,--不为空
4 address varchar2(50),
5 email varchar2(50) unique,--不能重复
6 sex char(2) default '男' check(sex in ('男','女')),--默认为男,性别为男或女
7 cardid char(18));
//purchase 购买表
customerid //客户号
goodsid //商品号
nums //购买数量
SQL> create table purchase(
2 custmoerid char(8) references customer(customerid),
3 goodsid char(8) references goods(goodsid),
4 nums number(5) check(nums between 1 and 30));
//要求如下:
1.每个表的主外键;
2.客户的姓名不能为空值;
3.单价必须大于0,购买数量必须1-30之间;
4.电邮不能够重复;
5.客户的性别是男or女,默认为男;
//商店售货系统表设计案例(2)
//增加not null 约束需要使用modify
//增加其他四种约束使用add
1.增加商品名也不能为空
alter table goods modify goodsname not null;
2.增加身份证也不重复
alter table customer add constraint cardunique unique(cardid);
3.增加客户的地址只能是 '海淀','朝阳','东城','西城','通州','崇
相关文档:
什么是合并多行字符串(连接字符串)呢,例如:
SQL> desc test;
Name Type Nullable Default Comments
------- ------------ -------- ------- --------
COUNTRY VARCHAR2(20) Y &nb ......
用sqlplus启动数据库
sqlplus /nolog
SQL> connect system/change_on_install as sysdba
SQL> startup
用sqlplus停止数据库$ORACLE_HOME/bin/sqlplus /nolog
SQL> connect system/change_on_install as sysdba
SQL> shutdown ......
create or replace package Pager
is
type curs is ref cursor;
procedure Pagination
(
inPageSize in integer, --每页记录数
inPageIndex in integer, --当前页数
inTableName in varchar2, --表名
inOrderField in varchar2,--排序字段
inIsOrderBy in varchar2,--排序类别,输入' desc' 或者' asc'
inW ......
RAW,类似于CHAR,声明方式RAW(L),L为长度,以字节为单位,作为数据库列最大2000,作为变量最大32767字节。
LONG RAW,类似于LONG,作为数据库列最大存储2G字节的数据,作为变量最大32760字节
插入raw数据操作:
insert into raw_test values (1, ......
to_date()与24小时制表示法及mm分钟的显示:
一、在使用Oracle的to_date函数来做日期转换时,很多Java程序员也许会直接的采用“yyyy-MM-dd
HH:mm:ss”的格式作为格式进行转换,但是在Oracle中会引起错误:“ORA 01810 格式代码出现两次”。
如:select to_date('2005-01-01 13:14:20','yyyy-MM-d ......