優化MySchool資料庫設計

2021-07-25 20:49:46 字數 2740 閱讀 4883

use master --

go if exists (select * from sysdatabases where name = 'myschool')

drop database myschool

create database z

on primary(

--name='z',

filename = 'e:\zl.mdf',

size=10,

filegrowth =10%

)log on(

--name='zl',

filename='e:\z.ldf',

size=10,

maxsize=50,

filegrowth=1

)-- 學生表

use z--

gocreate table student

(studentno int not null, --非空 學號

loginpwd nvarchar(20) not null ,

studentname nvarchar(20) not null , --學生姓名 ,非空

*** bit not null , --性別,取值0或1

gradeid int not null,--班級編號 非空

phone nvarchar null, --聯絡** 允許為空

address nvarchar(255) null ,--住址 允許為空

borndate datetime not null ,--出生日期 非空

eamil nvarchar(50) null, --郵箱 允許為空

identitycard varchar(18) not null, --身份證號 非空

) go

--班級表

use z

go create table grade

(gradeid int identity(1,1),--班級班號 自增1

gradename nvarchar(50) not null, --年紀名稱 非空)go

--增添資料

--方案一

insert into student(studentno,loginpwd,studentname,*** ,gradeid,phone,address,borndate,eamil,identitycard)

values(1,'aaaaa','劉',1,1,'','','1998-8-8','','123456789012345678')

insert into student(studentno,loginpwd,studentname,*** ,gradeid,phone,address,borndate,eamil,identitycard)

values(2,'aaaaa','劉',2,1,'','','1998-8-8','','223456789012345678')

insert into student(studentno,loginpwd,studentname,*** ,gradeid,phone,address,borndate,eamil,identitycard)

values(3,'aaaaa','劉',3,1,'','','1998-8-8','','323456789012345678')

--方案二

insert into grade(gradename)select ('s1') union

select ('s2') union

select ('y2')

--方案三

insert into grade (gradename)

values('s11'),('s22'),('s333')

--新增主鍵約束

alter table grade

add constraint pk_studentno primary key (gradeid)

-- 新增主鍵約束 (gradeid)

alter table student

add constraint pk_sid primary key (studentno)--唯一約束

alter table grade

add constraint pk_gradeid primary key (gradeid)--唯一約束

--新增預設約束

alter table student

add constraint uq_address default('位址不詳') for address

--新增外來鍵約束

alter table student

add constraint fk_grade_student_cid foreign key (cid)

references grade (gradeid)

--新增檢查約束

alter table student

add constraint ck_borndate check (borndate>='1998-01-01')

--刪除約束

alter table 表名

drop constraint 約束名

--alter table student

drop constraint uq_address

--刪除

--delete 表中的記錄

--drop 結構

drop table student --從表或者叫子表

資料庫優化 資料庫設計優化

一 索引優化 1.首先索引不是越多越好,要視情況而定。因為索引會降低insert和update的效率 insert和update有時可能會重建索引。2.乙個表的索參數量最好不要超過6個,擇優而建。3.專案上線後,根據使用者的查詢條件字段稍微調整資料庫中的字段索引。二 分表 1.縱切 根據表字段來且分...

優化MySchool 第二章 資料庫的實現

1.使用 create database 語句可以建立資料庫,使用 drop database 語句可以刪除資料庫 2.使用 create table 語句可以建立資料庫的表結構,使用 drop table 語句可以刪除表結構 3.使用alter table 語句可以建立一下約束 主鍵約束 prim...

優化資料庫設計

資料庫設計步驟 1.需求分析 1.收集資訊 2.標識實體 1.標識實體的屬性 2.標識實體的關係 2.繪製e r圖 e 實體r 關係 3.繪製資料庫模型圖 4.根據sql行程資料庫 第一 二 三正規化 1 第一正規化 1nf 無重複的列 所謂第一正規化 1nf 是指資料庫表的每一列都是不可分割的基本...