数据库的创建

简介: 数据库的创建

数据库的创建

判断是否已经创建该数据库 使用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++中的内置函数,直接可以使用,表示的是当前时间


相关文章
|
5月前
|
存储 监控 安全
数据库数据的保密性
【4月更文挑战第9天】数据库保密性关键在于限制未授权访问和保护数据不泄露。措施包括访问控制、加密、数据脱敏、备份恢复、审计监控及安全配置等,确保数据安全和用户隐私。
127 2
|
存储 SQL 数据库
数据库实验一:数据库与数据表定义(1)—— 数据库相关操作
修改服务器默认存储位置:右键点击服务器,选择属性中的数据库设置,修改数据和日志存放位置后点击确定
315 0
数据库实验一:数据库与数据表定义(1)—— 数据库相关操作
|
4月前
|
关系型数据库 MySQL 数据库
如何快速创建一个数据库
如何快速创建一个数据库
如何快速创建一个数据库
|
SQL 关系型数据库 MySQL
数据库相关操作
数据库相关操作
|
SQL 缓存 关系型数据库
QxOrm操作数据库
我们在QT应用开发专栏中对数据库操作做了基本的介绍,很多程序员对于数据库的语法并不是很熟悉,我们就需要使用ORM库来弥补该方面的不足
225 0
|
SQL 关系型数据库 MySQL
数据库|MySQL数据库连接与创建
数据库|MySQL数据库连接与创建
90 0
|
SQL NoSQL Oracle
【数据库】实际项目上,用到的数据库,涨涨小知识
说到数据库,本篇文章来简单总结下实际项目上用到的数据库
66 0
|
SQL 数据库 数据库管理
数据库——数据库创建(模板与导入)
数据库——数据库创建(模板与导入)
数据库——数据库创建(模板与导入)
|
关系型数据库 MySQL 数据库
mysql数据库(4): 创建并选择数据库
mysql数据库(4): 创建并选择数据库
145 0
mysql数据库(4): 创建并选择数据库
|
关系型数据库 MySQL 数据库
mysql数据库(3):创建并使用数据库
mysql数据库(3):创建并使用数据库
124 0
mysql数据库(3):创建并使用数据库