数据库DATABSE——sql server

什么是数据库?

是按照特定的数据结构来组织、存储和管理数据的集合,它的核心作用是高效地存储大量数据,并支持快速的查询、修改、删除等操作,同时保证数据的安全性、完整性和一致性。简单来说,数据库就像一个电子化的智能文件柜,它不是简单地堆砌数据,而是按照预设的规则分类存放,方便用户或程序快速找到、使用和维护数据。

数据库的结构

  • -数据库:数据库是表、视图、索引、存储过程等对象的容器,用于按业务逻辑隔离数据(比如电商系统拆分为「用户数据库」「订单数据库」「商品数据库」)。
  • -数据库表:表是数据库中存储数据的基本单元,以 "行 + 列" 的二维结构组织数据,是数据落地的核心载体。

数据库系统

  • -大型数据库:sql server Oracle DB2
    • -中型数据库:access MySQL foxpro

数据库管理(DBS)

数据库管理(DBS)是围绕数据库系统全生命周期的规划、部署、运维、优化、安全、备份恢复等一系列管理活动的总称,核心目标是保障数据库系统稳定、高效、安全地运行,满足业务对数据存储、访问和分析的需求。

核心职责:

  1. 架构规划与部署;
  2. 日常运维与监控;
  3. 性能优化;
  4. 数据安全管理;
  5. 备份与恢复;
  6. 高可用与容灾;
  7. 数据生命周期管理

数据库管理员(DBA):Database Administrator

数据库管理员(DBA)是负责数据库系统全生命周期管理的核心技术角色,其核心职责是通过技术手段与流程规范,保障数据库的稳定性、高性能、安全性与可扩展性,最终支撑业务系统对数据存储、访问和分析的需求。DBA 不仅是技术执行者,也是业务与数据之间的 "桥梁"------ 需结合业务场景设计合理的数据架构,同时应对各类突发故障与性能瓶颈。

核心职责:

  1. 数据库架构设计与部署;
  2. 日常运维与监控;
  3. 性能优化;
  4. 数据安全与权限管理;
  5. 备份恢复与容灾;
  6. 业务支撑与合规。

基础命令

1.create------创建

复制代码
create database 数据库名                                    #创建数据库
on primary                                                 #主数据文件
(                                                          #设置选项
name='主文件名' ,                                           #指定文件名称
filename='存放路径',                                        #指定物理存放路径    
size=初始大小 ,                                             #起始占用空间
maxsize=最大大小,                                           #最大占用空间
filegrowth=增量大小                                         #数据库增长量
)
log on                                                     #日志文件
(                                                          #设置选项
name='主文件名' ,                                           #指定文件名称
filename='存放路径',                                        #指定物理存放路径
size=初始大小 ,                                             #起始占用空间
maxsize=最大大小,                                           #最大占用空间
)

2.alter------修改

复制代码
alter database yxwa
modify file
(
name='yxwa_ldf',
size=50MB,
maxsize=2GB
)

3.drop------删除

复制代码
drop database yxc;

数据类型

用于指定数据保存的类型:证书、货币、年龄、身份证、日期、时间、手机号码等

1.精准数字

1)整数类型

brgint:大范围整数,占用8字节

int:标准数值范围,4字节

smallint:小范围整数,2字节

tinyint:1字节,0-255之间的整数

2)小数类型

decimal:decimal(8,2)长度8位,小数点后保留2位 eg.12345678.78

3)位

Bit:用于储存0,1或空(null)

4)货币类

Money:占用8字节,$

2.近似数字

float:浮点数(小数),占用8字节

3.字符串

char:最大8000字节,固定长度

varchar:8000字节,不固定长度

text:大型文本内容存储,20亿字符

4.Unicode字符串(国际通用字符串)

nchar:最大4000字节,固定长度

nvarchar:4000字节,不固定长度

ntext:大型文本内容存储,10亿字符

5.二进制字符串

image:存储20亿字节的图片

6.日期和时间类型

Date:日期 0000年1月1日 9999年12月31日

Time:时间 00:00:00 23:59:59

Datetime:日期加时间

练习一:

创建一个名为5b的表
复制代码
create table table_5b                                    创建一个名为5b的表
(
编号 int,                                                类型+数据类型   
姓名 char(20),
年龄 tinyint,
性别 char(4),
出生日期 date,
电话 char(11),
工作 char(20),
薪资 money
)
查看表内容
复制代码
select * from table_5b;
查看表信息
复制代码
exec sp_help table_5b;
切换数据库
复制代码
use yxwa;

练习二:

学生表
复制代码
create table 学生表
(
学生ID bigint,
姓名 char(50),
年龄 int,
性别 char(10),
成绩 decimal(10,2),
入学日期 date
)

产品
复制代码
create table 产品
(
产品编号 bigint,
产品名称 char(50),
价格 decimal(10,2),
库存数量 int,
生产日期 date,
是否上架 char(4),
产品描述 text,
材料成分 text,
产品重量 float,
产品分类 char(20)
)

数据库约束

数据库约束(Constraint)是强制表中数据满足特定规则 的机制,核心作用是保证数据的完整性、一致性、准确性,避免无效 / 错误数据插入 / 修改,同时简化业务逻辑校验。

常见的数据库约束

1.Primary key 主键约束

表中的主键列必须包含唯一的值

主键列不允许包含NULL值

一个表只能有一个主键

主键约束会自动创建唯一索引,以快速检索数据

2.Foreign key 外键约束

建立两个表之间的关联,确保关联的数据一致性

3.Unique 唯一约束

确保所有的值都是唯一的

允许NULL

可以有多个唯一约束

4.Check 检查约束

不允许值为NULL

限制列中允许的值的范围

可以定义多个检查约束

5.Default 默认约束

当插入记录时,如果未为该列提供值,择自动为该列赋一个默认值

6.NOT NULL 非空约束

不允许列为空

7.Identity 自动增长约束

让字段值在插入数据时自动生成、递增(无需手动指定)

Eg. Id int identity(1,1)

练习三

创建一个名为dang_an的表并按下图填入内容

内容如图所示:

1.创建名为档案的表

复制代码
create table dang_an
(
表头
)

2.要求ID设为自动增长约束

复制代码
ID int identity(1,1),

3.Name设为主键约束

复制代码
Name char(20) primary key,

4.Sex和Age设为检查约束

复制代码
Sex char(4) check(Sex='男' or Sex='女'),
Age int check(Age>=18 and Age<=50),

5.csny设置为默认约束

复制代码
csny date default GETDATE(),                

6.jg_id和zw_id设为外界约束

1)创建名为zhiwei的表并填入内容
①创建名为zhiwei的表
复制代码
create table zhiwei
(
zw_id int identity(1,1) primary key,
zw char(20) 
)
②填入内容
复制代码
insert into zhiwei(zw)
values('技术支持');
insert into zhiwei(zw)
values('运维');
insert into zhiwei(zw)
values('销售');
insert into zhiwei(zw)
values('财务');
insert into zhiwei(zw)
values('保安');
insert into zhiwei(zw)
values('开发');
③查看表格
复制代码
select * from zhiwei                             查看表格内容
select * from zhiwei order by zw_id asc          按zw_id顺序查看表格内容
2)创建名为jiguan的表并填入内容
①创建表格
复制代码
create table jiguan
(
jg_id int identity(1,1) primary key,
jg char(20) 
)
②填入内容
复制代码
insert into jiguan(jg)
values('北京');
insert into jiguan(jg)
values('河北');
insert into jiguan(jg)
values('天津');
insert into jiguan(jg)
values('上海');
insert into jiguan(jg)
values('哈尔滨');
insert into jiguan(jg)
values('广东');
insert into jiguan(jg)
values('福建');
insert into jiguan(jg)
values('云南');
insert into jiguan(jg)
values('甘肃');
③查看表格内容
复制代码
select * from jiguan order by jg_id asc
3)设置外键约束
复制代码
jg_id int constraint jiguan foreign key(jg_id) references jiguan(jg_id),
zw_id int constraint zhiwei foreign key(zw_id) references zhiwei(zw_id),

7.gl设为非空约束

复制代码
gl int not null

8.向名为dang_an的表格内添加内容

复制代码
insert into dang_an(Name,Sex,Age,csny,jg_id,zw_id,gl)
values('李晨','男',35,'1982-5-30',1,1,15)
insert into dang_an(Name,Sex,Age,csny,jg_id,zw_id,gl)
values('陈赫','男',34,'1983-4-22',1,2,14);
insert into dang_an(Name,Sex,Age,csny,jg_id,zw_id,gl)
values('王敏','女',33,'1984-1-20',2,3,13);
insert into dang_an(Name,Sex,Age,csny,jg_id,zw_id,gl)
values('张武','男',28,'1989-6-26',1,2,8);
insert into dang_an(Name,Sex,Age,csny,jg_id,zw_id,gl)
values('陆毅','男',40,'1977-4-14',2,5,20);
insert into dang_an(Name,Sex,Age,csny,jg_id,zw_id,gl)
values('王菲','女',32,'1985-3-21',2,3,12);
insert into dang_an(Name,Sex,Age,csny,jg_id,zw_id,gl)
values('刘亦菲','女',30,'1987-9-30',3,3,10);
insert into dang_an(Name,Sex,Age,csny,jg_id,zw_id,gl)
values('莆田','女',50,'1967-8-30',4,4,30);
insert into dang_an(Name,Sex,Age,csny,jg_id,zw_id,gl)
values('高小凤','男',21,'1996-5-30',6,6,1);
insert into dang_an(Name,Sex,Age,csny,jg_id,zw_id,gl)
values('刘娜','女',20,'1997-5-30',8,6,0);

9.查看dang_an内容

复制代码
select * from dang_an order by ID asc

10.查看表格信息

复制代码
exec sp_help dang_an
相关推荐
檀越剑指大厂3 小时前
迁移之路的隐形陷阱:破解Oracle数据库国产化替代的核心痛点与策略
数据库·oracle
wWYy.3 小时前
详解redis(1)
数据库·redis·缓存
todoitbo3 小时前
Oracle 迁移到 KingbaseES:从问题词到成本的技术拆解
数据库·oracle·kingbasees
会游泳的石头3 小时前
Java 异步事务完成后的监听器:原理、实现与应用场景
java·开发语言·数据库
数智工坊3 小时前
【操作系统-IO调度】
java·服务器·数据库
星梦清河3 小时前
MySQL—分组函数
数据库·mysql
霖霖总总4 小时前
[小技巧33]MySQL 事务持久化的一致性保障:binlog 与 redo log 的两阶段提交机制解析
数据库·mysql
九章-4 小时前
2026国产向量数据库选型新趋势:融合架构如何支撑AI与信创双轮驱动
数据库·向量数据库
三不原则5 小时前
故障案例:数据库慢查询导致交易延迟,AIOps 如何自动定位?
运维·数据库