SQL Server学习笔记,2024年最新java架构师面试宝典和答案哪个好

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注Java)
img

正文

dbcc shrinkdatabase(数据库名字,可用空间占比)

收缩指定文件:

dbcc shrinkfile(文件名,收缩后目标大小)

  1. 管理数据库文件

删除数据文件:

alter database 数据库名

remove file 文件名

创建文件组:

alter database 数据库名

add filegroup 新文件组名

修改文件组为默认文件组:

alter database 数据库名

modify filegroup A default --将文件组A设置为默认文件组

移动数据库文件:

alter database 数据库名

modify file ( name = 文件名字,

filename = ’ ');

  1. 删除数据库

删除单个数据库:

drop database 数据库名

删除多个数据库:

drop database 数据库A,数据库B…

  1. 分离和附加数据库

分离数据库:

execute sp_detach_db ’ 数据库名’,'true/false ’ --第二个参数为跳过还是运行“更新统计信息”

附加数据库:

create database 数据库名

on( filename = ’ ')

for attach

=================================================================

SQL Server基础


记于2021.4.6

SQL语言的特点
  • 一体化

  • 高度非过程化

  • 简洁

  • 使用方式多样

SQL语言功能概述
  • 数据查询: select

  • 数据定义: create、drop、alter

  • 数据操纵: insert、update、delete

  • 数据控制: grant、revoke、deny

系统提供数据类型

| 数据类型 | 存储空间 | 说明 |

| — | — | — |

| bigint | 8字节 | |

| int | 4字节 | |

| smallint | 2字节 | |

| tinyint | 1字节 | 0-255的整数 |

| bit | 1字节 | |

| numeric(p,s)----decimal(p,s) | 最多17字节 | 带固定精度和小数位数的数字类型 |

| float[(n)] | 4或8字节 | n在1-24之间使用24,占4字节、n在25-53之间使用53.占8字节 |

| real | 4字节 | 浮点型数 |

| char(n) | n个字节 | 固定长度,长度范围1-8000 |

| varchar | 字符数+2字节 | 可变长度,长度范围1-8000 |

| text | 每个字符1个字节 | |

| nchar(n) | 2n字节 | 固定长度的统一编码字符串类型,n表示字符串的最大长度,取值范围为1~4000 |

| nvarchar(n) | 2*字符数+2字节额外开销 | 可变长度的统一编码字符串类型,n表示字符串的最大长度,取值范围为1-4000 |

| ntext | 每个字符2个字节 | |

| binary(n) | n字节 | 固定长度的二进制数据,n的取值范围为1~8000 |

| | | |

| varbinary (n) | 字符数+2字节 | 可变长度的二进制数据,n的取值范围为1~8000 |

| image | 每个字符1个字节 | 可变长度的二进制数据,最多为231-1 (2,147,483,647)个十六进制数字 |

| date | 3字节 | 默认格式为:YYYY-MM-DD |

| time[(n)] | 3-5字节 | 定义一天中的某个时间,该时间基于24小时制 |

| datetime | 8字节 | 定义一个采用24小时制并带有秒的小数部分的日期和时间,默认格式为:YYYY-MM-DD hh:mm:ss.nnn |

| smalldatetime | 4字节 | 定义一个采用24小时制并且秒始终为零(:00)的日期和时间,范围为到。默认格式为:YYYY-MM-DD hh:mm:00。精确到1分钟 |

| datetime2 | 6-8字节 | 可将该类型看成是datetime类型的扩展,其数据范围更大,默认的小数精度更高,并具有可选的用户定义的精度 |

| datetimeoffset | 8-10字节 | 定义一个与采用 24 小时制并与可识别时区的一日内时间相组合的日期,该数据类型使用户存储的日期和时间(24小时制)是时区一致的。语法格式为:datetimeoffset [(n)],n为秒的精度,最大为7。默认格式为:YYYY-MM-DD hh:mm:ss[.nnnnnnn] [{+ |

| money | 8字节 | |

| smallmoney | 4字节 | |

注意点:

  • 如果一个表中有8个或8个以下的bit列,则这些列用1字节存储

  • 为了节省数据库空间,尽可能使用包含所有可能值的最小数据类型,例如,年龄用tinyint就够了

  • 如果列数据项的大小一致,则使用char,如果列数据项的大小差异很大,则使用varchar

用户定义数据类型

create type 数据类型架构名 from char(8) not null

–定义一个cahr(8)数据类型且不允许空值

T-SQL基础知识

语句批:

  • 一组SQL语句集合

  • 作为一个执行单元

  • 结束标记:GO

脚本:

  • 存储在文件中的SQL语句集合

注释:

  • 单行注释符:–

  • 多行注释符:/* */

变量

变量是被赋予一定值的语言元素。

局部变量: 必须先声明才能使用。

@变量名:用户使用

全局变量:

@@变量名:系统提供且预先声明的变量,系统用于记录信息,用户一般只能查看不能修改

变量赋值:

SET { @local_variable = expression }

| { @local_variable

{ += | -= | *= | /= | %= | &=

| ^= | |= } expression }

SELECT @local_variable = expression

例子:

–计算两个变量的和值,然后显示其结果

DECLARE @x int = 10

DECLARE @y int = 20

DECLARE @z int

SET @z = @x + @y

Print @z

流程控制语句

在这里插入图片描述

=================================================================

架构与基本表


记于2021.6.7

架构
定义架构

架构(schema,也称为模式)是数据库下的一个逻辑命名空间,可以存放表、视图等数据库对象,它是一个数据库对象的容器。

一个数据库可包含一个或多个架构,由特定的授权用户所拥有。在同一个数据库中,架构名必须唯一。

架构对象的类型包括:基本表、视图、触发器等。

CREATE SCHEMA schema_name_clause [ <schema_element> [ …n ] ]

<schema_name_clause> ::= {

schema_name

| AUTHORIZATION owner_name

| schema_name AUTHORIZATION owner_name }

<schema_element> ::= {

table_definition | view_definition | grant_statement

revoke_statement | deny_statement }

实例:

–为用户“U1”定义一个架构,架构名为“Salse”

create schema Salse authorization U1

–创建由U1拥有、包含Test表的架构Common,同时授予U2对Test表有SELECT权,

–授予U3不能对Test表有删除权限

create schema Common authorization U1

create table Test (

C1 int primary key,

C2 char(4) )

grant select TO U2

deny delete TO U3;

在架构之间传输对象

在架构之间传输对象就是更改对象所属的架构。

alter schema 移入的架构名 transfer 被移出架构的名字

实例:

–将Test表从Common架构传输到Special架构中。

altrer schema Special transfer Commer.Test

删除架构

drop schema 架构名

实例:

–删除Special架构,假设该架构中包含Test表

drop table Special.Test; --删除架构中的对象

drop schema Special; --删除架构

基本表
创建基本表

普通表:在这里插入图片描述

在这里插入图片描述

有计算列的表:

create table comptable (

low int,

high int,

myavg as(low+high)/2

)

创建临时表

临时表是存储在内存中的表,临时表根据其使用范围可以分为两种:本地临时表和全局临时表。

本地临时表:在表名前加“#”

全局临时表:在表名前加“##”

修改基本表

在定义完表之后,如果需要修改表结构,比如添加列、删除列或修改列定义,可以使用alter table语句实现。

在这里插入图片描述

删除表

drop table 表名

分区表

分区表是把数据按某种标准划分成区域存储在不同的文件组中,使用分区可以快速而有效地管理和访问数据子集,从而使大型表或索引更易于管理。

合理的使用分区会在很大程度上提高数据库的性能。

以下情况时适合分区:

  • 表中数据量大;

  • 该表包含(或将包含)以多种不同方式使用的大量数据。

  • 数据是分段的,比如数据以年为分隔。

  • 对表的常规维护操作只针对表的一个数据子集。

分区表的特点:

  • 分区表是从物理上将一个大表分成几个小表,但从逻辑上来看,还是一个大表。

  • 对用户而言,所面对的依然是一个大表,他们不需要考虑操作的年份对应的小表,用户只要将记录插入到大表——逻辑表中就可以了,数据库管理系统会自动将数据放置到它对应的那个物理小表中。

创建分区函数

左侧分区:

在这里插入图片描述

–在 int 列上创建左侧分区函数。下列分区函数将表分为四个分区

create partition function myrangepf1(int)

as range left for values(1,100,1000);

右侧分区:

在这里插入图片描述

–在 int 列上创建右侧分区函数。下列分区函数将表分为四个分区

create partition function myrangepf2(int)

as range right for values(1,100,1000);

创建分区方案

–先创建一个分区函数,该函数将表分为四个分区。

–然后创建一个分区方案,在其中指定拥有这四个分区中每一个分区的文件组

create partition function myrangepf1(int)

as range left for values(1,100,1000);

go

最近我根据上述的技术体系图搜集了几十套腾讯、头条、阿里、美团等公司21年的面试题,把技术点整理成了视频(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
cn/20210407160545105.png)

–在 int 列上创建右侧分区函数。下列分区函数将表分为四个分区

create partition function myrangepf2(int)

as range right for values(1,100,1000);

创建分区方案

–先创建一个分区函数,该函数将表分为四个分区。

–然后创建一个分区方案,在其中指定拥有这四个分区中每一个分区的文件组

create partition function myrangepf1(int)

as range left for values(1,100,1000);

go

[外链图片转存中…(img-KUKVeKhI-1713428091393)]

最近我根据上述的技术体系图搜集了几十套腾讯、头条、阿里、美团等公司21年的面试题,把技术点整理成了视频(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分

[外链图片转存中…(img-jC5w361o-1713428091394)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
[外链图片转存中…(img-KkIeGKW5-1713428091394)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值