随笔分类 - SQL Server
SQL Server 2019
摘要:## 一、分页查询 ❓ 需求描述:客户端查询数据库数据并显示在表格中。在数据库中进行一次查询,查询结果有1050条记录,但表格单页可显示行上限: 100,这时需要给本次查询记录分配 `?` 页用来显示? 可以通过固定公式进行计算(c伪代码): ```c #define TABLE_SHOW_ROW
阅读全文
摘要:一、问题引入 之前写过一篇博客关于 T-SQL 脚本将 json 文件至 SQL Server,但 T-SQL 脚本只能在 SSMS 软件下运行。 现在迫切需要一种能在操作系统 shell 中运行的脚本,在 StackOverflow 中查询到 powershell 可以将 json 文件导入 SQ
阅读全文
摘要:一、问题引入 在之前的博客中利用阿里开源软件(DataX)实现了数据库数据的迁移:SQL Server --> MongoDB ,并且成功将 2千万条 记录迁移至 MongoDB。当时顺便还记录了迁移速度,迁移方式:分批次迁移(1百万条/次), DataX统计显示迁移速度: 7000+条/s。执行
阅读全文
摘要:一、问题引入 今天写T-SQL脚本一不小心就将数据库中的部分数据删除了,然后还无法进行数据恢复...。为预防下一次数据的误删除,必须有一个数据备份的习惯,可以将数据回退到指定的日期位置。 但问题发生了,总要有解决方法和预案,不然会给业务带来不可逆的损失。 二、解决过程 查询SQL Server恢复的
阅读全文
摘要:一、问题引入 在复习关系型数据库过程中,对于数据库的完整性约束总是一知半解。而且数据库的约束是关系型数据库的重点内容,课本翻过来翻过去好像看懂了,但是通过书面语描述出来又有点困难。 这里借助博客的方式,书面描述数据的约束以及具体操作 二、解决过程 关系型数据约束有六种:主键约束、外键约束、唯一约束、
阅读全文
摘要:一、问题引入 我拥有一张总表(全部数据),现在总表数据过于臃肿,需要进行水平分表。故写了一个 T-SQL 脚本进行分表,但不能每次都手动运行脚本,需要将该脚本添加到计划任务,让后台每隔5分钟执行一次。 想到了Windows的任务计划程序,但是这个程序管理是应用程序exe,对于 T-SQL 脚本是无能
阅读全文
摘要:一、问题引入 本地拥有一张学生表,表中存放学生信息(学号s_no、姓名s_name、性别s_sex、出生年月s_birthday、地址s_adress、联系方式s_phone、学校s_school) 表中的数据已经达到$10^9+$,且这些学生所在的大学不会产生业务逻辑关系,那么把不同学校的学生放在
阅读全文
摘要:SQL Server教程 - SQL Server 索引 一、索引 索引用来排序数据以加快搜索和排序操作的速度。 可以在需要的业务列上建立索引,进行业务查询使用索引作为条件。 索引虽然在搜索和排序有优势,但也有其缺点: 创建索引: CREATE INDEX 索引名 on 表名(列名) 注意:索引名需
阅读全文
摘要:一、问题引入 业务数据一开始存放在SQL Server上,但随着业务的发展,表中的列有增加或者减少,这些操作对于传统的关系型数据库是很不方便的。 由于种种因素,考虑将数据迁移到MongoDB。MongoDB是一种开源的、分布式、非关系型的数据库,在特定的情况下,可以支持业务的存储和访问。虽然之前从没
阅读全文
摘要:一、NULL值 数据库中逻辑值类型有三种:TURE 、FALSE、UNKNOW,其中NULL就代表UNKNOW,NULL和0是有本质区别的,不能混为一谈。 现在来看一个例子:我想要查询未参加考试的学生,下意识就会想:“查询成绩为0的学生”。这是不正确,你不能保证参加考试的学生成绩就没有得0分的。应该
阅读全文
摘要:一、表操作 表操作包括创建表、修改表、删除表 1️⃣ 创建表 创建一张学生表 CREATE TABLE student ( stu_id INTEGER NOT NULL PRIMARY KEY, stu_name NCHAR(10) NOT NULL, stu_phone CHAR(11) NOT
阅读全文
摘要:一、前言 由于在查询时,经常使用到 DATETIME2 类型数据 date_time列,查询效率比较低,用时也很长。如果能转换成 BIGINT 类型的 UNIX时间戳 ,那么查询效率肯定会有所提高 表在建立时,没有 UNIX时间戳 ,故需要新建一列 date_time_unix,接着就要根据 dat
阅读全文
摘要:SQL Server为了日常方便加入了一些内置函数,可以供使用者直接使用,避免用户再去编写函数。 如何学习过C语言可能知道,我们经常使用字符串处理函数,如下: // 字符串复制函数 strcpy() // 字符串拼接函数 strcat() // 字符串计算字符长度函数 strlen() // ...
阅读全文
摘要:学习数据库,理论上来说,应该先从学习理论开始,但我觉得这种实践性强的,直接从实践开始是学习速度和效率最好 一、新建一张学生表 新建一张表和写一篇文章是一样的,你需要构思和打草稿。基本大体需要考虑定下来,不能定下来的后续打补丁,但主体架构要越细越好 这里举例新建一张学生表,首先要收集学生基本信息,包括
阅读全文
摘要:SQL Server要将数据库数据分享给他人,只能直接复制发送。必须在DBMS中分离数据库,生成两个文件(***.mdf 和 ***_log.ldf)。 这是可以将这两个文件分享给他人,然后重新将数据附加回来即可正常工作。 一、附加数据库失败 将分离的数据库文件重新附加回来,发现失败了... 通过网
阅读全文
摘要:一、数据类型timestamp 数据类型:timestamp 的值是二进制数。在插入或更新数据时,自动添加timestamp值,而且还是唯一的值,它不是用来记录 日期/时间字符串的。 表结构: 插入语句: -- 插入一行 insert into student(id, name, age) valu
阅读全文
摘要:一、登录名 1-1 新建登录名 登录名是用来登录SQL Server,能登录SQL Server 不一定能访问数据库 通过超级管理员账户 sa 创建普通登录账户(即普通登录名): user-1,登录密码:123456 注意:新建登录名过程中,重点注意 选择页-常规 和 选择页-状态 1-2 登录名访
阅读全文
摘要:SQL Server 2019 删除数据库用户:数据库主体在该数据库中拥有架构,无法删除 一、介绍 由于需要在数据库中删除数据库用户,但是删除时提示报错,无法删除 具体如何删除,请参考文末链接。已验证,按照步骤可以成功删除数据库用户 ❤ 第一步: 查询需要删除的数据库用户的属性-->拥有的架构; ❤
阅读全文
摘要:测试环境: 1)客户端操作系统: windows 10 x64 2)ODBC驱动:Microsoft ODBC Driver 17 for SQL Server 3)IDE:Visual Studio 2017 一、速度测试 测试json长度:535个字符 ❤ 实验目的:往SQL Server 20
阅读全文
摘要:一、trigger的介绍 触发器是特殊的存储过程,它在特定的数据库活动发生时自动执行。 触发器可以与特定表上的 INSERT 、 DELETE 、 UPDATE 操作(或组合)相关联。 💡 一般来说,约束的处理比触发器快,若能通过约束解决则优先考虑约束,而不是触发器 二、trigger的创建 2-
阅读全文