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

SQL Server 数据库操作复习总结_1

SQL Server 数据库操作复习总结(基于 esa 数据库练习)

本总结涵盖:表结构的创建(DDL)、数据的插入与修改(DML)、备份表、查看表结构等核心知识点。

一、 数据库定义语言(DDL):创建表结构

1. 核心语法

CREATETABLE表名(字段名 数据类型 约束,...);

2. 数据类型对应关系(根据题目图片)

图中类型SQL Server 类型备注说明
文本型VARCHAR(n)n为宽度,如VARCHAR(8)
日期型DATEDATE
整型INTINT
浮点型DECIMAL(4,1)宽度4,小数1位
varbinaryVARBINARY(MAX)用于存储图片等二进制数据

3. 约束条件(保证数据完整性)

  • 主键(PRIMARY KEY):唯一标识行,不允许重复且非空。
    • 单列主键:如学号 VARCHAR(8) PRIMARY KEY
    • 复合主键(联合主键):多列共同组成唯一标识,如成绩单表的PRIMARY KEY (学号, 课程号)
  • 外键(FOREIGN KEY … REFERENCES):用于建立表与表之间的联系,强制实施“参照完整性”。
    • 建表顺序:必须先建主表(父表:学院),再建子表(专业、学生、课程),最后建关联表(成绩单)。否则会报错。
  • 非空约束(NOT NULL):禁止填入空值(如姓名、生日字段)。
  • 空值约束(NULL):允许填入空值(如院长、简历、登记照字段)。

二、 数据操纵语言(DML):插入数据

1. 核心语法

INSERTINTO表名(1,2,...)VALUES(1,2,...);

2. 实操注意点

  • 插入顺序:必须遵循外键依赖顺序(先插学院、专业,再插学生、课程,最后插成绩单)。
  • 日期格式:标准格式为'YYYY-MM-DD'(如'1987-04-19')。
  • 空值处理:参考数据中没有提供的字段(如简历、登记照),直接写NULL
  • 批量插入:可使用INSERT INTO 表 VALUES (值1), (值2), (值3);一次性插入多行数据。

三、 数据操纵语言(DML):备份、删除与更新

1. 备份表(复制结构和数据)

-- 核心语法SELECT*INTO新表名FROM原表名;-- 实例:备份学生表SELECT*INTO学生备份FROM学生;

⚠️ 易错点:这种方法不会自动复制原表的主键、外键和索引,仅复制表结构和数据。

2. 删除数据

-- 核心语法DELETEFROM表名WHERE条件;-- 实例:删除备份表中专业为0501的学生DELETEFROM学生备份WHERE专业号='0501';

⚠️ 警告:不加WHERE条件会清空整张表数据!

3. 修改(更新)数据

-- 核心语法UPDATE表名SET列名=新值WHERE条件;-- 实例:将备份表性别为男的学生,民族修改为汉UPDATE学生备份SET民族='汉'WHERE性别='男';

💡 重要提示:对“备份表”进行的删除、更新操作,完全不影响原始“学生表”。


四、 查看表结构(元数据查询)

1. 使用 T-SQL 命令

  • 查看单表详细结构(包含主键、索引、外键):

    EXECsp_help'表名';
  • 查看所有表的字段结构(拼接信息架构视图):

    SELECTTABLE_NAME,COLUMN_NAME,DATA_TYPE,CHARACTER_MAXIMUM_LENGTH,IS_NULLABLEFROMINFORMATION_SCHEMA.COLUMNSORDERBYTABLE_NAME,ORDINAL_POSITION;
  • 查看所有外键关系:

    SELECTfk.nameAS外键约束名,OBJECT_NAME(fk.parent_object_id)AS子表名称,OBJECT_NAME(fk.referenced_object_id)AS父表(参照表)名称FROMsys.foreign_keys fk;

2. 使用图形界面(SSMS)

  • 左侧“对象资源管理器” -> 展开“表” -> 展开“列”。
  • 右键数据库 -> “新建数据库关系图” -> 添加表,可直观查看外键连线。

五、 核心考点与易错点总结

  1. 区分 DDL 和 DML:建表、改表结构是 DDL;增、删、改、查数据是 DML。
  2. 外键的连环关系:子表的数据不能凭空产生,必须依赖于主表中已有的主键值。
  3. 备份表的独立性:备份表是独立的新表。
  4. WHERE 子句的“安全带”UPDATEDELETE如果不加WHERE就是灾难性的全表操作。
  5. Access 与 SQL Server 术语转换:如果在 Access 中操作,文本型对应“短文本”,日期型对应“日期/时间”,VARBINARY 对应“OLE 对象”,整型对应“数字/长整型”,浮点型对应“数字/单精度型”。
http://www.cnnetsun.cn/news/4242997.html

相关文章:

  • 在浏览器里免费解锁加密音乐:Unlock Music 完整使用指南
  • Jeff Dean离职引发Gemini忧虑?开发者如何理性应对
  • 单相统一功率因数变流器控制:从d-q变换到Simulink仿真实践
  • MicroPython ADC编程实战:从原理到数据采集优化
  • 初识Agent
  • OCR It:为LLM应用打通不可复制文档的文本提取链路
  • 动态规划实战:从编辑距离到字符串最优包含问题解析
  • DAC实战选型与电路设计:从PWM到Σ-Δ,避坑指南与调试实录
  • 智能家电动态设计实战:从动效拆解到洗烘一体机状态可视化
  • 5A级景区在哪里?分享一个可以查询景区经纬度、海拔、天气和地图位置的网站
  • 为何AI对企业的描述常常偏离实际?根源多在信息基础
  • 品牌海外发稿如何选择有效媒体?如何制定海外媒体投放策略?
  • LLM+Function Calling开发助手Picodevil实战
  • AI Agent时代,企业即时通讯的数据安全体系如何重新设计?从聊天工具到智能通信入口
  • 40人小公司从零搭一套OA+手机App,我是怎么过的坑(全过程实战)
  • 通用CRC校验实现:参数化设计与嵌入式通信协议应用
  • AI Skill加载失效?从环境变量到配置文件的排查指南
  • eNSP实战 | Filter-Policy 路由策略过滤 —— 用 ip-prefix 精准 “屏蔽“ 一条路由
  • Unity性能优化_粒子特效(Particle System)
  • MATLAB高温防护服热传导建模实战:从数模竞赛到工程复现
  • 驳斥关于 ML-KEM 的误解
  • 蓝牙传感器开发新范式:Lynx库如何统一固件与App数据链路
  • 生物医学信号处理(北京工业大学)第二章
  • SPADE框架:可执行环境+自对弈+共进化,让AI自己生成训练环境
  • 用 Python 驱动 COMSOL 自动化仿真:6 行代码跑通
  • 刚刚,ChatGPT 开始卖广告了!
  • 什么是 SAP HANA Cloud 内置的 Property Graph Engine(属性图引擎)
  • BiliTools 开源 B站下载工具:把番剧、音乐、弹幕存到本地
  • 多模态图Transformer预训练:构建下一代推荐系统基础架构
  • E27灯座电流钳测试实战:从原理到精准测量的完整指南