濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > J2EE 開發(fā)購(gòu)物網(wǎng)站 經(jīng)驗(yàn)篇 - 建表

J2EE 開發(fā)購(gòu)物網(wǎng)站 經(jīng)驗(yàn)篇 - 建表

熱門標(biāo)簽:商丘百應(yīng)電話機(jī)器人有沒有效果 地圖標(biāo)注人員兼職 怎樣把地圖標(biāo)注出來 騰訊地圖標(biāo)注商戶改名注冊(cè)入駐 開封便宜外呼系統(tǒng)報(bào)價(jià) 淮南騰訊地圖標(biāo)注 黃石智能營(yíng)銷電銷機(jī)器人效果 漯河辦理400電話 電話機(jī)器人的特色和創(chuàng)新

GO ON 繼續(xù)進(jìn)階!!(本貼個(gè)人認(rèn)為對(duì)初學(xué)者很有幫助,請(qǐng)大家認(rèn)真看。因時(shí)間倉(cāng)促,如有錯(cuò)誤請(qǐng)指正)
SQL*PLUS基礎(chǔ)
在上一貼中,我們掌握了些基本的oracle操作,如創(chuàng)建、授權(quán)用戶,創(chuàng)建數(shù)據(jù)庫(kù)等。在OEM(Oracle Enterprise Manager)可視化的窗口環(huán)境中,雖然我們也可以很方便地做這些事,但是事實(shí)上,用SQL語(yǔ)言書寫在開發(fā)上更有效率??!oracle提供的SQL*Plus就是個(gè)不錯(cuò)的工具,如果大家喜歡窗口的開發(fā)環(huán)境,用SQLPlus Worksheet也行!下面說點(diǎn)基本的西西! SQL(Structure Query Language)語(yǔ)言是結(jié)構(gòu)化查詢語(yǔ)言,是數(shù)據(jù)庫(kù)的核心語(yǔ)言,是面向集合的描述性非過程化語(yǔ)言。
SQL語(yǔ)言共分為四大類:數(shù)據(jù)查詢語(yǔ)言DQL,數(shù)據(jù)操縱語(yǔ)言DML,數(shù)據(jù)定義語(yǔ)言DDL,數(shù)據(jù)庫(kù)控制語(yǔ)言DCL。 1.數(shù)據(jù)查詢語(yǔ)言DQL的基本結(jié)構(gòu)是由select子句,from子句,where子句組成的查詢塊:
select 字段名表> from 表或視圖名> where 查詢條件> 2.數(shù)據(jù)操縱語(yǔ)言DML完成在數(shù)據(jù)庫(kù)中確定、修改、添加、刪除某一數(shù)據(jù)值的任務(wù)(以下是部分常用DML語(yǔ)句):
insert    增加數(shù)據(jù)行到表
delete    從表中刪除數(shù)據(jù)行
Update    更改表中數(shù)據(jù) 3.數(shù)據(jù)定義語(yǔ)言DDL完成定義數(shù)據(jù)庫(kù)的結(jié)構(gòu),包括數(shù)據(jù)庫(kù)本身、數(shù)據(jù)表、目錄、視圖等數(shù)據(jù)庫(kù)元素(以下是部分常用DDL語(yǔ)句)
create table    創(chuàng)建表
create index    創(chuàng)建索引
create view    創(chuàng)建視圖
alter table    增加表列,重定義表列,更改存儲(chǔ)分配
drop table    刪除表
drop index    刪除索引 4.數(shù)據(jù)庫(kù)控制語(yǔ)言DCL用來授予或回收訪問數(shù)據(jù)庫(kù)的某種特權(quán),并控制數(shù)據(jù)庫(kù)操縱事務(wù)發(fā)生的時(shí)間及效果,對(duì)數(shù)據(jù)庫(kù)實(shí)行監(jiān)視等。如:
grant        將權(quán)限或角色授予用戶或其它角色
revoke        回收用戶權(quán)限
roll        回滾,是當(dāng)某個(gè)對(duì)話更改了數(shù)據(jù)庫(kù)中的數(shù)據(jù)后,由于某種原因用戶不想提交此更改時(shí),oracle所采取的保護(hù)操作。這是一個(gè)把信息恢復(fù)到用戶使update、insert、delete前最后提交的狀態(tài)。
commit        提交。在完成數(shù)據(jù)庫(kù)的插入,刪除和修改操作時(shí),只有當(dāng)事務(wù)提交到數(shù)據(jù)庫(kù)才算完成,有提交前只有操作數(shù)據(jù)庫(kù)的本人才能看到,別人只有在最后提交完成才可以看到。 接下來,我們?cè)赟QL*Plus中實(shí)戰(zhàn)一下,為我們下面將要做的打好基礎(chǔ)。
用system登陸到SQL*Plus后,我們做如下操作(這次沒有截圖,有詳細(xì)的說明)
SQL>create user maxuan identified by max; #創(chuàng)建口令為max的用戶maxuan
SQL>grant connect,resource to maxuan; #為用戶maxuan授權(quán)
SQL>conn maxuan/max; #以用戶maxuan進(jìn)行連接
L>create table test(a number); #建立一個(gè)名為test的表,只有字段名為A的一列,數(shù)據(jù)類型為數(shù)字
SQL>insert into test values(1); #插入一條記錄
SQL>select * from test; #查詢記錄,此時(shí)A列的第一行為1
SQL>update test set a=2; #更改記錄,此時(shí)A列的第一行已改為2
SQL>commit; #提交
SQL>delete from test; #刪除test表中所有的記錄,此時(shí)test表中沒有記錄
SQL>roll; #回滾到提交前,此時(shí)再查詢test表,A列第一行值又回復(fù)到2 oracle的數(shù)據(jù)類型
在數(shù)據(jù)庫(kù)中創(chuàng)建數(shù)據(jù)表的時(shí)候,我們需要定義表中所有字段的類型,數(shù)據(jù)類型大致分為:character,numberic,date,lob和raw等,這些是最基本的數(shù)據(jù)類型。當(dāng)然在oracle中也允許自定義數(shù)據(jù)類型! 在oracle中提供的character數(shù)據(jù)類型:
char(size>):固定長(zhǎng)度字符串,最大長(zhǎng)度為2000字節(jié),如果不指定長(zhǎng)充,缺省為1個(gè)字節(jié)長(zhǎng)。
varchar2(size>):可變長(zhǎng)度的字符串,最大長(zhǎng)度為4000字節(jié),具體定義時(shí)指明最大長(zhǎng)度,這咱類型可以放數(shù)字、字母以及ASCII碼字符集(或者EBCDIC等數(shù)據(jù)庫(kù)系統(tǒng)接受的字符集標(biāo)準(zhǔn))中的所有符號(hào)。如果數(shù)據(jù)長(zhǎng)度沒有達(dá)到最大值,oracle會(huì)根據(jù)數(shù)據(jù)大小自動(dòng)調(diào)節(jié)字段長(zhǎng)度。是 最長(zhǎng)用的數(shù)據(jù)類型。
nchar(size>):根據(jù)字符集而定的固定長(zhǎng)度字符串,最大長(zhǎng)度2000字節(jié)。
nvarchar2(size>):根據(jù)字符集而定的可變長(zhǎng)度字符串,最大長(zhǎng)度4000字節(jié)。
long:可變長(zhǎng)字符列,最大長(zhǎng)度限制為2GB,用于不需要作字符串搜索的長(zhǎng)串?dāng)?shù)據(jù)。此類型是一個(gè)遺留下來的而且將來不會(huì)被支持的數(shù)據(jù)類型,逐漸被BLOB,CLOB,NCLOB等大的數(shù)據(jù)類型所取代。 numberic數(shù)據(jù)類型用來存儲(chǔ)負(fù)的和正的整數(shù),分?jǐn)?shù)和浮點(diǎn)型數(shù)據(jù),在oracle中提供的numberic數(shù)據(jù)類型:
number(m>,n>):可變長(zhǎng)的數(shù)值列,允許0、正值及負(fù)值,m是所有的有效數(shù)字的位數(shù),n是小數(shù)點(diǎn)以后的位數(shù)。 在oracle中提供的date數(shù)據(jù)類型:
date:缺省格式是dd-mon-yy(日-月-年) 在oracle中提供的lob數(shù)據(jù)類型:
blob、clob、nclob:三種大型對(duì)象(lob),用來保存較大的圖形文件或帶格式的文本文件,如word文檔,以及音頻、視頻等非文本文件,最大長(zhǎng)充是4GB。暈些數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫(kù)內(nèi)部保存。
bfile:在數(shù)據(jù)庫(kù)外部保存的大型二進(jìn)制對(duì)象文件,最大長(zhǎng)度是4GB,這種外部的LOB類型,通過數(shù)據(jù)庫(kù)記錄變化情況,但是數(shù)據(jù)的具體保存是在數(shù)據(jù)庫(kù)外部進(jìn)行的。 在oracle中提供的raw數(shù)據(jù)類型:
raw(size>):可變長(zhǎng)二進(jìn)制數(shù)據(jù),具體定義字段時(shí)必須指明最大長(zhǎng)度,這種格式用來保存較小的圖形文件或帶格式的文本文件,它也是一種較老的數(shù)據(jù)類型,將被lob數(shù)據(jù)類型所取代。
long raw:可變長(zhǎng)二進(jìn)制數(shù)據(jù),最大長(zhǎng)度是2GB,可以用來保存較大的圖形或帶格式的文本文件,以及音頻、視頻等非文本文件,這也是一種較老的數(shù)據(jù)類型,將被lob數(shù)據(jù)類型所取代。 其它的數(shù)據(jù)類型:
rowid:這是oracle數(shù)據(jù)表中的一個(gè)偽例,它是數(shù)據(jù)表中每行數(shù)據(jù)內(nèi)在的唯一標(biāo)識(shí)
integer:整數(shù)類型
創(chuàng)建購(gòu)物網(wǎng)站后臺(tái)數(shù)據(jù)庫(kù) 現(xiàn)在我們回到用J2EE體系開發(fā)購(gòu)物網(wǎng)站的主題,開始實(shí)戰(zhàn)建購(gòu)物網(wǎng)站的后臺(tái)數(shù)據(jù)庫(kù)。
為了實(shí)現(xiàn)購(gòu)物網(wǎng)站的基本的功能,我們需要建立四個(gè)表:商品列表(products)、商品類型表(item)、訂單列表(orders)和管理員列表(admin)。表結(jié)構(gòu)如下所示: item表結(jié)構(gòu)(商品類型表)
字段名稱    數(shù)據(jù)類型        允許空    主鍵/外鍵    備注   
type_id    INTEGER(自動(dòng)編號(hào))    否    主鍵    商品類別ID標(biāo)記
type    varchar2(30)    否        商品類別名稱 product表結(jié)構(gòu)(商品列表)
字段名稱    數(shù)據(jù)類型        允許空    主鍵/外鍵    備注
product_id    INTEGER(自動(dòng)編號(hào))    否    主鍵    商品ID標(biāo)記
title    varchar2(30)    否        商品名稱
type_id    INTEGER        否    外鍵    商品類別標(biāo)記
info    varchar2(80)    是        商品簡(jiǎn)介
price    number(16,2)    否        商品價(jià)格 orders表結(jié)構(gòu)(訂單列表)
字段名稱    數(shù)據(jù)類型        允許空    主鍵/外鍵    備注
order_id    INTEGER(自動(dòng)編號(hào))    否    主鍵    訂單ID標(biāo)記
name    varchar2(20)    否        顧客姓名
address    varchar2(100)    是        發(fā)貨地址
tel    number(16)    是        聯(lián)系電話
email    varchar2(30)    否        聯(lián)系email
btime    date        是        訂購(gòu)日期
product_id    INTEGER        否    外鍵    商品標(biāo)記
uword    varchar2(100)    是        顧客留言 admin表結(jié)構(gòu)(管理員列表)
字段名稱    數(shù)據(jù)類型        允許空    主鍵/外鍵    備注
admin_id    INTEGER(自動(dòng)編號(hào))    否    主鍵    管理員ID標(biāo)記
adminname    varchar2(20)    否        管理員名稱
password    varchar2(20)    否        管理員密碼 設(shè)計(jì)完表結(jié)構(gòu)后,我們就要開始創(chuàng)建了。
創(chuàng)建表我想已經(jīng)不是什么難事了,那么我們要注意的是product、item、orders這三個(gè)表之間的關(guān)聯(lián),還有自動(dòng)編號(hào)。 下面是完整的SQL語(yǔ)句,在后面我會(huì)給出詳細(xì)的說明,你可以在SQL*Plus里對(duì)照著輸入,也可以將它存為SQL腳本文件,在SQL*Plus或SQLPlus Worksheet里執(zhí)行。當(dāng)然也可以把代碼直接拷貝到SQL*Plus里執(zhí)行! 代碼拷貝框
rem ///BY MAXUAN 開始/// create table item( type_id integer not null, type varchar2(30), constraint item_pk primary key(type_id) ); create table product( product_id integer not null, title varchar2(30) not null, type_id integer not null, info varchar2(80), price number(16,2) not null, constraint product_pk primary key (product_id), constraint product_fk foreign key(type_id) references item(type_id) ); create table orders( order_id integer not null, name varchar2(20) not null, address varchar2(100), tel number(16), email varchar2(30) not null, btime date, product_id integer not null, uword varchar2(100), constraint orders_pk primary key(order_id), constraint orders_fk foreign key(product_id) references product(product_id) ); create table admin( admin_id integer not null, adminname varchar2(20) not null, password varchar2(20) not null, constraint admin_pk primary key(admin_id) ); create sequence type_id increment by 1 start with 1; create sequence product_id increment by 1 start with 1; create sequence order_id increment by 1 start with 1; create sequence admin_id increment by 1 start with 1; rem ///BY MAXUAN 結(jié)束///
[Ctrl+A 全部選擇 然后拷貝] 說明一:建立表之間的關(guān)聯(lián)
product、item、orders三個(gè)表通過公共域,通常稱為鍵域(Key Field)進(jìn)行關(guān)聯(lián),存在兩種類型的鍵:主鍵(Primary key)和外部鍵(Foreign key)。主鍵使表中的數(shù)據(jù)行保持唯一,在表product中,product_id為主鍵,表orders中也包含有product_id,此時(shí)的product_id就是外部鍵。一個(gè)表的外部鍵從其它表中獲取信息??纯瓷厦娴腟QL語(yǔ)句,應(yīng)該會(huì)了吧! 說明二:關(guān)于自動(dòng)編號(hào)
在access中有自動(dòng)編號(hào)的數(shù)據(jù)類型,MSSQL和MYSQL也都有自動(dòng)增長(zhǎng)的數(shù)據(jù)類型,插入記錄時(shí)不用操作此字段,會(huì)自動(dòng)獲得數(shù)據(jù)值,而oracle沒有自動(dòng)增長(zhǎng)的數(shù)據(jù)類型,我們需要建立一個(gè)自動(dòng)增長(zhǎng)的序列號(hào),插入記錄時(shí)要把序列號(hào)的下一個(gè)值賦于此字段,可以預(yù)見的是,有此功能,我們可以把數(shù)據(jù)從ACCESS、MSSQL或MYSQL遷移到oracle了!
create sequence type_id increment by 1 start with 1;
這句中,type_id為序列號(hào)的名稱,每次增長(zhǎng)為1,起始序號(hào)為1。 好了,咱們的數(shù)據(jù)庫(kù)已經(jīng)建好了,而且從中也了解到一些基本的相關(guān)知識(shí),關(guān)于本人的用J2EE開發(fā)購(gòu)物網(wǎng)站之二oracle篇到此結(jié)束,如有什么疑問請(qǐng)留言!!
在接下的第三篇weblogic中,本人將繼續(xù)把個(gè)人心血經(jīng)驗(yàn)無償奉上,希望大家能從中有所收獲??!謝謝支持!
PS:寫得真累,快趕上出書了!!
您可能感興趣的文章:
  • J2EE驗(yàn)證碼圖片如何生成和點(diǎn)擊刷新驗(yàn)證碼
  • 分享J2EE的13種核心技術(shù)
  • JDK、J2EE、J2SE、J2ME四個(gè)易混淆概念區(qū)分
  • 圖解Eclipse j2ee開發(fā)環(huán)境的搭建過程
  • 經(jīng)常聽朋友說什么J2EE,終于知道點(diǎn)什么是J2EE了,汗一個(gè)
  • MyEclipse5.0M1注冊(cè)碼+eclipse3.2[J2EE]
  • 實(shí)戰(zhàn) J2EE 開發(fā)購(gòu)物網(wǎng)站 - 創(chuàng)建數(shù)據(jù)庫(kù)
  • J2ee 高并發(fā)情況下監(jiān)聽器實(shí)例詳解

標(biāo)簽:馬鞍山 亳州 拉薩 武威 岳陽(yáng) 鄭州 紅河 大興安嶺

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《J2EE 開發(fā)購(gòu)物網(wǎng)站 經(jīng)驗(yàn)篇 - 建表》,本文關(guān)鍵詞  J2EE,開發(fā),購(gòu)物網(wǎng)站,經(jīng)驗(yàn),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《J2EE 開發(fā)購(gòu)物網(wǎng)站 經(jīng)驗(yàn)篇 - 建表》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于J2EE 開發(fā)購(gòu)物網(wǎng)站 經(jīng)驗(yàn)篇 - 建表的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    桐柏县| 江永县| 万山特区| 兖州市| 苗栗县| 清流县| 盐亭县| 读书| 和硕县| 揭阳市| 瑞丽市| 西华县| 绥阳县| 泸州市| 广宗县| 蒲江县| 株洲市| 天津市| 绥芬河市| 文登市| 稷山县| 搜索| 三门县| 精河县| 南宫市| 潞西市| 开江县| 西平县| 布尔津县| 富民县| 东乌珠穆沁旗| 邮箱| 通化县| 仁化县| 河北区| 伊吾县| 武冈市| 原平市| 乌鲁木齐县| 衡阳市| 商城县|