SQL?Server數(shù)據(jù)庫表的創(chuàng)建與管理操作大全
前言
上次博客寫到了數(shù)據(jù)庫的創(chuàng)建與管理,但是創(chuàng)建的庫里面什么東西都沒有,現(xiàn)在我們需要在庫里面添加數(shù)據(jù)表內(nèi)容
一、數(shù)據(jù)表的組成
在創(chuàng)建表之前,我們需要先知道表里面有哪些東西,知己知彼,才知道自己在干什么,怎么干??!
數(shù)據(jù)表和excel里面的表差別不大,是由列名、數(shù)據(jù)類型和約束組成。
常見的列名有學(xué)號、姓名、性別等等。數(shù)據(jù)類型和java,c語言的有的一樣,有的不一樣,有單獨(dú)的一節(jié)專門講類型,常見的有int、char等等。
約束是通過限制列的取值來強(qiáng)制實現(xiàn)域的完整性,例如年齡不能低于0歲,性別默認(rèn)為男等等。
實現(xiàn)完整性的約束有:
1、主鍵約束
2、外鍵約束
3、unique唯一約束
4、default默認(rèn)約束
5、check范圍約束
6、not null 不為空約束
(1)主鍵約束
關(guān)鍵字:primary key
作用:用來標(biāo)識這個表中唯一的列,這一列里面的數(shù)必須都不相同,就像我們的身份證號。
在這個course表中,這個符號就代表主鍵 ??!
(2)外鍵約束
關(guān)鍵字:foreigh key
作用:當(dāng)兩個表需要連接或者有關(guān)系時,我們就需要外鍵把它們聯(lián)系在一起,組成一個整體表。
外鍵的顏色比主鍵淡一點,且方向相反??!
(3) 唯一約束
關(guān)鍵字:unique
作用:再去定義一列或多列唯一的值,每列的數(shù)也必須不一樣!
與主鍵的區(qū)別:1、主鍵列只能有一列,唯一列可以有多列
2、主鍵列不能為空,而唯一列可以為空null
(4)默認(rèn)約束
關(guān)鍵字:defalte
作用:用來默認(rèn)一些內(nèi)容,例如計算機(jī)專業(yè)男生多,就默認(rèn)性別為男,當(dāng)你不填寫這行內(nèi)容時,它會自動添加男這個性別。
(5)范圍約束
關(guān)鍵字:check
作用:用來約束一些數(shù)據(jù)的取值范圍,例如年齡在60歲以下,成績在100分以內(nèi)等等。
(6)不為空約束
關(guān)鍵字:not null
作用:當(dāng)我們不寫某行數(shù)據(jù)時,系統(tǒng)會默認(rèn)寫上null,如果你不想這列數(shù)據(jù)有空值就可以限制它。
二、創(chuàng)建數(shù)據(jù)表
1、表的創(chuàng)建
構(gòu)建:create --->table
學(xué)生信息表(student)
字段名稱 | 字段類型及長度 | 說明 | 備注 |
sno | Char(20) | 學(xué)生學(xué)號 | 主關(guān)鍵字 |
sname | Char(6) | 學(xué)生姓名 | 非空 |
ssex | Char(2) | 學(xué)生性別 | 默認(rèn)為男 |
sage | Int | 學(xué)生年齡 | 范圍在0~30 |
創(chuàng)建一個student表,要求如上!
create table student( --創(chuàng)建名為student的表 sno char(20) primary key, --主鍵 sname char(6) not null, --不為空 ssex char(2) default '男', --默認(rèn)為男 sage int check (sage between 0 and 30)--范圍在0到30之間 )
2、表的查看
我們怎樣用肉眼觀察到我們已經(jīng)把表建好了呢?
(1)用鼠標(biāo)點擊軟件看圖形
在表student的列中,我們可以很清晰的看到我們所建的東西
(2)用查詢語句
select * from student -- 查詢表student
查詢后我們能看見我們所創(chuàng)建的每一列的列名,但是我們只是建了一個空表,是沒有內(nèi)容的,接下來我們就開始進(jìn)行內(nèi)容的填寫代碼實現(xiàn)??!!
3、表的增加
構(gòu)建:insert into --> values
學(xué)生信息表(student)
sno | sname | ssex | sage |
202115001 | 趙菁菁 | 女 | 23 |
202115002 | 李勇 | 男 | 20 |
202115003 | 張力 | 男 | 19 |
202115004 | 張衡 | 男 | 18 |
202115005 | 張向東 | 男 | 20 |
202115006 | 張向麗 | 女 | 20 |
202115007 | 王芳 | 女 | 20 |
202115008 | 王民生 | 男 | 25 |
將表中內(nèi)容添加到student學(xué)生表中,要求如上!
insert into student values(202115001,'趙菁菁','女',23), (202115002,'李勇','男',20), (202115003,'張力','男',19), (202115004,'張衡','男',18), (202115005,'張向東','男',20), (202115006,'張向麗','女',20), (202115007,'王芳','女',20), (202115008,'王民生','男',25)
添加完成后再次查看這個表
select *from student
4、表的修改
構(gòu)建 alter---> column,
(1)修改表的名字
修改表student新名稱為student1
exec sp_rename 'student','student1'
刷新后可看見
(2)修改表字段名字
修改表 student1 中字段 “ssex” 名稱為 “gender”
exec sp_rename 'student1.ssex','gender' --exec sp_rename '表名.列名','新列名'
(3)添加一個新的字段
為student1添加一個愛好字段 love char(10)
alter table student1 add love char(10)
(4)刪除一個字段
為student1刪除字段 love
alter table student1 drop column love
(5)修改表字段操作
修改表 student1 中字段名為 “sname” 的字段長度由原來的6改為8;
alter table student1 alter column sname char(8)
修改內(nèi)容
修改表李勇的名字改為李華
update student1 set sname = '李華' where sname = '李勇'
修改李華的性別為女
update student1 set gender = '女' where sname = '李華'
將學(xué)號為“202115003”的學(xué)生信息重新設(shè)置為“王丹丹、女、20
update student1 set sname = '王丹丹',gender = '女',sage = 20 where sno = 202115003
刪除內(nèi)容
刪除數(shù)據(jù)表student1年齡大于24的男同學(xué)的記錄
delete student1 where gender = '男' and sage>24
5、表的刪除
刪除表student1
drop table student1
三、表的架構(gòu)操作
在對架構(gòu)進(jìn)行一系列操作之前,我們首先得明白什么是架構(gòu),有什么用途
架構(gòu):簡單來說就是一個數(shù)據(jù)庫對象容器,相當(dāng)于一個文件夾,這個文件夾下面可以放很多不同的表、視圖的文件。
數(shù)據(jù)庫是有一個默認(rèn)的架構(gòu) --dbo,在每一個表的前面是可以看見的??!
現(xiàn)在我們要弄一個新的架構(gòu),然后放入這些表?。?!
1、架構(gòu)的創(chuàng)建
為用戶dbo定義一個新的架構(gòu),架構(gòu)名為myself
create schema myself authorization dbo
目前就有了一個新的myself架構(gòu)
2、架構(gòu)添加表
將默認(rèn)架構(gòu)dbo中的student1表傳輸?shù)絤yself架構(gòu)中。
alter schema myself transfer dbo.student1
將表移回來
將架構(gòu)myself中的student1表傳輸?shù)絛bo架構(gòu)中。
alter schema dbo transfer myself.student1
3、刪除架構(gòu)
刪除架構(gòu)myself
drop schema myself
四、總結(jié)
從大致上看,在數(shù)據(jù)庫下面有不同的架構(gòu),這些架構(gòu)下面放上表、視圖等文件,我們可以對表進(jìn)行一系列的增刪查改操作
首先得創(chuàng)建表create、然后用圖形或者查詢語句進(jìn)行查看,然后需要進(jìn)行增加表里面的內(nèi)容insert into 表明 values(...),做了這些之后表里面的內(nèi)容是需要修改的,從大范圍的修改alter 到小范圍的修改update、delete等,最后可以刪除這個表drop。
學(xué)習(xí)sql server數(shù)據(jù)庫得先看森林再見樹木、由于很多書本雜亂無章沒有總結(jié),因此自己想做這個系列
到此這篇關(guān)于SQL Server數(shù)據(jù)庫表的創(chuàng)建與管理操作的文章就介紹到這了,更多相關(guān)SQLServer表創(chuàng)建和管理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
sqlserver存儲過程中SELECT 與 SET 對變量賦值的區(qū)別
SQLServer中對已經(jīng)定義的變量賦值的方式用兩種,分別是 SET 和 SELECT。對于這兩種方式的區(qū)別,SQL Server 聯(lián)機(jī)叢書中已經(jīng)有詳細(xì)的說明,但很多時候我們并沒有注意,其實這兩種方式還是有很多差別的。2011-04-04教你使用SQL語句進(jìn)行數(shù)據(jù)庫復(fù)雜查詢
這篇文章主要介紹了使用SQL語句進(jìn)行數(shù)據(jù)庫復(fù)雜查詢,本篇文章結(jié)合實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-01-01SQL Server 2012 FileTable 新特性詳解
FileTable是基于FILESTREAM的一個特性。本文給大家介紹SQL Server 2012 FileTable 新特性詳解,非常不錯,感興趣的朋友一起學(xué)習(xí)吧2016-08-08Sql server中內(nèi)部函數(shù)fn_PhysLocFormatter存在解析錯誤詳解
這篇文章主要給大家介紹了關(guān)于Sql server中內(nèi)部函數(shù)fn_PhysLocFormatter存在解析錯誤的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。2017-09-09sqlserver實現(xiàn)樹形結(jié)構(gòu)遞歸查詢(無限極分類)的方法
下面小編就為大家?guī)硪黄猻qlserver實現(xiàn)樹形結(jié)構(gòu)遞歸查詢(無限極分類)的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-07-07