先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Web前端全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024c (备注前端)
正文
USE xsbook
GO
CREATE TABLE book
(
ISBN char(18) NOT NULL PRIMARY KEY,
书名 char(40) NOT NULL,
作者 char(16) NOT NULL,
出版社 char(30) NOT NULL,
价格 float NOT NULL,
复本量 int NOT NULL,
库存量 int NOT NULL
)
【例】 创建一个课程成绩表,包含课程号、课程名、总成绩、人数和平
均成绩,其中平均成绩=总成绩/人数。
CREATE TABLE kccj
( 课程号 char(3) PRIMARY KEY,
课程名 char(10) NOT NULL,
总成绩 real NOT NULL,
人数 int NOT NULL,
平均成绩 AS 总成绩/人数 PERSISTED
)
注:平均成绩为计算字段,由同一表中的其它字段通过表达式计算得到,在 插入或修改数据时不能对计算列赋值, PERSISTED 为可选,如没有
PERSISTED 关键字,则在计算列上不能添加PRIMARY KEY 、UNIQUE、
DEFALULT等约束条件。
2.修改表结构
T-SQL中对表进行修改的语句是ALTER TABLE,该语句基本语法格式为:
ALTER TABLE <表名> {
ALTER COLUMN <列名>
{ <新数据类型> [ (precision,[,scale])] [NULL | NOT NULL]
} /修改已有字段的属性/
| ADD {[<colume_definition>]}[,…n] /增加新字段/
| DROP {[CONSTRAINT] constraint_name | COLUMN column}[,…n]
/删除字段/
}
说明:
(1)ALTER COLUMN子句:修改表中指定列的属性。
(2)ADD子句:向表中增加新字段,新字段的定义方法与CREATE TABLE
语句中定义字段的方法相同。
(3)DROP子句:从表中删除字段或约束,COLUMN参数中指定的是被删除的字段名,constraint_name是被删除的约束名。
3.删除表
T-SQL中对表进行删除的语句是DROP TABLE,该语句的语法格式为:
DROP TABLE <表名>
例如,要删除表kccj,使用的T-SQL语句为:
DROP TABLE kccj
1.创建分区函数
创建分区函数使用CREATE PARTITION FUNCTION命令,语法格式如下:
CREATE PARTITION FUNCTION <分区函数名> ( <数据类型> )
AS RANGE [ LEFT | RIGHT ]
FOR VALUES ( [ boundary_value [ ,…n ] ] )
[ ; ]
说明:
(1)AS RANGE:指定分区边界值boundary_value属于每个边界值间隔的哪 一侧(左侧还是右侧),默认left。
(2)FOR VALUES:为每个分区指定边界值,边界值不超过999。
2.创建分区方案
每个分区必须映射到一个文件组。一般情况下,文件组数最好与分区数相同,并且这些文件组通常位于不同的磁盘上。一个分区方案只可以使用一个分区函数,而一个分区函数可以用于多个分区方案中。
CREATE PARTITION SCHEME命令的语法格式如下:
CREATE PARTITION SCHEME <分区方案名>
AS PARTITION <分区函数名>
[ ALL ] TO ( { file_group_name | [ PRIMARY ] } [ ,…n ] )
[ ; ]
说明:
(1)ALL:指定所有分区都映射到在file_group_name 中提供的文件组,或映 射到主文件组(如果指定了[PRIMARY])。指定了all只能指定一个文件组。
(2)file_group_name:指定用来持有由分区函数指定的分区的文件组的名称。
3.使用分区方案创建分区表
分区函数和分区方案创建以后就可以创建分区表了。创建分区表使用CREATE TABLE语句,只要在ON关键字后指定分区方案和分区列即可。
========================================================================
1.插入记录
插入记录将新记录添加在表尾,可以向表中插入多条记录。
将光标定位到当前表尾的下一行,然后逐列输入列的值。每输入完一列的值,按回车键,光标将自动跳到下一列,便可编辑该列。若当前列是表的最后一列,则该列编辑完后按下回车键,光标将自动跳到下一行的第一列,此时上一行输入的数据已经保存,可以增加下一行。
若表的某列不允许为空值,则必须为该列输入值,例如表xs的借书证号、姓名。若列允许为空值,那么,不输入该列值,则在表格中将显示“NULL”字样, 如xs表的照片列。
2.删除记录
当表中的某些记录不再需要时,要将其删除。在“对象资源管理器”中删除记录的方法是:在“表数据的窗口”中定位需被删除的记录行,单击该行最前面 的黑色箭头处选择全行,右击鼠标,选择“删除(D)”菜单项。
3.修改记录
在“操作表数据的窗口”中修改记录数据的方法是,先定位被修改的记录字段,然后对该字段值进行修改,修改之后将光标移到下一行即可保存修改的内容。
1.插入表记录
T-SQL中向表中插入数据的语句是INSERT。INSERT语句最基本的格式为:
INSERT table_name
VALUES ( constant1, constant2,…)
该语句的功能是向由table_name指定的表中加入由VALUES指定的各列值的行。
【例】 向xsbook数据库的表xs1中插入如下的一行:
131246 周涛 1 “1995-9-10” 英语 0
使用如下的T-SQL语句:
USE xsbook
INSERT INTO xs1
VALUES(‘20000003’,‘周涛’,‘英语’,1,‘1995-9-10’,0,NULL)
右击该表选择“编辑前200行”菜单项,在数据窗口中可以发现表中已经增加了借书证号为“131246”这一行。
下面给出INSERT语句的完整语法格式:
[ WITH <common_table_expression> [ ,…n ] ] /*指定临时结果集,在SELECT语句中介
绍*/
INSERT [ TOP ( expression ) [ PERCENT ] ]
[ INTO ]
{ <表名>
| <视图名>
}{
[ ( column_list ) ] /列列表/
{ VALUES ( ( { DEFAULT | NULL | expression } [ ,…n ] ) [ ,…n ] )/指定列值的value子 句/
| derived_table /结果集/
| execute_statement /有效的EXECTUTE语句/
| DEFAULT VALUES /强制新行包含为每个列定义的默认值/
}
}
在INSERT的语法格式中:
(1)column_list:包含了新插入数据行的各列的名称。如果只给表的部分列插入数据时,需要用column_list指出这些列。例如,当加入到表中的记录的某些列为空值或为缺省值时,可以在INSERT语句中给出的列表中省略这些列。没有在column_list中指出的列,它们的值根据默认值或列属性来确定,原则是:
-
具有IDENTITY属性的列,其值由系统根据seed和increment值自动计算得到。
-
具有默认值的列,其值为默认值。
-
没有默认值的列,若允许为空值,则其值为空值。若不允许为空值,则出错。
-
类型为timestamp的列,系统自动赋值。
-
如果是计算列,则使用计算值。
(2)VALUES子句: 包含各列需要插入的数据清单,数据的顺序要与列的顺序相对应。若省略colume_list,则VALUES子句给出每一列(除IDENTITY属性和timestamp类型以外的列)的值。VALUES子句中的值可有三种:
-
DEFAULT:指定为该列的默认值。这要求定义表时必须指定该列的默认值。
-
NULL:指定该列为空值。
-
expression:可以是一个常量、变量或一个表达式,其值的数据类型要与列的数据类型一致。
注意表达式中不能有SELECT及EXECUTE语句。
(3)derived_table:是一个由SELECT语句查询所得到的结果集。利用该参数,可把一个表中的部分数据插入到另一个表中。结果集中每行数据的字段数、字段的数据类型要与被操作的表完全一致。使用结果集向表中插入数据时可以使用TOP ( expression ) [ PERCENT ]选项,这个选项可以在结果集中选择指定的行数或占指定百分比数的行插入表中。expression可以是行数或行的百分比,使用百分比时要加PERCENT关键字。
(4)DEFAULT VALUE:该关键字说明向当前表中所有列均插入其默认值。
此时,要求所有列均定义了默认值。
【例】 设已用如下的语句建立了表test。
CREATE TABLE test
(
姓名 char(20) NOT NULL,
专业 varchar(30) NOT NULL DEFAULT ‘计算机’,
年级 tinyint NOT NULL
)
那么,用如下的INSERT语句向test表中插入一条记录:
INSERT INTO test(姓名,年级) VALUES(‘王林’,3)
此时,插入到test表中的这条记录为:王林 计算机 3
注:1. 指定列名情况下,除了默认值和允许为空的列以外,其他列均要包含在内,values值的排序要与前面列名一一对应;
- 不指定列名情况下, values 必须包含所有字段值,且排序要与列的顺序一一对应。
【例】 向表xs1中插入xs表的所有数据。
INSERT INTO xs1
SELECT *
FROM xs
上面这条INSERT语句的功能是:将xs表中所有记录的值插入到xs1表的各行中。
可用如下的SELECT语句进行查询看插入结果:
SELECT *
FROM xs1
在执行INSERT语句时,如果插入的数据与约束或规则的要求产生冲突或值的数据类型与列的数据类型不匹配,那么INSERT执行失败。
2.删除表记录
在T-SQL语言中,删除数据可以使用DELETE语句或TRANCATE TABLE语句来实现。
(1)用DELETE语句删除数据
DELETE的功能是从表中删除行,其最基本的语法格式为:
DELETE [FROM] { <表名> | <视图名> }
[WHERE <search_condition>]
该语句的功能为从指定的表或视图中删除满足<search_condition>条件的行,若省略该条件,表示删除所有行。
【例】 将xs1表中借书量为0的行删除。使用如下T-SQL语句:
USE xsbook
DELETE FROM xs1
WHERE 借书量=0
下面给出DELETE语句的完整语法格式:
[ WITH <common_table_expression> [ ,…n ] ] /*指定临时结果集,在SELECT语句中
介绍*/
DELETE [ TOP ( expression ) [ PERCENT ] ]
[ FROM ]
{ <表名> /从表中删除数据/
| <视图名> /从视图删除数据/
}
[ FROM <table_source> [ ,…n ] ] /从table_source删除数据/
[ WHERE { <search_condition> /指定条件/
| { [ CURRENT OF { { [ GLOBAL ] cursor_name } | cursor_variable_name }]}
/有关游标的说明,见第4章/
}]
[; ]
(2)使用TRUNCATE TABLE语句删除表数据
使用TRUNCATE TABLE语句将删除指定表中的所有数据,因此也称其为清 除表数据语句,其语法格式为:
TRUNCATE TABLE <表名>
由于TRUNCATE TABLE语句将删除表中的所有数据,且无法恢复,因此使用时必须十分当心。
3.修改表记录
T-SQL中用于修改表数据行的语句是UPDATE。UPDATE语句的最基本格式为:
UPDATE { <表名> | <视图名> }
SET column_name = {expression | DEFAULT | NULL } [,…n]
[WHERE <search_condition>]
该语句的功能是:将指定的表或视图中满足<search_condition>条件的记录中由SET指定的各列的列值设置为SET指定的新值,若不使用WHERE子句,则更新所有记录的指定列值。
【例】 将xsbook数据库的xs1表中借书证号为“131246”的记录的“专 业”字段值改为“计算机”,使用如下的T-SQL语句:
USE xsbook
UPDATE xs1
SET 专业 = ‘计算机’
WHERE 借书证号 = ‘131246’
查看表数据以后可以发现表中借书证号为“131246”的行的专业值已被修改,如图所示。
下面给出UPDATE语句的完整语法格式:
[ WITH <common_table_expression> […n] ]
UPDATE [ TOP ( expression ) [ PERCENT ] ]
{ <表名> /修改表数据/
| <视图名> /修改视图数据/
}
SET /赋予新值/
{ column_name = { expression | DEFAULT | NULL } /为列重新指定值/
| column_name { .WRITE ( expression , @Offset , @Length ) }
| @variable = expression /指定变量的新值/
| @variable = column = expression /指定列和变量的新值/
| column_name { += | -= | *= | /= | %= | &= | ^= | |= } expression
| @variable { += | -= | *= | /= | %= | &= | ^= | |= } expression
| @variable = column { += | -= | *= | /= | %= | &= | ^= | |= } expression
} [ ,…n ]
[ FROM{ <table_source> } [ ,…n ] ]
[ WHERE { <search_condition> /指定条件/
| { [ CURRENT OF /有关游标的说明/
{ { [ GLOBAL ] cursor_name } | cursor_variable_name } ]}
}
] [ ; ]
4.同步两个表的记录
在SQL Server 2012中,使用MERGE语句可以根据与源表联接的结果,对目标表执行插入、更新或删除操作。例如,根据在一个表中找到的差异在另一个表中插入、更新或删除行,可以对两个表进行信息同步。
语法格式:
MERGE
[ INTO ] target_table [ [ AS ] table_alias ]
USING <table_source>
ON <merge_search_condition>
[ WHEN MATCHED [ AND <search_condition> ]
THEN { UPDATE SET <set_clause> | DELETE } ] [ WHEN NOT MATCHED [ BY TARGET ] [ AND < search_condition> ]
THEN INSERT [ ( column_list ) ] { VALUES ( values_list ) |
DEFAULT VALUES } ] [ WHEN NOT MATCHED BY SOURCE [ AND <search_condition> ]
THEN { UPDATE SET <set_clause> | DELETE }]
说明:
这里分享一份由字节前端面试官整理的「2021大厂前端面试手册」,内容囊括Html、CSS、Javascript、Vue、HTTP、浏览器面试题、数据结构与算法。全部整理在下方文档中,共计111道
HTML
-
HTML5有哪些新特性?
-
Doctype作⽤? 严格模式与混杂模式如何区分?它们有何意义?
-
如何实现浏览器内多个标签页之间的通信?
-
⾏内元素有哪些?块级元素有哪些? 空(void)元素有那些?⾏内元 素和块级元素有什么区别?
-
简述⼀下src与href的区别?
-
cookies,sessionStorage,localStorage 的区别?
-
HTML5 的离线储存的使用和原理?
-
怎样处理 移动端 1px 被 渲染成 2px 问题?
-
iframe 的优缺点?
-
Canvas 和 SVG 图形的区别是什么?
JavaScript
-
问:0.1 + 0.2 === 0.3 嘛?为什么?
-
JS 数据类型
-
写代码:实现函数能够深度克隆基本类型
-
事件流
-
事件是如何实现的?
-
new 一个函数发生了什么
-
什么是作用域?
-
JS 隐式转换,显示转换
-
了解 this 嘛,bind,call,apply 具体指什么
-
手写 bind、apply、call
-
setTimeout(fn, 0)多久才执行,Event Loop
-
手写题:Promise 原理
-
说一下原型链和原型链的继承吧
-
数组能够调用的函数有那些?
-
PWA使用过吗?serviceWorker的使用原理是啥?
-
ES6 之前使用 prototype 实现继承
-
箭头函数和普通函数有啥区别?箭头函数能当构造函数吗?
-
事件循环机制 (Event Loop)
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注前端)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
-
问:0.1 + 0.2 === 0.3 嘛?为什么?
-
JS 数据类型
-
写代码:实现函数能够深度克隆基本类型
-
事件流
-
事件是如何实现的?
-
new 一个函数发生了什么
-
什么是作用域?
-
JS 隐式转换,显示转换
-
了解 this 嘛,bind,call,apply 具体指什么
-
手写 bind、apply、call
-
setTimeout(fn, 0)多久才执行,Event Loop
-
手写题:Promise 原理
-
说一下原型链和原型链的继承吧
-
数组能够调用的函数有那些?
-
PWA使用过吗?serviceWorker的使用原理是啥?
-
ES6 之前使用 prototype 实现继承
-
箭头函数和普通函数有啥区别?箭头函数能当构造函数吗?
-
事件循环机制 (Event Loop)
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注前端)
[外链图片转存中…(img-haUbRyyV-1713429759295)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!