数据库的创建

简介: 数据库的创建

数据库的创建

判断是否已经创建该数据库 使用if语句进行查询

-- 表示注释
-- 创建数据库之前,需要我们判断是否已经存在该数据库
if exists(select * from sys.databases where name ='DBTEST')
  drop database DBTEST
-- 如果已经存在,那么就删除 drop表示删除的含义
-- select * from 表示是从某某表中查找对应的信息
-- select * from xxx(查找的表) where name(列名)='DBTEST'(想要查询的表中的列的指定信息)

创建数据库

create database DBTEST  -- 创建数据库
on --  数据文件
(
  name = 'DBTEST',
  filename = 'D:\SQLcode\DBTEST.mdf', -- 物理路径和名称
  size = 5MB, -- 文件的初始大小
  filegrowth = 2MB
)
log on
(
  name = 'DBTEST_log',
  filename = 'D:\SQLcode\DBTEST_log.ldf', -- 物理路径和名称
  size = 5MB, -- 文件的初始大小
  filegrowth = 2MB
)
create database DBTEST1 -- 简单的写法

数据表的创建

数据库创建成功,接下来创建表,和创建数据库类似,也是先判断是否表已经存在

-- 表的结构
create table 表名
(
  列名1(字段) 数据类型,
    列名2(字段) 数据类型,  -- 在列名之间是有逗号的,最后一个字段是不需要逗号的
    列名3(字段) 数据类型
)
-------创建部门,职级、员工表-------
if exists(select *from sys.objects where name ='表名' and type ='U') -- U表示是我们user使用者创建的
  drop table 表明
-- 上述内容说明,如果是已经存在该表,那么就drop删除

我们创建部门、职级、员工表,在里面展示关键字,限制符,如default,check,unique等

创建部门表

-- 建表(部门,职级,员工)
create table Department
(
  -- 部门编号,primary key表示主键,identity(1,1)表示自动增长,从1,开始,步长位1
    DepartmentId int primary key identity(1,1),
    -- 部门名称  not null 表示该列不能有空值
    DepartmentName nvarchar(10) not null,
    -- 部门描述  text  就是文本,可以存放大量的数据
    DepartmentRemark text
)

char、varchar、nvarchar、text的区别

-- 上述四种数据类型都是可以表示字符的
char 表示的是定长字符,-- char(10)表示十个字节的char,如果存放“abc” 那么所占的字节为10,不变的,在定义char的时候就已经固定
varchar 特点:变长字符串,-- 如果是varchar(10),存放数值为“abc” 那么所占字节为3
n:在char、varchar加上n,构成nchar、nvarchar
  作用:存储unicode字符,对于汉字比较友好(使得汉字只占一个字节)
-- char(10)只能存放10个字符或者是5个汉字
-- nchar(10)可以存放10个字符或者10个汉字
text:就是和文本一样的性质,可以存放大量的数据

创建职级表

-- 创建职级表,因为Rank是一个关键字,所以我们用[]来阔上,
create table [Rank]
(
  -- 职级编号,primary key表示主键,identity(1,1)表示自动增长,从1,开始,步长位1
  ` RankId int primary key identity(1,1),
    -- 职级名称  not null 表示该列不能有空值
    RankName nvarchar(10) not null,
    -- 职级描述  text  就是文本,可以存放大量的数据
    RankRemark text
)

创建员工表

-- 外键的意思是:将其他表中的主键作为我的(该表)的字段(列)
-- 下面People表,将部门id和职级id作为外键,前两id都是部门表和职级表的主键
-- 员工表的外键赋值内容是必须要在外键对应的主键的数值范围内的,比如部门表的部门id有1 2 3,那么就员工表中外键,部门id必须是1 2 3中的一个,否则报错
create table People
(
  PeopleId int primary key identity(1,1),
    DepartmentId int references Department(Department) not null -- 部门(引用外键)部门id references关联到Department表的Department列 实际上是外键,该表填写的   DepartmentId必须是和Department表中DepartmentId有的
    RankId int references [Rank](RankId) not null,-- 职位id,同上,属于外键
    PeopleName nvarchar(10) not null,
    PeopleSex nvarchar(1) default'男'check(PeopleSex = '男' or PeopleSex = '女')
    PeopleBirth smalldatetime not null,-- smalldatetime是范围比datetime小的时间数据单位
    PeopleSalary decimal(12,2) check (PeopleSalary>=1000 and PeopleSalary<=15000), -- 表示浮点数的一个是float 一个是double,另外decimal(12,2)更加精确,表示的是一共12位数,小数点后保留2位
    PeoplePhone varchar(20) unique not null,-- unique表示独一无二,使得这一列数据不能重复
    PeopleAddress varchar(20), -- 地址
    PeopleAddTime smalldatetime default(getdate()) -- 表示,如果没有输入,那就默认是当前时间,getdate()属于内置函数,直接可以使用,表示的是当前时间
)

总结

我们通过本文的学习,会创建一个数据库,会创建数据表,并对于sql语句有一个初步的了解和使用,这是我们本文的目的,我们创建好表格之后,就可以在后序添加、删除、更改数据做准备

本文关键字总结:

1.create(或者drop) database 数据库名
2.create(或者drop) table 数据表名   create和drop相对应,语法一样,分别是创建和删除数据库或者是数据表
3.exists:表示是否存在的意思,用于if语言判断数据库或者数据表是否已经存在
4.primary key :表示是主键
5.identity(1,1)表示自动增长,从1,开始,步长位1
6.not null 表示该列不能有空值
7.text  就是文本,可以存放大量的数据
8.references:表示关联,用于外键
9.default:默认值,表示如果没有输入数据,那就是使用该默认值 如:default'男'
10.check(PeopleSex = '男' or PeopleSex = '女'):check表示为限制在这(范围)内选择输入的数据
11.smalldatetime是范围比datetime小的时间数据单位 前者大概是表示最近百年,后者可以表示范围为上千年
12.表示浮点数的一个是float 一个是double,另外decimal(12,2)更加精确,表示的是一共12位数,小数点后保留2位
13.getdate()相当于C++中的内置函数,直接可以使用,表示的是当前时间


相关文章
|
关系型数据库 MySQL 数据库
数据库练习
数据库练习
102 0
ly~
|
4月前
|
存储 SQL NoSQL
数据库介绍
数据库是组织、存储和管理数据的仓库,分为关系型(RDBMS)和非关系型(NoSQL)。RDBMS 如 MySQL、Oracle 和 SQL Server 通过表间关系存储结构化数据;NoSQL 包括 MongoDB、Redis 和 Neo4j,处理非结构化数据。数据库功能组件有数据定义语言(DDL)、数据操作语言(DML)和数据库管理系统(DBMS)。应用场景涵盖企业资源规划(ERP)、电子商务和大数据分析,支持自动化管理、数据分析及决策支持。
ly~
73 3
|
9月前
|
SQL NoSQL 关系型数据库
常用数据库
【5月更文挑战第21天】常用数据库
112 3
|
9月前
|
存储 传感器 监控
数据库的应用
数据库广泛应用于电子商务、物流、酒店管理、医疗、航空、教育、政府和物联网等领域,用于高效存储和管理商品信息、订单数据、医疗记录、航班详情等各类数据,提升效率和服务质量。随着技术进步,其应用场景将持续扩展。
86 1
|
9月前
|
存储 关系型数据库 MySQL
数据库(一)
登录MySQL数据库的命令是`mysql -u用户名 -p密码`,其中`-u`后面接用户名,`-p`后面接密码。如果服务器不在本地,还需指定`-h`参数加上IP地址或域名,以及可选的`-P`参数指定端口号。创建数据库使用`create database 数据库名`,查看数据库用`show databases;`。数据类型包括整数类型(如int)、字符串(如char、varchar、text)、日期时间类型(如date、time、datetime)等。数据库操作还包括创建表、修改表结构、删除表以及数据的增删改查操作。数据恢复和备份涉及mysqldump工具及source命令来导入导出数据。
34 1
|
9月前
|
存储 NoSQL 关系型数据库
数据库
数据库
136 5
数据库—耿建玲视频总结(一)
基本上每一个材料开始都有其介绍发展史的,了解一下发展史可以培养我们一部分的兴趣,然后就是SQL server的安装介绍,这个在之前我们已经亲身实践了安装的过程,并且还为这安装问题苦恼过好久呢
|
存储 安全 数据挖掘
数据库视频
数据库视频
121 0
|
SQL 存储 人工智能
数据库(三)
数据库(三)
119 0