当前位置: 首页 > news >正文

【SQL server】数据库、数据表的创建

创建数据库

--如果存在就删除
--所有的数据库都存在sys.databases当中
if exists(select * from sys.databases where name = 'DBTEST')drop database DBTEST--创建数据库
else
create database DBTEST
on  --数据文件
(name='DBTEST',--逻辑名称 字符串用单引号filename='D:\DATA\DBTEST.mdf',--物理路径和名称size=5MB,--文件的初始大小filegrowth=2mb--文件增长大小,也可以写百分比
)log on  --日志文件
(name='DBTEST_log',--逻辑名称 字符串用单引号filename='D:\DATA\DBTEST_log.ldf',--物理路径和名称size=5MB,--文件的初始大小filegrowth=2mb--文件增长大小,也可以写百分比
)--创建数据库简写
create database DBTEST1 --数据库的数据文件和日志文件会为默认值

sys.databases路径:系统数据库 -> master -> 视图 -> 系统视图 -> sys.databases

查看前1000行:

if exists(select * from sys.databases where name = 'DBTEST')drop database DBTEST

如果DBTEST数据库存在,那么就删除(drop)掉这个数据库。

创建数据表

--切换数据库
use DBTEST--创建表的基本语法
--create table 表名
--(--)
--判断表是否存在
if exists(select * from sys.objects where name='Department'and type='U')drop table Department--建表(部门、职级、员工)
create table Department --部门表
(--需要的字段--主键,唯一标识,不能重复,identity(1,1):自动增长,初始值,增长的步长DepartmentID int primary key identity(1,1),DepartmenName nvarchar(50) not null, --最多能个存50个字,不能为nullDepartmentRemark text --部门描述
)--Rank是一个关键字,可以使用[ ]括起来create table [Rank] --部门表
(--需要的字段--主键,唯一标识,不能重复,identity(1,1):自动增长,初始值,增长的步长RankID int primary key identity(1,1),RankName nvarchar(50) not null, --最多能个存50个字,不能为nullRankRemark text --部门描述
)--char:定长,char(10),里面可以存储10个字节,存了3个字节,也占用10个字节
--varchar:变长,varchar(10)最多占用10个字节,11个存不进去
--text:长文本
--前面加一个n标识存储的unicode字符,nchar,nvarchar,ntext
--对中文更加友好
--varchar(100):存储100个字母或者50个汉字
--nvarchar(100):存储100个字母或者100个汉字--员工
create table People
(--需要的字段--主键,唯一标识,不能重复,identity(1,1):自动增长,初始值,增长的步长DepartmentId int references Department(DepartmentId) not null, --外键,部门RankId int references [Rank](RankId) not null,--职级,引用外键PeopleID int primary key identity(1,1),PeopleName nvarchar(50) not null, --最多能个存50个字,不能为nullPeopleSex nvarchar(1) default('男') check(PeopleSex='男'or PeopleSex='女'),PeopleBrith smalldatetime not null, --data:年月日,datatime:年月日时分秒,smalldatetime:最近的一段时间的时间,占用空间也会更小PeopleSalary decimal(12,2) check(PeopleSalary>=1000 and PeopleSalary<=1000000)not null,PeoplePhone varchar(20) unique not null,--unique:这个数据是唯一的PeopleAddress nvarchar(300),PeopleAddTime smalldatetime default(getdate())--添加时间
)

数据类型

  • char:定长,char(10),里面可以存储10个字节,存了3个字节,也占用10个字节
  • varchar:变长,varchar(10)最多占用10个字节,11个存不进去
  • text:长文本
  • 前面加一个n标识存储的unicode字符,nchar,nvarchar,ntext
  • 对中文更加友好
  • varchar(100):存储100个字母或者50个汉字
  • nvarchar(100):存储100个字母或者100个汉字
  • data:只包括年月日
  • datetime:包括了年月日时分秒
  • smalldatetime:最近的年月日
  • decimal(12,2):整数占12位,小数2位

check(PeopleSalary>=1000 and PeopleSalary<=1000000),检查PeopleSalary>=1000并且PeopleSalary<=1000000

primary key:主键

references Department(DepartmentId):是指定了一个外键约束,将另一个表中的特定字段(DepartmentId)与本表的某个字段进行关联。

default('男'):不填默认就是男。

http://www.lryc.cn/news/235056.html

相关文章:

  • vue的生命周期分别是什么?
  • Java拼图游戏
  • Vue框架的element组件table文字居中
  • 科技创新 共铸典范 | 江西卫健办邓敏、飞图影像董事长洪诗诗一行到访拓世科技集团,提振公共卫生事业发展
  • Linux安装OpenCV并配置VSCode环境
  • Django(ORM事务操作|ORM常见字段类型|ORM常见字段参数|关系字段|Meta元信息)
  • 【mujoco】Ubuntu20.04配置mujoco210
  • 【洛谷 P3853】[TJOI2007] 路标设置 题解(二分答案+循环)
  • 蓝桥杯 vector
  • ai绘画部署教程
  • 策略模式的应用——应对频繁的需求变更
  • qt-C++笔记之treeWidget初次使用
  • SQL零基础入门教程,贼拉详细!贼拉简单! 速通数据库期末考!(八)
  • C语言编程陷阱(八)
  • 客户端性能优化实践
  • mysql使用--表达式和函数
  • <蓝桥杯软件赛>零基础备赛20周--第6周--数组和队列
  • 软件开发、网络空间安全、人工智能三个方向的就业和前景怎么样?哪个方向更值得学习?
  • 新增文章分类
  • 选硬币该用动态规划
  • LeetCode 2342. 数位和相等数对的最大和:哈希表
  • Vulkan渲染引擎开发教程 一、开发环境搭建
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • IDEA 快捷键汇总
  • 目标检测YOLO实战应用案例100讲-基于机器视觉的水稻病虫害监测预警
  • OrthoNets:正交信道注意网络
  • C_12练习题
  • 导航守卫有哪三种?
  • 强烈 推荐 13 个 Web前端在线代码IDE
  • 网络协议 WebSocket