T-SQL 基础学习 02
时间:2021-07-01 10:21:17
帮助过:2人阅读
数据库设计
2
3 定义
4
5 数据库设计就是将数据库中的数据实体以及这些数据实体之间关系,进行规划和结构化的过程
6
7 在需求分析阶段,设计数据库的一般步骤
8
9 A. 收集相信
10
11 B. 标识实体
12
13 C. 标记每个实体需要存储的详细信息
/属性
14
15 D. 标识实体之间的关系
16
17 在概要设计阶段和详细设计阶段数据库设计步骤:
18
19 1. 绘制E
-R图
20
21 2. 将E
-R图转化为数据库模型图
22
23 3. 应用三大范式规范化表设计
24
25 数据库E
-R图
26
27 定义
28
29 1.实体
30
31 现实世界中具有区分其他事物的特征或属性并与其他实体有联系的实体
32
33 2.属性
34
35 实体的特征
36
37 3.联系
38
39 两个或者多个实体之间的关联关系
40
41 4.映射基数
42
43 表示通过联系与该实体关联的其他实体的个数
44
45 一对一:
46
47 X中的一个实体最多与Y中的一个实体关联,并且Y中的一个实体最多与X中的一个实体关联
48
49 一对多:
50
51 X中的一个实体可以与Y中的任意数量的实体关联
52
53 多对一:
54
55 X中的一个实体最多与Y中的一个实体关联
56
57 多对多:
58
59 X中的一个实体可以与Y中的任意数量的实体关联
60
61 关系数据库模式
62
63 定义
64
65 一个关系描述为属性名的集合称为关系模式.
66
67 关系数据库模式是对关系数据库结构的描述,或者说是对关系数据库框架的描述
68
69 规范设计
70
71 第一范式(1NF,Normal Formate)
72
73 第一范式的目标是确保每列的原子性
74
75 第二范式(2NF)
76
77 第二范式是在第一范式的基础上更进一层,其目标是确保表中的每列都和主键相关
78
79 第三范式(3NF)
80
81 第三范式在第二范式的基础上更进一层.第三范式的目标是确保每列都和主键列直接相关,而不是间接相关
82
83 满足三大范式之俗语
84
85 第一范式
86
87 细到不能再分
88
89 第二范式
90
91 必须和主键相关
92
93 第三范式
94
95 各列必须和主键直接相关,不能间接相关
96
97 数据库文件三大部分
98
99 主数据文件:
100
101 *.mdf
102
103 次要数据文件:
104
105 *.ndf
106
107 日志文件:
108
109 *.ldf
110
111 每个数据库至少要包含两个文件:一个数据库文件和一个日志文件
112
113 经验
114
115 为了保证数据的安全性,提高存储速度,我们应该将数据文件和日志文件分别放置在不同的驱动器上
116
117 创建数据库
118
119 语法
120
121 CREATE DATABASE数据库名
122
123 ON PRIMARY --该选项是一个关键字,指定主文件组中的文件
124
125 (
126
127 NAME
=’数据库名’
--主数据文件的逻辑名称
128
129 FILENAME
=’数据库路径’ –主数据文件的物理名称
130
131 SIZE
=数据库大小 –主数据库文件的初始大小
132
133 MAXSIZE
=数据库最大大小 –主数据文件增长的最大值
134
135 UNLIMITED
--不受限制,大小为盘符的最大值
136
137 FILEGROWTH
=’大小增长率’
--主数据文件的增长率,当值为0时不增长
138
139 )
140
141
142
143 LOG ON
144
145 (
146
147 NAME
=’’,
148
149 FILENAME
=’’,
150
151 SIZE
=,
152
153 FILEGROWTH
=
154
155 )
156
157 GO --和后续的SQL语句分隔开
158
159 修改数据库
160
161 ALTER DATABASE数据库名
162
163 ADD FILE --添加数据文件
164
165 (
166
167 …….
168
169 )
170
171 ADD LOG FILE --添加日志文件
172
173 (
174
175 ……
176
177 )
178
179 创建多个数据文件和多个日志文件
180
181 CREATE DATABASE数据库名
182
183 ON PRIMARY
184
185 (
186
187 …..
188
189 ),
190
191 (
192
193 …..
194
195 )
196
197 LOG ON
198
199 (
200
201 …..
202
203 ),
204
205 (
206
207 …..
208
209 )
210
211 删除数据库
212
213 语法
214
215 DROP DATABASE数据库名
216
217 创建数据库前先判定一下
218
219 USE master
--设置当前为master数据库,以便访问指定表
220
221 GO
222
223 IF EXISTS(
SELECT * FROM sysdatabasesWHERE name
=’指定表名’)
224
225 DROP DATABASE数据库名
226
227 CREATE DATABASE数据库名
228
229 ON
230
231 (
232
233 …..
234
235 )
236
237 LOG ON
238
239 (
240
241 ….
242
243 )
244
245 GO
246
247
248
249 EXISTS(查询语句)监测某个查询是否存在
250
251 系统存储过程扩展
252
253 xp_cmdshell是SQL Server扩展存储过程
254
255 在操作系统的指定路径下创建文件夹
256
257 EXEC sp_configure ‘showadvanced options’,
1 –在使用xp_cmdshell前先执行sp_configure
258
259 GO
260
261 RECONFIGURE --重启RECONFIGURE
262
263 GO
264
265 EXEC sp_configure ‘xp_cmdshell’,
1
266
267 GO
268
269 RECONFIGURE
270
271 GO
272
273 EXEC xp_cmdshell ‘MD D:\Student’
--用创建的xp_cmdshell来创建Student文件夹
274
275 GO
276
277 查询当前数据库中是否有表
278
279 语法
280
281 SELECT * FROM SYSOBJECTS
WHERE XTYPE
=‘U‘
282
283 创建表
284
285 语法
286
287 CREATE TABLE 表名
288
289 (
290
291 列1 数据类型列的特征
292
293 列2 数据类型列的特征
294
295 ………
296
297 )
298
299 列的特征: 包括该列是否为空(
NULL),是否是标识列(自动编号),是否有默认值
/主键等
300
301 修改表
302
303 语法
304
305 ALTER TABLE表名
306
307 ALTER COLUMN列名
varchar(
20)
not null
308
309 GO
310
311 ALTER TABLE表名
312
313 ADD列名类型 –创建一个列
314
315 GO
316
317 删除表
318
319 语法
320
321 DROP TABLE表名
322
323 数据库表存储位置
324
325 当前数据库系统表:sysobjects
326
327 所有数据库信息表:sysdatabases
328
329 创建表的完整语法
330
331 USE数据库名
332
333 GO
334
335 IF EXISTS(
SELECT * FROM sysobjectsWHERE name
=’表名’)
//下面的3个表名必须一致
336
337 DROP TABLE表名
338
339 CREATE TABLE表名
340
341 (
342
343 列名类型是否允许为空约束名自动增长(种子,增长率)(
IDENTITY(
1,
1))
344
345 ….
346
347 )
348
349 GO
350
351 注意
352
353 使用DROP TABLE语句之前,首先要确认表中是否没有客户的业务数据了..
354
355 要养成随时备份数据库的习惯
356
357 使用SQL语句创建和删除约束
358
359 数据完整性
360
361 指数据的正确性和相容性
362
363 实体完整性
364
365 唯一确定表中一行记录
366
367 域完整性
368
369 表中特定列数据的有效性,以确保不会输入无效的数值
370
371 引用完整性
372
373 插入或删除记录时,维护表之间定义的关系
374
375 自定义完整性
376
377 定义不属于以上三种完整性的特定业务规则
378
379 添加约束
380
381 语法
382
383 ALTER TABLE表名
384
385 ADD CONSTRAINT约束名约束类型具体的约束说明
386
387 常用约束即用法
388
389 主键约束(
Primary Key Constraint)
390
391 ALTER TABLE表名
392
393 ADD CONSTRAINT约束名
PRIMARY KEY(列名) 推荐约束名:PK_
**
394
395 非空约束(
Not NULL)
396
397 NOT NULL
398
399 唯一约束(
Unique Constraint)
400
401 ALTER TABLE表名
402
403 ADD CONSTRAINT约束名
UNIQUE (列名) 推荐约束名:UQ_
**
404
405 检查约束(
Check Constaint)
406
407 ALTER TABLE表名
408
409 ADD CONSTRAINT约束名
CHECK (条件) 推荐约束名:CK_
**
410
411 默认约束(
Default Constraint)
412
413 ALTER TABLE表名
414
415 ADD CONSTRAINT约束名DEFAULT (‘默认值’) FOR列名 推荐约束名:DF_
**
416
417 外键约束(
Foreign Key Constraint)
418
419 ALTER TABLE表名
420
421 ADD CONSTRAINT约束名 推荐约束名:FK_
**
422
423 FOREIGN KEY(列名) REFERENCES表名(列名)
424
425 GO
426
427 创建表的时候创建约束
428
429 CREATE TABLE表名
430
431 (
432
433 列名类型
NOT NULL 约束名(
PRIMARY KEY)
434
435 列名类型
NOT NULL 约束名(
UNIQUE)
436
437 列名类型
NOT NULL 约束名(
DEFAULT) ‘默认值’
438
439 …….
440
441 )
442
443 删除约束
444
445 语法
446
447 ALTER TABLE表名
448
449 DROP CONSTRAINT约束名
450
451 在已有表中添加约束
452
453 方法
454
455 方法一:
--数据正确性要求比较高
456
457 1. 导出数据
458
459 2. 在空记录表中添加约束
460
461 3. 导入数据
462
463 方法二:
--非金融行业
464
465 ALTER TABLE表名
WITH NOCHECK
466
467 ADDCONSTRAINT约束名
CHECK (条件)
468
469 同时添加多个约束
470
471 例子
472
473 ALTER TABLEStudent
474
475 ADD CONSTRAINT PK_StudentPRIMARYKEY (StudentNo),
476
477 CONSTRAINT UQ_StudentUNIQUE (IdentityCard),
478
479 CONSTRAINT DF_StudentDEFAULT (
‘地址不详‘)
FOR Address,
480
481 CONSTRAINT CK_StudentCHECK(BornDate
>1980-01-01),
482
483 CONSTRAINT FK_StudentFOREIGN
KEY (GradeID)
REFERENCES Grade(GradeID)
484
485 GO
转载出至:http://blog.csdn.net/heqingsong1/article/details/7495496
T-SQL 基础学习 02
标签: