首页 > 开发 > 综合 > 正文

20131204-数据库基础

2024-07-21 02:51:03
字体:
来源:转载
供稿:网友
20131204-数据库基础

[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


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表