使用SQL语句建库、建表、建约束

本文详细介绍了使用SQL创建数据库、数据表的过程,包括建库、建表、建约束等步骤,涵盖主键、唯一键、默认值、检查约束、外键等常见约束类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

use master --设置当前数据库为master,以便访问sysdatabases表
go
 
if exists(select * from sysdatabases where name='MySchool') 
  drop database MySchool
  
--建库
create database MySchool
on primary  --默认就属于primary主文件组,可省略
(
  --主数据文件的具体描述
  name='MySchool_data',                   --主数据文件的逻辑名称,存在master数据库下
  filename='G:\DB\MySchool_data.mdf',     --主数据文件的物理名称
  size=3mb,                               --主数据文件的初始大小
  maxsize=100mb,                          --主数据文件增长的最大值
  filegrowth=15%                          --主数据文件的增长率
),
(
  --次要数据文件的具体描述
  name='MySchool2_data',                  --次要数据文件的物理名称
  filename='G:\DB\MySchool2_data.ndf',    --次要据文件的物理名称
  size=3mb,                               --次要据文件的初始大小
  maxsize=100mb,                          --次要据文件增长的最大值
  filegrowth=1mb
)
log on
(
  --日志文件1的具体描述,各参数含义同上
  name='MySchool_log',
  filename='G:\DB\MySchool_log.ldf',
  size=1mb,
  filegrowth=1mb
),
(
  --日志文件2的具体描述,各参数含义同上
  name='MySchool2_log',
  filename='G:\DB\MySchool2_log.ldf',
  size=1mb,
  filegrowth=1mb
)
go                                        --和后续的SQL语句分隔开

use MySchool  --将当前数据库设置为MySchool,以便在MySchool数据库中创建表
go

--建表
if exists(select * from sysobjects where name='Student')
  drop table Student

create table Student  /*创建学生信息表*/
(
  StudentNo int not null,             --学号,非空(必填)
  LoginPwd nvarchar(20) not null,     --登录密码
  StudentName nvarchar(20) not null,  --学生姓名,非空
  Sex bit not null,                   --性别,取值0或1
  GradeId int not null,               --年级编号
  Phone nvarchar(50) null,            --联系电话,允许为空,即可选输入
  [Address] nvarchar(255) null,       --住址,允许为空,即可选输入
  BornDate datetime not null,         --出生日期
  Email nvarchar(50) null,            --邮箱帐号,允许为空,即可选输入
  IdentityCard varchar(18) not null   --省份证号
)
go

--建成绩表
if exists(select * from sysobjects where name='Result')
  drop table Result

create table Result
(
  StudentNO int not null
)
go

--建约束
--添加主键约束(将StudentNo作为主键)
alter table Student
	add constraint pk_stuNo primary key (StudentNo)

--添加唯一约束
alter table Student
	add constraint uq_stuID unique (IdentityCard)
	
--添加默认约束
alter table Student
	add constraint df_stuAddress default ('地址不详') for [Address]

--添加检查约束
alter table Student
	add constraint ck_stuBornDate check (BornDate >= '1980-01-01')
	
--添加外键约束(主表Student和从表Result建立关系,关联列为StudentNo)
alter table Result
	add constraint fk_stuNo foreign key (StudentNo) references Student(StudentNo)
	
go

--删除约束
alter table Student
	drop constraint df_stuAddress


SQL分类:

DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) 

DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) 

DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)  

在Navicat工具中,你可以使用SQL语句创建数据。首先,打开Navicat可视化工具。然后,在工具界面的左侧栏目中的“查询”处,鼠标右点击“查询”。在查询框内输入相应的SQL语句,然后点击运行按钮,即可创建数据。如果需要保存这个SQL语句以便以后使用,可以对查询框内的代码进行保存。这样即使新的数据消失了,仍然可以再次使用SQL语句。\[1\] 另,Navicat工具还提供了可视化界面来创建数据的方法。打开Navicat可视化工具后,在数据中的“”栏下鼠标右,选中“新”。在弹出的界面中,你可以直观地输入需要的字段相应的字段类型、长度、小数点、是否为空值、是否为主键、默认值、注释、字符集以及排序规则等信息。这样就可以通过可视化界面创建数据了。\[2\] 希望这些信息对你有帮助! #### 引用[.reference_title] - *1* *2* [在Navicat工具中如何利用SQL语句可视化界面这两种方法来创建数据](https://blog.csdn.net/blbyu/article/details/126360713)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [【MySQL】Navicat中SQL创建数据](https://blog.csdn.net/xiaoxiaoguailou/article/details/121888904)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值