SQL基础与约束详解:主键、外键与数据库管理
需积分: 10 8 浏览量
更新于2024-07-27
1
收藏 112KB DOC 举报
"这篇文档是关于SQL语句的经典集合,主要涵盖了主键、外键以及数据库约束的概念,适合SQL初学者和开发者学习。文档详细介绍了如何创建和管理数据库,包括创建与删除数据库、数据备份,以及如何构建带有各种约束的新表。"
在SQL语言中,约束是用于确保数据完整性和一致性的重要工具。SQL Server提供了五种主要的约束类型:
1. 主键约束(PrimaryKeyConstraint):主键是表中的一个或一组字段,其值唯一且不可为空,用来标识表中的每一行。例如,在创建表时,可以指定某个字段为主键,如下所示:
```sql
CREATE TABLE table_name (
id INT PRIMARY KEY,
...
)
```
2. 外键约束(ForeignKeyConstraint):外键用于建立两个表之间的关联,确保参照完整性。外键是引用另一个表的主键。例如:
```sql
CREATE TABLE child_table (
child_id INT PRIMARY KEY,
parent_id INT,
FOREIGN KEY (parent_id) REFERENCES parent_table(parent_id)
)
```
3. 惟一性约束(UniqueConstraint):确保表中某列的值是唯一的,但可以为空。例如:
```sql
CREATE TABLE table_name (
unique_col VARCHAR(255) UNIQUE,
...
)
```
4. 检查约束(Check Constraint):限制字段值必须满足的特定条件。例如,确保年龄在18到55之间:
```sql
CREATE TABLE table_name (
age INT CHECK (age >= 18 AND age <= 55),
...
)
```
5. 缺省约束(DefaultConstraint):当未提供值时,字段将自动设置为预设值。例如,性别默认为'男':
```sql
CREATE TABLE table_name (
gender CHAR(1) DEFAULT '男',
...
)
```
除了约束,文档还提到了基本的数据库操作:
- 创建数据库:`CREATE DATABASE database_name`
- 删除数据库:`DROP DATABASE db_name`
- 备份数据库:首先定义备份设备,如`EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'`,然后执行备份命令,如`BACKUP DATABASE pubs TO testBack`
此外,创建新表时,可以同时定义列的属性,如是否允许为空、是否为主键等,例如:
```sql
CREATE TABLE table_ok (
col1 INT,
col2_notnull INT NOT NULL,
col3_default NCHAR(1) NOT NULL DEFAULT '男',
col4_default DATETIME NOT NULL DEFAULT GETDATE(),
col5_check INT NOT NULL CHECK (col5_check >= 18 AND col5_check <= 55),
col6_check NCHAR(9) NOT NULL CHECK (col6_check LIKE 'msd0902[0-9][^6-9]'),
cola_primary NCHAR(5) NOT NULL PRIMARY KEY
)
```
这个例子中,`table_ok`表包含了不同类型的约束,如非空、默认值和检查约束。`cola_primary`字段被定义为主键。这些概念对于理解和操作SQL数据库至关重要。
2020-12-14 上传
2011-12-19 上传
2020-09-10 上传
2009-10-12 上传
2011-09-30 上传
点击了解资源详情
点击了解资源详情
FCQ_never_regret
- 粉丝: 0
- 资源: 2
最新资源
- IT审计的风险及控制分析研究 +提纲-论文.zip
- Kinject-x64:Kinject - 内核 dll 注入器,目前提供 x86 版本,即将更新到 x64
- ksvotes.org:ksvotes.org使堪萨斯在线选民注册变得容易
- 基于Python实现上下消化道病历分类【100010696】
- dumb-chatbot:使用PyTorch实现的傻瓜聊天机器人,并接受了Cornell电影对话的培训
- 汇编语言 基于x86处理器 课后题答案及课程资源
- gulp-project:具有Angular前端和Node后端的简单Gulp项目框架
- mbus_monitor_MOD_modbusmonitor_mbus_
- kv配电系统继电保护与整定方法探究-论文.zip
- php-jsond:具有新解析器PHP JSON扩展
- badblocks坏块日志工具源码
- Android Debug Bridge(Android调试工具)
- onvif-camera
- scramble:拼字游戏
- 无碳小车轨迹图_无碳小车_matlab_无碳小车轨迹_汽车_
- godot-2d-builder:由Godio制作并受Factorio启发的模拟游戏演示