前言
??個人主頁:?? :???初階牛???
??推薦專欄: ?????? c語言初階
??個人信條: ??知行合一
??本篇簡介:>:
本篇記錄一下牛牛在學校學習的sql serve數(shù)據(jù)庫知識,內(nèi)容比較基礎適合,適合數(shù)據(jù)庫初學者學習,希望對大家有些幫助,一起加油吧!
一、通過sql語句實現(xiàn)
??1.1 創(chuàng)建數(shù)據(jù)庫
創(chuàng)建數(shù)據(jù)庫模板:
create database 數(shù)據(jù)庫名稱 --創(chuàng)建數(shù)據(jù)庫
on primary
(
name --數(shù)據(jù)庫的邏輯名稱
filename
--物理存放位置及物理文件名稱(Student_info.mdf就是在磁盤上顯示的名稱)
size --設置數(shù)據(jù)文件初始大小
maxsize --設置最大限制
filegrowth --設置主數(shù)據(jù)文件增長幅度
)
log on --定義事務日志文件
(
name --邏輯名稱
filename --物理存放位置及物理文件名稱
size= --設置事務日志文件初始大小
maxsize --設置最大限制為
filegrowth --設置事務日志增長幅度
)
還是范例看的更清楚,那就上栗子吧!
??栗子:
按要求創(chuàng)建一個數(shù)據(jù)庫
具體參數(shù)如下表:
參數(shù)名稱 | 參考參數(shù) |
---|---|
數(shù)據(jù)庫名稱 | Student_info1 |
數(shù)據(jù)庫邏輯文件名稱 | Student_info1_data |
數(shù)據(jù)庫物理文件名稱 | Stduent_info1_data.mdf |
數(shù)據(jù)庫文件初始大小 | 20MB |
數(shù)據(jù)文件大小最大值 | 300MB |
數(shù)據(jù)文件增長增量 | 5MB |
日志邏輯文件名稱 | Student_info_log1 |
日志物理文件名稱 | Student_info_log1.ldf |
日志文件初始大小 | 5Mb |
日志文件大小最大值 | 50MB |
日志文件增長量 | 1MB |
代碼:
create database Student_info1--創(chuàng)建數(shù)據(jù)庫
on primary
(
name= Student_info1,--數(shù)據(jù)庫的邏輯名稱
filename='E:\大2上學期\數(shù)據(jù)庫原理\sql serve\Student_info1.mdf',--物理存放位置及物理文件名稱(Student_info.mdf就是在磁盤上顯示的名稱)
size=20,--初始大小
maxsize=300,--最大限制
filegrowth=5--主數(shù)據(jù)文件增長幅度為5MB
)
log on--定義事務日志文件
(
name =Student_info_log1,--邏輯名稱
filename='E:\大2上學期\數(shù)據(jù)庫原理\sql serve\Student_info1.ldf',--物理存放位置及物理文件名稱
size=5,--初始大小為5mb
maxsize=50,--最大限制為50mb
filegrowth=1--事務日志增長幅度為1mb
)
??1.2 查看、驗證創(chuàng)建的數(shù)據(jù)庫。
數(shù)據(jù)庫創(chuàng)建好了以后,我們可以查看數(shù)據(jù)庫的屬性是否符合要求.
執(zhí)行sp_helpdb系統(tǒng)存儲過程查看Student_info數(shù)據(jù)庫的信息。
步驟如下:

輸入sql語句
sp_helpdb Student_info1
最后單擊"執(zhí)行"按鈕就OK了.
??1.3 修改數(shù)據(jù)庫的屬性
當我們發(fā)現(xiàn)數(shù)據(jù)庫的屬性,創(chuàng)建的時候不小心寫錯了,或者別的原因需要修改數(shù)據(jù)屬性的時候應該怎么辦呢???
例如:
將剛剛創(chuàng)建的數(shù)據(jù)庫Student_info 數(shù)據(jù)文件的初始值大小 改為30MB, 最大值 改為500MB, 數(shù)據(jù)增長量 改為5%, 日志文件初始值 改為20MB, 最大值 改為60MB, 數(shù)據(jù)增長量 為6%.
代碼:
--修改數(shù)據(jù)文件屬性
ALTER DATABASE Student_info1
MODIFY FILE
(
NAME = Student_info1,--要修改屬性的文件名稱
SIZE = 30,--修改初始大小為30mb
maxsize=300,--修改最大限制為300mb
filegrowth=5%--修改事務日志增長幅度為5%
)
--修改事務日志文件屬性
ALTER DATABASE Student_info1
MODIFY FILE
(
NAME =Student_info_log1,
size=20,--修改初始大小為20mb
maxsize=60,--修改最大限制為60mb
filegrowth=6%--修改事務日志增長幅度為6%
)
修改前后通過語句sp_helpdb Student_info1觀察數(shù)據(jù)庫屬性的變化
修改前:

修改后:

??1.4 數(shù)據(jù)庫的分離與附加。
數(shù)據(jù)庫分離:數(shù)據(jù)庫分離是指將數(shù)據(jù)庫文件從數(shù)據(jù)庫服務器實例中分離出來,相當于關閉了數(shù)據(jù)庫。數(shù)據(jù)庫分離后,應用程序不能連接到該數(shù)據(jù)庫,數(shù)據(jù)庫文件可以被其它進程訪問。通常分離數(shù)據(jù)庫用于快速地將數(shù)據(jù)庫遷移到另一個SQLSERVER實例中.
從創(chuàng)建數(shù)據(jù)庫的語句中我們不難知道,我們創(chuàng)建的數(shù)據(jù)庫是一個存放在我們電腦硬盤上的一個文件,受DBMS(數(shù)據(jù)庫管理系統(tǒng))管理,如果我們想要自己創(chuàng)建的數(shù)據(jù)庫在別的客戶端,或者說是讓別人在它的電腦上也能使用,我們就需要對數(shù)據(jù)庫分離,然后找到被分離的數(shù)據(jù)庫文件.mdf(數(shù)據(jù)文件),和.ldf(日志文件)
模板:
--分離
execute sys.sp_detach_db @dbname=數(shù)據(jù)庫名
execute sp_attach_db Student_info1 ,filenme
范例:將數(shù)據(jù)庫Student_info1分離后又附加
代碼:
----將數(shù)據(jù)庫Student_info1分離
execute sys.sp_detach_db @dbname='Student_info1'
execute sp_attach_db Student_info1 ,
'E:\大2上學期\數(shù)據(jù)庫原理\sql serve\Student_info1.mdf',
--filename每個人的不一樣,與當時創(chuàng)建的數(shù)據(jù)庫存放的地址有關
'E:\大2上學期\數(shù)據(jù)庫原理\sql serve\本Student_info1.ldf'
--filename每個人的不一樣,與當時創(chuàng)建的數(shù)據(jù)庫存放的地址有關
??1.5 創(chuàng)建數(shù)據(jù)表
模板:
create table 表名(
屬性名1 類型,
屬性名2 類型,
屬性名3 類型 --注意最后一條語句不用','
)
范例:
Student_info數(shù)據(jù)庫包含3張表:請按要求創(chuàng)建下表
Student表、 Course表及SC表,
分別代表學生信息、課程信息及學生選課信息。
三張表要求如下:



--創(chuàng)建Student表
create table Student(
Sno char(8) primary key not null, --學號,并設置為主鍵(primary key)和非空(not null)
Sname varchar(8) not null, --學生姓名
Sex char(2) default '男' not null, --性別,設置默認值(default)為'男'
Birth smalldatetime not null, --出生年月
Classno char(3) not null, --班級號
Entrance_date smalldatetime not null, --入學時間
Home_addr varchar(40) --家庭住址(可以為空)
)
--創(chuàng)建Course表
create table Course(
Cno char(3) primary key not null, --課程號
Cname varchar(20) not null, --課程名稱
Toal_perior smallint, --總學時
Gredit tinyint check(Gredit>0 and Gredit<=6) --學分,這里要使用check約束
)
--創(chuàng)建sc表
create table Sc(
Sno char(8) not null, --學號
Cno char(3) not null, --課程號
primary key(sno,cno), --設置sno和cno的屬性組為主鍵
foreign key(sno)references student(sno), --設置外鍵
foreign key(cno)references course(cno), --設置外鍵
Grade tinyint check( Grade>=0 and Grade<=100) --成績
)
二、用通過SQL Sever Management Studio
2.1 創(chuàng)建數(shù)據(jù)庫
步驟:
1.右擊“數(shù)據(jù)庫“,在彈出的快捷菜單中選擇”新建數(shù)據(jù)庫“
- 將要求參數(shù)在此界面設置。如下圖:
2.2 查看、驗證創(chuàng)建的數(shù)據(jù)庫。
1.右擊Student_info1數(shù)據(jù)庫,在彈出的快捷菜單中,單擊“屬性”按鈕。
2.3 修改數(shù)據(jù)庫的屬性
在打開的數(shù)據(jù)庫屬性對話框中,單擊“文件”選項卡,即可查看數(shù)據(jù)庫的屬性。
雙擊可直接修改.
2.4 數(shù)據(jù)庫分離與附加
數(shù)據(jù)庫分離:
右擊Student_info1數(shù)據(jù)庫,在彈出的快捷菜單中選擇“屬性“,在”數(shù)據(jù)庫屬性對話框“中選擇”選項“選項卡。找到限制訪問,將其修改為”SINGLE_USER“

在提示框中單擊"是".

當左側(cè)顯示(單個用戶)的時候表示分離成功了一半


最后在打開的“分離數(shù)據(jù)庫”對話框中:勾選“更新統(tǒng)計信息”復選框。
若“消息”列表沒有顯示存在活動鏈接,則“狀態(tài)”列會顯示“就緒”。
另外一種情況,“消息“列表顯示”活動鏈接“,“狀態(tài)”列表就會顯示“未就緒“。
此時需要再勾選”刪除鏈接“列的復選框。
數(shù)據(jù)庫的附加:
將Student_info數(shù)據(jù)庫再次附加到服務器中
1.選中左邊“數(shù)據(jù)庫“,右擊。在快捷菜單中選擇”附加”命令。

結(jié)語
牛牛并不建議使用SQL Sever Management Studio來完成相應的數(shù)據(jù)庫操作,重點是要學會sql語句命令來執(zhí)行操作,這是因為當我們在執(zhí)行大量的數(shù)據(jù)任務時,用sql語句會顯得方便很多.
好了,這次就講到這里了,后續(xù)會繼續(xù)更新數(shù)據(jù)庫的知識.加油吧!
我的博客即將同步至騰訊云開發(fā)者社區(qū),邀請大家一同入駐:https://cloud.tencent.com/developer/support-plan?invite_code=2kvagxv62400o文章來源:http://www.zghlxwxcb.cn/news/detail-778866.html
??????
最后,小伙伴們的點贊就是給牛牛最大的支持,能不能給牛牛來一個一鍵三連呢?謝謝支持。文章來源地址http://www.zghlxwxcb.cn/news/detail-778866.html
到了這里,關于使用SQL語句創(chuàng)建數(shù)據(jù)庫與創(chuàng)建表的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!