[1]問題一:
創建一個數據庫有三個名字,一個是create后面的那個,一個是name=的那個,一個是filename=的那個,請問這三個名字有什么區別,都有什么不同的作用?
網上答案:
①
E:/web/pic/1.jpg
?
name="1.txt"
filename="E:/web/pic/1.jpg"
邏輯文件名 pic/1.jpg
②
create database emp --emp 數據庫名稱--DBMS里用的是這個名
on --on 代表數據文件組
( --主要數據文件
????name ='emp_mdf', --邏輯名稱
????filename= 'c:/emp.mdf', --物理名稱
size =3mb, --初始大小
????maxsize = 10mb, --上限
????filegrowth =1mb -- 每次增長1Mb
),
( --次要數據文件
????name ='emp_ndf',
filename='c:/emp.ndf',
????size =3mb,
????maxsize =10mb,
????filegrowth =10%
)
log on --日志文件
(
????name ='emp_ldf',
filename='c:/emp.ldf',
????size =3mb,
????maxsize =10mb,
????filegrowth =10%
)
go
③
邏輯文件名是sql server內部存儲的
物理文件名是在操作系統中存儲的
④
邏輯文件名是數據庫文件在數據庫中顯示的名字
Name就是邏輯名,給用戶看的
FileName是文件名和路徑
總結:
①
邏輯名字的理解
一個數據庫有一個名字,就是數據庫名,那么數據庫下面包含了多個磁盤文件,這些個磁盤文件,有具體的物理路徑,比如:
?
c:/xxx/yyy/ddd/abc.mdf
?
但是為了方便你操作,比如你想把這個文件擴大到1GB,你沒必要記住,這個文件到底是放到什么路徑,這個時候你給他起了一個邏輯名字: name = abc
?
于是下次操作的的時候,你直接指定name = abc的這個文件,size = 1024MB ,你不可能記得路徑,因為路徑很長的,這樣不就簡單了嗎?
②create后面的名字--數據庫名稱 數據庫名稱--1、DBMS里顯示的的是這個名;2、use語句用的是這個名字
③filename是在操作系統中存儲的文件路徑
[2]
ON [PRIMARY] 意思是將創建數據庫產生的數據文件放在主文件組里,在sqlserver里數據文件分為主文件和附文件,你可以去安裝目錄里看下,會發現有MDF,ndf,LDF三種文件,分別是指主文件,付文件,日志文件。
[3]
--我要學習數據庫了
--暫時命名約定:①數據庫名MyDBName②表名TName③列名StuId
--20131206--鄭承良--10:00
--作業:
--手寫代碼創建數據庫 手寫代碼創建表
?
--手寫代碼 往表里插入數據
--手寫代碼 修改表里的數據
--手寫代碼 刪除表里的數據(三種形式)
--手寫代碼查詢這個表里所有的數據
--鼠標點的方式 添加 約束(6個約束)
--自己總結 主鍵 外鍵 主鍵表 外鍵表
create database MyDBTest
on primary
(
name='MyDBStudent_data',
filename='D:/DataBase/MyDBTest_data.mdf',
size=5mb,
filegrowth=1mb
)
log on
(
name='MyDBTest_log',
filename='D:/DataBase/MyDBTest_log.ldf',
size=2mb,
filegrowth=10%
)
use MyDBTest
create table TStudent
(
StuId int identity(1,1) primary key,
StuGender bit ,
StuAge int,
StuTel varchar(11),
StuAddress nvarchar(50),
ClassId int,
)
--插入數據練習
--方式一
select *from TStudent
insert into TStudent(StuGender,StuAge,StuTel,StuAddress,ClassId )--命令單元空格無影響
values( 1,23,15069891272,'山東省',2)--identity列插入時不用定義
--方式二
insert into TStudent(StuGender,StuAge,StuTel,StuAddress,ClassId)
select 1,26,15069891272,'山東',3 union
select 1,27,15069891272,'山東',4 union
select 1,28,15069891272,'山東',5 union
select 1,29,15069891272,'山東',6
--更新數據
update TStudent
set StuAge=StuAge+1,ClassId=1
where ClassId=2
select *from TStudent
--刪除表里的數據
--方式一
--先插入數據
insert Tstudent(StuAge,ClassId,StuAddress)
select 2000,10,'火星' union
select 2008,10,'水星'
?
select *from TStudent
?
delete from TStudent
where StuAddress='水星'
?
--先創建兩個表
create table TClass
(
ClassId int identity(1,2) primary key,--括號內,命令單元之間用逗號鏈接
ClassAddress nvarchar(30)
)
?
create table TClass2
(
ClassId int identity(1,2) primary key,--括號內,命令單元之間用逗號鏈接;命令結束可以不用標點符號
ClassAddress nvarchar(30)
)
insert into TClass(ClassAddress)
select '金星' union
select '木星' union
select '水星'
--方式二
drop table TClass--表,沒了
select *from TClass
--方式三
insert into TClass2(ClassAddress)
select '金星' union
select '木星' union
select '水星'
truncate table TClass2--表還有,數據清空了
select *from TClass2
select* from TStudent
drop table TStudent
--刪除總結:①delete 在表內一條一條的刪除數據
???????? --②truncate在表內清空數據
???????? --③drop刪除表(表都沒了,數據也沒了)
--①非空約束 不讓改的時候就工具選項,干掉勾
--②主鍵約束(PK) primary key constraint 唯一且不為空
--③唯一約束 (UQ)unique constraint 唯一,允許為空,但只能出現一次 右擊,索引/鍵
--④默認約束 (DF)default constraint 默認值
--⑤檢查約束 (CK)check constraint 范圍以及格式限制 CK_TStudent_StuAge
--⑥外鍵約束 (FK)foreign key constraint 表關系 右擊--關系--外鍵關系
--約束兩個在設計上,一個在設計下,三個在右鍵里
????
--主鍵
--定義:唯一標識一條記錄,不能有重復的,不允許為空
--作用:用來保證數據完整性
--個數:1個
--外鍵
--定義:表的外鍵是另一表的主鍵, 外鍵可以有重復的, 可以是空值????
--作用:用來和其他表建立聯系用的
--個數:一個表可以有多個外鍵????
?
有用的參考
http://blog.csdn.net/sqlserverdiscovery/article/details/7786549
新聞熱點
疑難解答