数据库的移植操作与数据表

数据库的移植操作 为什么要学习数据库移植? 因为数据库在服务运行状态下无法复制、移动、发送 在必要情况下我们必须对目标数据库进行合法的移植操作 关闭MSSQLSERVER服务的方式 如果直接关闭服务(相当于直接关闭服务器),会对正在运行的项目造成威胁 推荐使用以下方式: 注意:在数据库移植之前必须要明确目标数据库物理文件所在位置 数据库脱机联机 使服务器中的目标数据库的状态改变为“罢工”状态 表明脱机... 阅读详情

数据库的移植操作

为什么要学习数据库移植

  1. 因为数据库在服务运行状态下无法复制、移动、发送

    2.在必要情况下我们必须对目标数据库进行合法的移植操作

关闭MSSQLSERVER服务的方式

  1. 如果直接关闭服务(相当于直接关闭服务器),会对正在运行的项目造成威胁

推荐使用以下方式:

注意:在数据库移植之前必须要明确目标数据库物理文件所在位置

数据库脱机联机

使服务器中的目标数据库的状态改变为“罢工”状态

实现数据库脱机的具体操作步骤如下:

 

表明脱机成功

脱机的数据库相当似于数据库物理文件依然在服务器上存在,只是出于“罢工”,因此DBMS无法正常管理脱机状态下数据库

如果要回复DBMS的正常管理,则必须对数据库进行联机操作

实现数据库联机的具体操作步骤如下:

 

在联机时必须要保证目标数据库物理文件,在脱机之前正常运行时所在的路径下否则联机失败

 

数据库分离附加

附加有前提是:要考虑附加的目标数据库原始版本和当前服务器上数据库版本要能够融合

分离数据库不是删除数据库,它只是将数据库从服务器中分离(单独踢开)出去

 

分离成功之后在DBMS数据库列表中再也找不到目标数据库,所以在分离之前务必搞清楚数据库物理文件所在位置

数据库附加操作步骤:

 

 

 

 

在附加时如果数据库的日志文件也存在则自动附加,如果没有在点确定附加,附加成功之后自动创建

生成数据库脚本

针对于目标数据库版本和当前服务器数据库版本不兼容情况下,附加不成功可以采取生成数据库脚本,然后在当前服务器数据库管理工具中执行即可完成数据库的重新创建

 

 

 

一般情况下在学习过程中用不到,前提是能够对目标数据库服务器能够进行数据库管理操作才可用

 

数据表的创建

使用企业管理器创建

 

 

使用查询分析器创建

*注意:凡是使用查询分析器进行数据库管理操作,首先要注意明确当前正处于查询分析器工作的收据库是哪个数据库

新建的查询分析器一般默认是位master系统数据库服务的,基本上在需要使用SQL代码创建数据库时才使用master数据库

--为了保险起见先将数据库切换到目标数据库
USE InLettManager
--相当于C#中的分号作用,SQL代码执行是需要批量操作,而GO关键字是SQL代码批量的一个标识符
GO
--创建数据表
CREATE TABLE Teacher
(
    --创建数据表中的字段
    TID INT,
    NAME NVARCHAR(20),
    AGE INT,
    Class NVARCHAR(20)  
)
GO

SQL代码的命名规则

  1. 避开SQL系统代码中的关键字

  2. 数据表、约束、字段等命名规范一般以帕斯卡命名法为主

  3. 建议不要使用特殊符号,在SQL中一般使用的符号是"_"

  4. 如果必须使用SQL系统关键字则给关键字带上"[ ]"

SQL数据类型

  1. 整数类型

    bigint:占8个字节,相当于C#中long

    int:占4个字节,相当于C#中的int

    smallint:占2个字节,相当于C#中的short

    tinyint:占1个字节,相当于C#中的byte

  2. 精确数字类型

    decimal:固定精确度 -10^38--10^38-1

    numeric:功能等同于decimal

    写法:decimal(整数,小数),numeric(整数,小数)

    默认:整数18位,小数0位

  3. 近似数字(浮点)类型

    float[(n)]:表示范围:1.79乘以10的308次幂

    n:表示精度,有效值1-53之间

    real:知道即可

  4. 文本类型,在SQL中文本类型赋值必须使用单引号

    char:固定长度的非unicode字符数据,最大长度是8000个字符

    varchar:可变长度的非unicode字符数据,最大长度是8000个字符

    text:存储长文本信息,最大长度为2^32-1个字符

    nchar:固定长度的unicode字符数据,最大长度是4000个字符

    nvarchar:可变长度的unicode字符数据,最大长度是4000个字符

    ntext:存储可变的长文本信息,最大长度为2^30-1个字符

    固定:当声明数据类型设置了固定长度,那么这个数据类型赋值的字符长度绝对不能超过这个规定,如果赋值的数据长度不足规定的长度,使用空格字符填充

    可变:如果赋值数据长度不足,则自动缩短为实际赋值数据长度,内存空间按照指定大小,如果超过指定长度则依然按照实际赋值数据长度,内存空间跟着改变

    类型长度最终影响的是内存空间

  5. 日期时间类型

    datetime:允许范围1753-1-1至9999-1-1

    smalldatetime:允许范围1900-1-1至2079-1-1

    时间精度不同:datetime精确到3/100秒;smalldatetime精确到1分钟

    赋值格式:以字符串格式填写

    分隔符数字方式:2020-02-18或2020/02/18或02/18/2020

    纯数字格式:02182020 月日年

    英文数字方式:Feb 18,2020

    不管哪种方式给日期时间类型赋值必须用单引号(' ')

    一月 Jan.。二月 Feb.。三月 Mar.。四月 Apr.。五月 May.。六月 Jun.。七月 Jul.。八月 Aug.。九月 Sept.。十月 Oct.。十一月 Nov.。十二月 Dec.。

  6. 位类型

    bit:表示“是/否”类型数据。(0/1,true/false)

  7. 货币类型

    money:货币数-2^63-2^63-1之间,精确到货币单位的千分之一

    smallmoney:货币数介于-214748.3648 -- 214748.3648之间,精确到货币单位的百分之一

  8. 二进制类型

    binary:固定长度的二进制数据,最大长度为8000个字节

    vbinary:可变长度的二进制数据,最大长度为8000个字节

    image:可变长度的二进制数据,最大长度2^31个字节,应用场合:可用来存储图片类型

     

数据表的完整性

实体完整性

每个表中有一个必须要指定的字段,主要依赖主键约束

区域完整性

针对表中的某个字段进行特殊化限制,主要依赖剩余的约束

参照完整性

表与表之间的一种特殊化关联限制,主要依靠外键约束

维护数据表的完整性

什么是约束:使用约束、键的作用来维护数据表的完整性

约束有哪些:

  1. 自增约束

  2. 非空约束

  3. 检查约束

  4. 默认约束

  5. 唯一约束

  6. 主键约束

  7. 外键约束

一般在设置列特征的时候都是提前在数据库设计时需要考虑明确,约束都是在数据库设计时必须考虑明确的

数据表的特征

已知创建数据表的语法是

CREATE TABLE 表名
(
    字段1 数据类型 列的特征,
    字段2 数据类型 列的特征,
    ......
)

列特征包含的内容有:

  1. 是否可以为空(NULL):在输入数据的时候,如果这个列允许为空则可以不用填写,否则必须为该列填写对应的数据内容

     

  2. 是否是标识列(自动编号)

  3. 是否有默认值:如果数据表的某一列在用户不主动输入数据的时候,希望能够提供一个默认的内容

        Adrress NVARCHAR(20) DEFAULT('地址不详'),

     

  4. 是否为主键:主键是实体的唯一标识,保证实体不被重复记录,一个数据表必须有主键才能进行更新、删除指定的实体

    [TID] INT IDENTITY(10000,1) primary key,

  5. 是否有检查设置:如果数据表的某一列具有检查限制,当用户为这一列添加数据时,必须要保证添加的数据满足检查限制的要求

    如果添加数据违反检查特征:

        Age INT CHECK(Age>=18),
        Sex nvarchar(2) CHECK(SEX='男' or SEX='女'),

     

  6. 是否有唯一设置:如果这一列具有唯一设置,那么必须保证在给这一列添加数据时,所添加的数据在这一列中是绝对唯一的存在

        Class NVARCHAR(20) UNIQUE

    如果添加数据违反唯一特征:

  7. 是否有外键特征:如果该列具有外键约束,那么在向该列添加数据时必须要按照外键的目标数据表中已有的数据去填写,外键指向的数据表的字段必须是一个主键

 

如果数据违反外键约束

 

如果当前数据表被其他数据表以外键约束,如果要删除当前数据表中的数据则需要慎重考虑,有可能删除失败

标识列

标识列使用的意义

例如全中国有14亿人,名字叫“张三”的共有500个,此时如果找特定的张三非常困难,所以中国每个合法公民都有一张身份证,ID是14亿中唯一的

SQLServer中提供了一种标识列,也叫作“自增编号”,它自身可能不具有任何意义,但是我们可以规定标识列具有特定的意义,例如QQ:10000

标识列如何使用

  1. 该列必须是整数类型,或者也可以是没有小数部分的精确类型

  2. 标识种子:标识列的起始值

  3. 标识增量:标识列每次递增的值(自动增加的值)

        --如果将TID列设为标识列,则该列数据类型必须为整数,使用IDENTITY关键字,小括号中第一个参数是标识种子,第二个参数是标识增量
        [TID] INT IDENTITY(10000,1),

     

注意问题

  1. 有标识列的数据表被删除某一行时,数据库会将这一行空缺出来不会填补

  2. 标识列由系统自动维护,用户既不能自己输入数据,也不能自己修改数据

  3. 标识列可以同时定义为主键,也可以不定以为主键,根据数据库设计决定

 

Python SQLalchemy 基础操作之数据库增删改查 ORM全称ObjectRelationalMapping,即对象关系映射。简洁的说,ORM将数据库中的表与面向对象语言表达中的类创建了一类对应关系。那样,我们要操作数据库,数据库中的表或是表中的一条记录就可以直接根据操作类或是类案例来完成。 SQLAlchemy是Python社区最知名的ORM工具之一,为高效和性能的数据库访问设计方案,完成了完整的企业级持久模型。 SQLAlchemy优点: 简洁易读:将数据表抽象为对象(数据模型),更形象化易读。 可移植:封装了多种数据库引擎,应对多个 阅读详情

相关推荐

09-06MySQL

数据库概述 什么是数据库 定义:数据库是持久储存有组织可共享数据的容器。 数据库Database简称DB 关系(型)数据库:MySQL、Oracle、SQLServer、SQLite、DB2 非关系(型)数据库:Redis、MongoDB 数据库特点 1、什么是层次模型数据的可享性高,冗余度低,易扩充 2、数据结构化:数据之间具有联系,与文件有很大区别 3、具有较高的数据独立性 4、采用特定的数据类型:数据库中的数据不仅包括数字,还包括文本,图像,音频,视频等 什么是数据库系统 定义:数据库系统是由DB、

qq_44787933的博客 165

数据库的移植操作(四种方式)(SQL Server)

一.为什么要学习数据库移植 1.因为数据库在服务运行状态下无法复制、移动、发送 2.在必要情况下我们必须对目标数据库进行合法的移植操作 二.数据库移植的操作方法 1.关闭MSSQLSERVER服务的方式 (1)如果直接关闭服务(相当于直接关闭服务器),会对正在运行的项目造成威胁 (2)推荐使用以下方式: 注意:在数据库移植之前必须要明确目标数据库物理文件所在位置 2.数据库脱机联机 (脱机后...

qq_44858151的博客 3208

【原创】sqlite3移植及结构化数据存储测试

sqlite3移植及结构化数据存储测试

池上好风---码农改变世界 1639

MySQL数据库迁移方式详解

MySQL数据库迁移是指将MySQL数据库从一台服务器迁移到另一台服务器,或者从一个环境迁移到另一个环境的过程。这通常是为了升级服务器、增加存储空间、提高性能或改变数据库架构。以下是对MySQL数据库迁移的详细解析,包括准备工作、迁移方法、注意事项和优缺点。MySQL数据库的迁移是一项复杂的工作,涉及多个步骤和环节。为了有效减少迁移过程中可能出现的风险,并保障数据的安全与一致,充分的准备工作、详尽的计划制定以及严谨的实施步骤是必不可少的。通过这些措施,可以大大提高迁移的成功率,确保整个过程顺利进行。

OpsEye的博客 1万+

mysql数据库移植

实际上, .frm .myd .myi都是Mysql存储数据的文件, 代表MySQL数据库表的结构/数据和索引文件 ,我们默认创建数据库和表时只生成数据库表结构的文件.frm. 移植数据库时,必须存在三种格式的数据库表文件,才能正常使用该DB, 当我们在本地创建出数据库还有该数据库域下的表时, 在data文件夹下只存在数据库的字符集描述文件和数据库表结构文件,若需要移植数据库, 应该在 该数据库域下, 已就是说 use targetDatabase; 后执行以下语句生成其他两种格式的数据存储文件,

电机控制个人学习路线及专业书籍资源分享

个人学习电机控制的学习路线,和相关专业书的电子文档分享

weixin_45182459的博客 9912

数据库迁移(详细步骤见附件)

一、数据库完整备份: 如下图,我们要分离【SL_BaseMES_T】这个数据库; 我们先进行数据备份处理:点击右键à任务à备份à常规à添加(备份路径)à点击确定à备份完成。 二、转移前测试: 我们可以直接剪切数据试试,但是效果如下(提示文件被占用,剪切失败); 三、数据库分离: 点击右键à任务à分离à勾选删除连接à点击确定(分离后,在查看数据库时,我们会发现我们的数据库【SL_Ba...

孙发 4337

vscode远程开发-调试模式下attach远程进程提示管理员权限失败的问题

vscode 远程开发 附加进程

comhaqs的专栏 2878

Oracle数据库移植全步骤

   Oracle数据库移植全步骤  为了方便更多的人,写了这个! 首先要备份。对于不同版本的Oracle之间导入的原则:低版本exp,高版本imp比如,我的数据库服务器是9i,我电脑上客户端是9i,用9i备份了一个admin20090609.dmp,放在了F:/bak/oraclebak目录下; 其次创建新数据库。我卸载了原来的9i,装了个10.2.0.1

Defonds 的专栏 1万+

ComfyUI全自动换装工作流:从零到一的实战指南

本文提供了一份详细的ComfyUI全自动换装工作流实战指南。从环境配置、模型准备到核心工作流架构的逐步拆解,手把手教你搭建一条高效的AI换装流水线。文章深入解析了从输入、预处理、融合到输出的四步核心逻辑,并分享了关键参数调优与进阶技巧,旨在帮助电商从业者、内容创作者及AI爱好者轻松实现高质量、高效率的“一键换装”。

weixin_29198045的博客 894

雷达工程师避坑指南:STAP处理中,间歇采样转发干扰为什么这么难对付?

本文深入解析了STAP处理中间歇采样转发干扰(ISRJ)的挑战与应对策略。通过分析ISRJ的工作机制和自由度消耗问题,结合仿真数据对比,揭示了其与传统压制干扰的本质差异。文章还探讨了在工程实践中如何构建有效的防御体系,包括降维处理技术选择和混合架构设计,为雷达工程师提供了实用的避坑指南。

weixin_30530339的博客 267

用Python操作MySQL

我在下图中列出了 DB API 规范的作用,这个规范给我们提供了数据库对象连接、对象交互和异常处理的方式,为各种 DBMS 提供了统一的访问接口。需要说明的是,我们在使用 SQL 语句的时候,可以向 SQL 语句传递参数,这时 SQL 语句里要统一用(%s)进行占位,否则就会报错。今天我讲解的是 mysql-connector,它是 MySQL 官方提供的驱动器,用来给后端语言,比如 Python 提供连接。在安装之后,你可以创建数据库连接,然后查看下数据库的版本号,来验证下数据库是否连接成功。

weiye2012的博客 487

YOLOV8多模态(可见光+红外光目标检测任务,基于Ultralytics官方代码实现)

torch 2.3.1 torchvision 0.18.1 Python 3.8.19 tensorrt 8.5.3.1DroneVehicle数据集下载地址DroneVehicle 数据集由无人机采集的 56,878 张图像组成,其中一半是 RGB 图像,其余是红外图像。我们为这 5 个类别制作了丰富的注释,其中包含定向边界框。其中,汽车在 RGB 图像中有 389,779 个注释,在

Mjy的博客 7583

SQLServer 脚本简单创建数据库、数据表及相关设置

以脚本方式创建数据库相比使用企业管理器创建数据库的好处是数据库方便移植,只需要将*.sql文件复制到别的电脑上,打开并执行,就可以快速创建一模一样的数据库。 新建一个*.sql文件(*为自定义名称,最好使用英文字母,别使用中文字符)后开始写脚本代码 以下为创建数据库脚本代码: use master go --删除数据库 if exists(select * from sysdatabase...

weixin_42359607的博客 3130

Redhawk:toggle rate从哪来?

redhwak中toggle rate的相关设置

m0_61544122的博客 8110

HotSpot G1 GC 的分区记账、SATB 并发标记与停顿目标调优解析

线上GC毛刺该调停顿目标、加大新生代还是换收集器?本文从HotSpot G1的设计出发,梳理分区与巨型对象、卡表与记忆集、写屏障与细化线程、停顿预测、SATB并发标记、自适应IHOP、混合回收规则及Full GC兜底,并注明JDK8至JDK27的版本差异。文中在JDK8与JDK17上实测:停顿目标从200ms降到20ms,伊甸区缩小四成、P99下降但仍超目标;巨型对象会反复触发又撤销并发标记;JDK17并行Full GC平均停顿约为JDK8的三成。最后给出日志解读、参数清单、调优流程与选型。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 170万+

SQLServer数据库移植

数据库移植作用: 当数据库在服务运行情况下是无法进行复制、移动与发送的。而在必要的情况下则可以进行移植操作,来达到一定的目的。 关闭MSSQLSERVER服务的方式: 在数据库移植操作时需注意其本地存储位置。 1.数据库脱机联机操作:使数据库达到一种“罢工”状态 ...

方丈山的博客 981

【云原生技术】SonarQube 生态中PMD插件和P3C插件详细介绍

4. 在项目中如何选择 / 组合 1. 小团队、对《阿里规约》认同度高 → 直接启用 **P3C**,配合 SonarJava 基本够用。 2. 追求全面 Bug/安全检测 + 额外编码规范 → **SonarJava + PMD**(必要时加 P3C 少量规则)。 3. 大型多团队,希望“一本规约”统一风格 → **P3C 为主**,再补充 SonarJava/PMD 的 Bug 与安全规则。 4. 通过 Quality Gate 控制:将 **Blocker/Critical** Bug

weixin_46453070的博客 1364

南京邮电大学嵌入式系统开发实验3:嵌入式数据库sqlite移植及使用

实验3 嵌入式数据库sqlite移植及使用 一.实验目的 理解嵌入式软件移植的基本方法,掌握sqlite数据库软件移植的步骤,掌握sqlite开发的两种方式—命令模式和C代码开发模式的使用方法,并编程实现简单通讯录查询实验。 二.实验内容 实验3.1 移植嵌入式数据库sqlite 实验3.2 简单通讯录查询实例设计和测试 三.预备知识 Linux使用、数据库相关知识等 四.实验设备及工具(包括软件调试工具) 硬件:ARM 嵌入式开发平台、PC 机Pentium100 以上、串口线。 软.

m0_54848805的博客 3495

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

将xscj指定为当前数据库_Python SQLalchemy 基础操作之数据库增删改查

ORM 全称 Object Relational Mapping, 即对象关系映射。简单的说,ORM 将数据库中的表与面向对象语言中的类建立了一种对应关系。这样,我们要操作数据库,数据库中的表或者表中的一条记录就可以直接通过操作类或者类实例来完成。SQLAlchemy 是Python 社区最知名的 ORM 工具之一,为高效和高性能的数据库访问设计,实现了完整的企业级持久模型。SQLAlchemy ...

weixin_33435115的博客 659

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

初识MySQL

MySQL简介 MySQL一一它是一款流行的开源数据库,也是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,2008年MySQL被SUN公司收购,在2009年,SUN公司被Oracle公司收购。 MySQL的版本 社区版:可自由下载且完全免费,但官方不支持任何技术支持,使用于大多数普通用户。 企业版:不能自由下载且收费,该版本提供了更多的功能,可以享受完备的技术支持,适用于对数据库的功能和可靠性要求比较高的企业用户。 MySQL的优势 运行速度快。MySQL体积小,命令执行的速度快。 使用

sssec的博客 996

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

python sqlalchemy连接oracle_Python SQLalchemy 基础操作之数据库增删改查

ORM 全称 Object Relational Mapping, 即对象关系映射。简单的说,ORM 将数据库中的表与面向对象语言中的类建立了一种对应关系。这样,我们要操作数据库,数据库中的表或者表中的一条记录就可以直接通过操作类或者类实例来完成。SQLAlchemy 是Python 社区最知名的 ORM 工具之一,为高效和高性能的数据库访问设计,实现了完整的企业级持久模型。SQLAlchemy ...

weixin_39970994的博客 975

建设自己的数据库代码框架一--摘自肖老师博客160304

原文地址:http://blog.youkuaiyun.com/xll712/article/details/50592114 当你对一门技术的入门知识都掌握的差不多了,常用的一些api已经很熟识之后,如果想提 升你的代码质量,就必然需要引入一些设计模式的思想,或者是java中的面向对象思想,而面向对象...

chulongzong9355的博客 145

第四章 Electron|Node 使用SQLite3数据库

SQLite是一种嵌入式关系型数据库管理系统,是一个零配置、无服务器的、自给自足的、事务性的SQL数据库引擎。SQLite是一个轻量级的数据库,可以在各种操作系统上使用,并且支持SQL语言标准。

Wait.End的博客 9238

用于在数据库中定义一个新的数据表,包含列名、数据类型以及完整性约束条件

- MySQL 使用 `DECIMAL(M,D)` 表示定点数,其中 M 是总位数,D 是小数位; - Oracle 统一使用 `NUMBER(p,s)`,功能最灵活,可表示任意精度数字; - SQL Server 和 PostgreSQL 分别使用 `DECIMAL(p,s)` 和 `NUMERIC(p,s)`,两者几乎等价; - MySQL 特有 `MEDIUMINT`(3字节),其他系统无此类型。

[Blog][Domain] programb.blog.youkuaiyun.com 1706
上一篇: SQL入门SQL基本介绍
下一篇: SQL 数据库及数据表的数据添加、修改、删除
满山猴子
博客等级 码龄7年 48粉丝 64原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值