SQLServer脚本建库表

2023年 8月 12日 72.4k 0

建库

什么是系统数据库

master : 主数据库,创建数据库时 需要选中它   如何选择master数据库:

use master

model :模版数据库,创建的新数据库以其模板创建, msdb :保存SQLServer代理作业和执行计划的配置信息, tempdb :保存系统运行过程中产生的临时表、存储过程、全局或局部临时表及索引、表变量

系统数据库里面有哪些常见的表

1 sysdatabases 表:记录当前SQLServer里面的所有数据库

select * from sysdatabases-- 查询 crm 数据库的保存位置select filename from sysdatabases where name='crm'

2  sysobjects 表 :记录表关系、数据表、存储过程、视图

select *  from sysobjects-- 查询 crm数据库的crm_contact表的记录select * from sysobjects where name='crm_contact'

如何判断已经存在某张表

1 系统函数:exists 表示是否存在,如果存在则true,不存在false2 if语句:         

-- 格式:-- if (条件)  --     语句1  -- else--     语句2-- 判断是否存在crm_contact数据表if exists(select * from sysobjects where name='crm_contact')  print 'crm_contact表已经存在'   print 打印输出else  print '该表不存在,可以创建'

如何判断已经存在某个数据库

if exists(select * from sysdatabases where name='crm ')print '该数据库已有'elseprint '该库未创建'

如何创建数据库

简单格式:create database 数据库名称 参数格式:

create database 数据库名称 on (      name = 逻辑名称1,      filename = 物理路径名称      size = 建库的初始大小(单位:m)      filegrowth= 超过初始大小后的增长大小(单位:m) ) log on (      name = 逻辑名称2,      filename = 物理路径名称      size = 建库的初始大小(单位:m)      filegrowth= 超过初始大小后的增长大小(单位:m) )

注意: SQLServer的数据库文件分为:数据文件 与 日志文件 两种 数据文件后缀名:.mdf(主数据文件)、.ndf(次数据文件), 记录数据表的所有内容 日志文件后缀名:.ldf,记录操作员对该库的各种增删改查的操作

例如:

使用完整版建库语法,创建SchoolDatabase数据库,数据库文件位于D:\SDB.mdf 和 D:\SDB.ldf,初始大小10m,每次增长10m

create database SchoolDatabaseon(  name=sdb_mdf,filename='D:\SDB.mdf',   主数据文件size=10,filegrowth=10)log on(name=sdb_ldf,filename='D:\SDB.ldf', 日志文件size=10,filegrowth=10)

如何删除数据库

格式:drop database 数据库名称 例如:删除已经创建的SchoolDatabase数据库

use mastergo  if exists(select * from sysdatabases where name='SchoolDatabase')drop database SchoolDatabasegoCreate database SchoolDatabase  go

注意:

创建与删除数据库都需要使用master数据库,否则没有相应的权限

go是批处理脚本中要使用的执行语句

创建数据表

格式: create table 表名 (   字段名  数据类型  约束   )

注意:当数据库表很多的时候,要先创建 主表 , 再创建 从表 如:创建 学生表(主表)、 成绩表(从表)、 科目表(主表)

use SchoolDatabase   数据表将创建到Student数据库,所以使用use先调用Studentgo  

如:创建学生表

if exists(select * from sysobjects where name='student') drop table studentgocreate table student(  s_id char(5) primary key,               -- 学号 :如:ST001  s_name nvarchar(10) not null,           -- 姓名  s_icn char(18) unique not null ,        -- 身份证  s_sex nchar(1),                         -- 性别  s_class nvarchar(5) not null,           -- 班级  s_regDate datetime default(getdate()),  -- 入学日期  s_pwd varchar(50)                       -- 密码)go

解释: char(5) : 定长的字符串,不管输入多少个字符,其始终保持5个字符的长度。一个中文占两个字符 nchar(1) :定长的字符串,一个中文占一个字符 nvarchar(10) : 变长字符串,每个中文或字母占一个字符。可以保留10个中文字符 varchar(10) :变长字符串, 每个中文占两个字符。可以保留5个中文字符 datetime :日期与时间类型 int : 整数 decimal : 小数 primary key : 主键 not null :非空 unique : check :检查 foreign key :外键

创建课程表

if exists(select * from sysobjects where name='course') drop table coursegocreate table Course(  c_id int identity(1,1) primary key,   -- 课程ID  c_name nvarchar(50) not null         -- 课程名称)go

注意:          整数类型可以使用标识列自增 identity(1,1) ,从1开始每次增涨1个的自动编号

创建成绩表

if exists(select * from sysobjects where name='score')drop table scoregocreate table Score(    s_id char(5),                         -- 学号 c_id  int,                            -- 课程号 sc_score int check (sc_score>= and sc_score

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论