久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

數(shù)據(jù)庫(kù)設(shè)計(jì)

 時(shí)間劇毒 2019-05-21

數(shù)據(jù)庫(kù)設(shè)計(jì)

1.數(shù)據(jù)庫(kù)設(shè)計(jì)的步驟

第一步:需求分析(收集信息)

第二步:繪制 E-R 圖 (標(biāo)示實(shí)體 ,,找到實(shí)體的屬性

第三步:將 E-R 圖轉(zhuǎn)換成數(shù)據(jù)庫(kù)模型圖

第四步:將數(shù)據(jù)庫(kù)模型圖轉(zhuǎn)換成數(shù)據(jù)表

2.如何繪制 E-R 圖
矩形:實(shí)體
橢圓形:屬性
菱形:關(guān)系

3.如何繪制數(shù)據(jù)庫(kù)模型圖
PowerDesigner :選擇 PhysicalModel
如有有人不小心關(guān)掉了 Platter,,對(duì)工具欄點(diǎn)擊右鍵,勾選 Platter 即可,。
當(dāng)我們將數(shù)據(jù)庫(kù)模型圖設(shè)計(jì)完畢后,,可以通過(guò)菜單中的 database下的
GenerateDatabase來(lái)生成對(duì)應(yīng)的 sql

4.三大范式規(guī)范數(shù)據(jù)庫(kù)設(shè)計(jì)
第一范式:保證每列的原子性,,不可再被拆分
第二范式:在滿(mǎn)足第一范式的基礎(chǔ)上,,一張表只能描述一件事情
第三范式:在滿(mǎn)足第二范式的基礎(chǔ)上,,除了主鍵列之外其他列都要直接依賴(lài)于
要在規(guī)范化和性能之間取一個(gè)平衡

5.T-SQL語(yǔ)句回顧(其中[]中的表示可省略)

1.添加數(shù)據(jù)

 insert [into] 表名 (列1,列2,...) values(值1,值2,...)

2.修改數(shù)據(jù)

 update 表名 set 列1=值1,列2=值2,... where (條件)

3.查詢(xún)數(shù)據(jù)

select 列1,列2,... from 表名 where (條件) order by 列名

4.刪除數(shù)據(jù)

delete from 表名 where (條件)

6.使用SQL語(yǔ)句創(chuàng)建和刪除數(shù)據(jù)庫(kù)

  1.創(chuàng)建數(shù)據(jù)庫(kù)([]表示可以省略,{}表示必需的部分,<>表示解釋說(shuō)明)

 語(yǔ)法:

   create detabase 數(shù)據(jù)庫(kù)名

    on [primary]

     (

     <數(shù)據(jù)文件參數(shù)> [,......n] [<文件組參數(shù)>]

     )

     [log on]

    (

    {<日志文件參數(shù)> [,......n]}

    )

 數(shù)據(jù)文件的具體參數(shù)如下:

 ([name=邏輯文件名]

 filename=物理文件名

 [,size=大小]

 [,maxsize={最大容量|unlimited}]

 [,filengrowth=增長(zhǎng)量]) [,.....n]

 文件組的具體參數(shù)如下:

  filegroup 文件組名 <文件參數(shù)> [,......n]

eg:

復(fù)制代碼

create database stuDB 
on  primary  -- 默認(rèn)就屬于primary文件組,可省略(/*--數(shù)據(jù)文件的具體描述--*/
    name='stuDB_data',  -- 主數(shù)據(jù)文件的邏輯名稱(chēng)
    filename='D:\stuDB_data.mdf', -- 主數(shù)據(jù)文件的物理名稱(chēng)
    size=5mb, --主數(shù)據(jù)文件的初始大小
    maxsize=100mb, -- 主數(shù)據(jù)文件增長(zhǎng)的最大值
    filegrowth=15%--主數(shù)據(jù)文件的增長(zhǎng)率)log on(/*--日志文件的具體描述,各參數(shù)含義同上--*/
    name='stuDB_log',
    filename='D:\stuDB_log.ldf',
    size=2mb,
    filegrowth=1mb
)

復(fù)制代碼

2.刪除數(shù)據(jù)庫(kù)

語(yǔ)法:

 drop database 數(shù)據(jù)庫(kù)名

那么如何刪除這個(gè)數(shù)據(jù)庫(kù)呢,,SQL Server將數(shù)據(jù)庫(kù)的清單存放在master系統(tǒng)數(shù)據(jù)庫(kù)的sysdatabases表中,只需要查看該表是否存在于該數(shù)據(jù)庫(kù)中就可以,這樣在創(chuàng)建數(shù)據(jù)庫(kù)的時(shí)候也可以先判斷,再創(chuàng)建

了,,語(yǔ)句如下:

use master -- 設(shè)置當(dāng)前數(shù)據(jù)庫(kù)為master,以便訪問(wèn)sysdatabases表goif exists(select * from sysdatabases where name='stuDB')drop database stuDBgo

 7.使用SQL語(yǔ)句創(chuàng)建和刪除表

   1.回顧一下我們SQL Server 中的數(shù)據(jù)類(lèi)型(轉(zhuǎn)載自http://blog.sina.com.cn/zhanshiqi)

第一大類(lèi):整數(shù)數(shù)據(jù)

bit:bit數(shù)據(jù)類(lèi)型代表0,1或NULL,就是表示true,false.占用1byte.
int:以4個(gè)字節(jié)來(lái)存儲(chǔ)正負(fù)數(shù).可存儲(chǔ)范圍為:-2^31至2^31-1.
smallint:以2個(gè)字節(jié)來(lái)存儲(chǔ)正負(fù)數(shù).存儲(chǔ)范圍為:-2^15至2^15-1
tinyint: 是最小的整數(shù)類(lèi)型,僅用1字節(jié),范圍:0至此^8-1


第二大類(lèi):精確數(shù)值數(shù)據(jù)

numeric:表示的數(shù)字可以達(dá)到38位,存儲(chǔ)數(shù)據(jù)時(shí)所用的字節(jié)數(shù)目會(huì)隨著使用權(quán)用位數(shù)的多少變化.
decimal:和numeric差不多

第三大類(lèi):近似浮點(diǎn)數(shù)值數(shù)據(jù)

float:用8個(gè)字節(jié)來(lái)存儲(chǔ)數(shù)據(jù).最多可為53位.范圍為:-1.79E+308至1.79E+308.
real:位數(shù)為24,用4個(gè)字節(jié),數(shù)字范圍:-3.04E+38至3.04E+38

第四大類(lèi):日期時(shí)間數(shù)據(jù)

datatime:表示時(shí)間范圍可以表示從1753/1/1至9999/12/31,時(shí)間可以表示到3.33/1000秒.使用8個(gè)字節(jié).
smalldatetime:表示時(shí)間范圍可以表示從1900/1/1至2079/12/31.使用4個(gè)字節(jié).

第五大類(lèi):字符串?dāng)?shù)據(jù)

char:長(zhǎng)度是設(shè)定的,最短為1字節(jié),最長(zhǎng)為8000個(gè)字節(jié).不足的長(zhǎng)度會(huì)用空白補(bǔ)上.
varchar:長(zhǎng)度也是設(shè)定的,最短為1字節(jié),最長(zhǎng)為8000個(gè)字節(jié),尾部的空白會(huì)去掉.
text:長(zhǎng)寬也是設(shè)定的,最長(zhǎng)可以存放2G的數(shù)據(jù).

第六大類(lèi):Unincode字符串?dāng)?shù)據(jù)

nchar:長(zhǎng)度是設(shè)定的,最短為1字節(jié),最長(zhǎng)為4000個(gè)字節(jié).不足的長(zhǎng)度會(huì)用空白補(bǔ)上.儲(chǔ)存一個(gè)字符需要2個(gè)字節(jié).
nvarchar:長(zhǎng)度是設(shè)定的,最短為1字節(jié),最長(zhǎng)為4000個(gè)字節(jié).尾部的空白會(huì)去掉.儲(chǔ)存一個(gè)字符需要2個(gè)字節(jié).
ntext:長(zhǎng)度是設(shè)定的,最短為1字節(jié),最長(zhǎng)為2G.尾部的空白會(huì)去掉,儲(chǔ)存一個(gè)字符需要2個(gè)字節(jié).

第七大類(lèi):貨幣數(shù)據(jù)類(lèi)型

money:記錄金額范圍為:-92233720368577.5808至92233720368577.5807.需要8 個(gè)字節(jié).
smallmoney:記錄金額范圍為:-214748.3648至214748.36487.需要4個(gè)字節(jié).

第八大類(lèi):標(biāo)記數(shù)據(jù)

timestamp:該數(shù)據(jù)類(lèi)型在每一個(gè)表中是唯一的!當(dāng)表中的一個(gè)記錄更改時(shí),該記錄的timestamp字段會(huì)自動(dòng)更新.
uniqueidentifier:用于識(shí)別數(shù)據(jù)庫(kù)里面許多個(gè)表的唯一一個(gè)記錄.

第九大類(lèi):二進(jìn)制碼字符串?dāng)?shù)據(jù)

binary:固定長(zhǎng)度的二進(jìn)制碼字符串字段,最短為1,最長(zhǎng)為8000.
varbinary:與binary差異為數(shù)據(jù)尾部是00時(shí),varbinary會(huì)將其去掉
image:為可變長(zhǎng)度的二進(jìn)制碼字符串,最長(zhǎng)2G.

 2.創(chuàng)建表

 語(yǔ)法:

   create table 表名

   (

     列1 數(shù)據(jù)類(lèi)型 列的特征,

     列2 數(shù)據(jù)類(lèi)型 列的特征,

     ......

    )

  **:數(shù)據(jù)庫(kù)中表的清單存放在數(shù)據(jù)庫(kù)的系統(tǒng)表sysobjects中.

復(fù)制代碼

use StuDBgo 
if exists(select * from sysobjects where name='stuMarks')
drop table stuMarks
create table stuMarks ( ExamNo int identity(1,1) primary key, stuNo char(6) not null, writtenExam int not null, LabExam int not null)go

復(fù)制代碼

其中,,列屬性"identity(起始值,遞增量)" 表示"ExamNo"列為自動(dòng)編號(hào), 也稱(chēng)為標(biāo)識(shí)列

  3.刪除表

   語(yǔ)法:

 drop table 表名

use StuDBgo 
if exists(select * from sysobjects where name='stuMarks')drop table stuMarks

8.使用SQL語(yǔ)句創(chuàng)建和刪除約束

 1.回顧一下SQL Server 中有關(guān)數(shù)據(jù)完整性

  (1)實(shí)體完整性:唯一確定表中一行記錄

  (2)域完整性:表中特定數(shù)據(jù)的有效性,以保不會(huì)輸入無(wú)效的數(shù)值

  (3)引用完整性:插入或刪除記錄時(shí),維護(hù)表之間定義的關(guān)系

  2.添加約束

  語(yǔ)法:

    alter table 表名

    add constraint 約束名 約束類(lèi)型 具體的約束說(shuō)明

上述語(yǔ)法表示修改某個(gè)表,并在其中添加某個(gè)約束.其中,約束名的命名規(guī)則推薦采用"約束類(lèi)型_約束列的形式

eg:

為學(xué)號(hào)(StudentNo)添加主鍵約束,約束名推薦取名"PK_StudentNo;

...唯一約束=>"UQ_IdentityCard;

...默認(rèn)約束=>"DF_Address;

...檢查約束=>"CK_BornDate;

...外鍵約束=>"FK_StudentNo.

--添加外鍵約束(主表Student和Result建立關(guān)系,關(guān)聯(lián)StudentNo)alter table Resultadd constraint FK_StudentNo  foreign key(StudentNo) references Student(StudentNo)Go

復(fù)制代碼

--添加主鍵約束(將StudentNo作為主鍵)alter table Studentadd constraint PK_StudentNo primary key (Student)--添加唯一約束(身份證)alter table Studentadd constraint UQ_IdentityCard unique (IdentityCard)--添加默認(rèn)約束(不填地址,則默認(rèn)為"地址不詳")alter table Studentadd constraint DF_Address  default('地址不詳') for Address--添加檢查約束alter table Studentadd constraint CK_BornDate ckeck (BornDate>='1980-01-01')

復(fù)制代碼

3.刪除約束

  語(yǔ)法:

   alter table 表名

   drop constraint 約束名

eg:

--Student表中地址列默認(rèn)約束的語(yǔ)句如下alter table Studentdrop constraint DF_Address

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多