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