[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