先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Web前端全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024c (备注前端)
正文
-
SELECT DISTINCT 去重语句
-
WHERE 条件语句
-
AND、OR 和 NOT 运算符
-
ORDER BY 排序
数据库操作
CREATE DATABASE 建数据库
ALTER DATABASE 改数据库
表操作
CREATE TABLE 建表
ALTER TABLE 改表
DROP TABLE 删表
数据操作
INSERT INTO 增
DELETE 删
UPDATE 改
SELECT 查
在进行以下教程之前,需要先启动Mysql服务
- 在Linux下可以使用指令:
sudo service mysql start
。
- 使用
sudo service mysql stop
停止服务。
- 在Windows下可以使用指令:
net start mysql
启动服务
- 使用
net stop mysql
关闭服务。
启动遇到问题可以留言哦
CREATE DATEBASE 创建数据库语句
我们可以在登陆 MySQL 服务后,使用 create 命令创建数据库,语法如下:
CREATE DATABASE 数据库名;
以下命令简单的演示了创建数据库的过程,数据名为 DB_AHOH:
wwei@DESKTOP-VQSGCBC:~$ sudo mysql -u root -p
Enter password: # 这里是密码输入
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 18
Server version: 8.0.26-0ubuntu0.20.04.2 (Ubuntu)
Copyright © 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
mysql> CREATE DATABASE DB_AHOH; # 执行数据库创建指令
Query OK, 1 row affected (0.01 sec)
mysql>
我们还可以在创建数据库的时候,指定数据库的编码方式,例如,我们使用utf-8
字符集:
CREATE DATABASE DB_AHOH
DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
通常情况下,我们启动Mysql,进入Mysql命令行中后,会首先查看当前Mysql中都有哪些数据库,这个时候就可以使用指令:
show databases;
如果我们只希望查看某个特定的数据库,例如以上创建的
DB_AHOH
,我们还可以使用指令:show create database DB_AHOH;
mysql> show create database DB_AHOH;
±---------±----------------------------------------------------------------------------------------------------+
| Database | Create Database |
±---------±----------------------------------------------------------------------------------------------------+
| DB_AHOH | CREATE DATABASE
DB_AHOH
/*!40100 DEFAULT CHARACTER SET utf8 / /!80016 DEFAULT ENCRYPTION=‘N’ */ |
±---------±----------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
通过改指令,我们可以看到当前数据库的编码方式。
ALTER DATABASE 数据库修改语句
在MySQL中,可以使用ALTER DATABASE
语句来修改已经被创建的数据库。修改数据库的语法格式为:
ALTER DATABASE [数据库名] { [ DEFAULT ] CHARACTER SET <字符集名> |[ DEFAULT ] COLLATE <校对规则名>}
语法说明如下:
-
ALTER DATABASE 用于更改数据库的全局特性。这些特性存储在数据库目录的 db.opt 文件中;
-
使用 ALTER DATABASE 需要获得数据库 ALTER 权限;
-
数据库名称可以忽略,如果忽略,语句对应默认的数据库;
-
CHARACTER SET 子句用于更改默认的数据库字符集。
我们可以将上节创建的 DB_AHOH
数据库字符集修改为GBK,指令如下:
ALTER DATABASE DB_AHOH DEFAULT CHARACTER SET GB2312 COLLATE gb2312_chinese_ci;
如果我们在利用show
指令查看数据库,就可以发现字符集已经发生了变化:
mysql> SHOW CREATE DATABASE DB_AHOH;
±---------±------------------------------------------------------------------------------------------------------+
| Database | Create Database |
±---------±------------------------------------------------------------------------------------------------------+
| DB_AHOH | CREATE DATABASE DB_AHOH
/*!40100 DEFAULT CHARACTER SET gb2312 / /!80016 DEFAULT ENCRYPTION=‘N’ */ |
±---------±------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
提示:
在进行以下教程,创建数据表之前,我们需要先使用指令
USE DB_AHOH;
选中目标数据库。
如果不选中数据库,将会在创建表时遇到以下错误:
mysql> CREATE TABLE IF NOT EXISTS
t_users
(
-> `user_id` INT UNSIGNED AUTO_INCREMENT,
-> `username` VARCHAR(100) NOT NULL,
-> `password` VARCHAR(40) NOT NULL,
-> `age` INT NOT NULL,
-> `create_date` DATE,
-> PRIMARY KEY ( `user_id` )
-> )ENGINE=InnoDB DEFAULT CHARSET=utf8bm4;
ERROR 1046 (3D000): No database selected
mysql>
CREATE TABLE 创建表语句
在创建数据库之后,接下来就要在数据库中创建数据表。
创建MySQL数据表需要以下信息:
-
表名
-
表字段名
-
定义每个表字段
指令语法如下:
CREATE TABLE 表名 (列名 列数据类型);
以下示例,我们将在 DB_AHOH
数据库中创建数据表 t_users
:
CREATE TABLE IF NOT EXISTS t_users
(
user_id
INT UNSIGNED AUTO_INCREMENT,
username
VARCHAR(100) NOT NULL,
password
VARCHAR(40) NOT NULL,
age
INT NOT NULL,
create_date
DATE,
PRIMARY KEY ( user_id
)
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
指令解析:
-
如果你不想字段为
NULL
可以设置字段的属性为NOT NULL
, 在操作数据库时如果输入该字段的数据为NULL ,就会报错。 -
AUTO_INCREMENT
定义列为自增的属性,一般用于主键,每插入一条数据数值会自动加1。 -
PRIMARY KEY
关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。 -
ENGINE
设置存储引擎,CHARSET
设置编码。
数据表创建指令执行效果如下:
mysql> CREATE TABLE IF NOT EXISTS t_users
(
-> user_id
INT UNSIGNED AUTO_INCREMENT,
-> username
VARCHAR(100) NOT NULL,
-> password
VARCHAR(40) NOT NULL,
-> age
INT NOT NULL,
-> create_date
DATE,
-> PRIMARY KEY ( user_id
)
-> )ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
Query OK, 0 rows affected (0.02 sec)
mysql>
注意:MySQL
命令终止符为分号 ;
。
注意: ->
是换行符标识,不要复制。
在创建成功数据表后,我们可以使用 show tables;
指令查看当前数据库中都有哪些表,执行效果如下:
mysql> show tables;
±------------------+
| Tables_in_DB_AHOH |
±------------------+
| t_users |
±------------------+
1 row in set (0.00 sec)
如果我们需要查看 t_users
表的内部结构就可以使用 desc t_users;
指令,执行效果如下:
mysql> desc t_users;
±------------±-------------±-----±----±--------±---------------+
| Field | Type | Null | Key | Default | Extra |
±------------±-------------±-----±----±--------±---------------+
| user_id | int unsigned | NO | PRI | NULL | auto_increment |
| username | varchar(100) | NO | | NULL | |
| password | varchar(40) | NO | | NULL | |
| age | int | NO | | NULL | |
| create_date | date | YES | | NULL | |
±------------±-------------±-----±----±--------±---------------+
5 rows in set (0.00 sec)
通过该指令,我们可以清晰的看到数据表中的列名和属性等信息。
ALTER TABLE 修改数据表语句
修改数据表的前提是数据库中已经存在该表,在Mysql中可以使用ALTER TABLE
指令修改原有的表结构,例如增加或删减列、更改原有列类型、重新命名列或表等。
语法格式:
ALTER TABLE <表名> [可选项]
可选项包括:
{ ADD COLUMN <列名> <类型>
| CHANGE COLUMN <旧列名> <新列名> <新列类型>
| ALTER COLUMN <列名> { SET DEFAULT <默认值> | DROP DEFAULT }
| MODIFY COLUMN <列名> <类型>
| DROP COLUMN <列名>
| RENAME TO <新表名>
| CHARACTER SET <字符集名>
| COLLATE <校对规则名> }
- 修改表名
语法规则如下:
ALTER TABLE <旧表名> RENAME [TO] <新表名>;
TO
为可选参数,存在与否不影响结果。
例如,我们希望将表 t_users
修改为 users_t
,SQL指令应该写为:
ALTER TABLE t_users RENAME TO users_t;
在命令行中的执行过程如下:
mysql> ALTER TABLE t_users RENAME TO users_t;
Query OK, 0 rows affected (0.02 sec)
mysql> show tables;
±------------------+
| Tables_in_DB_AHOH |
±------------------+
| users_t |
±------------------+
1 row in set (0.00 sec)
- 修改表字符集
语法规则如下:
ALTER TABLE 表名 [DEFAULT] CHARACTER SET <字符集名> [DEFAULT] COLLATE <校对规则名>;
DEFAULT
为可选参数,存在与否不影响结果。
例如,我们将表 users_t
的字符集修改为 gb2312
,校对规则修改为 gb2312_chinese_ci
,SQL指令如下:
ALTER TABLE users_t CHARACTER SET gb2312 DEFAULT COLLATE gb2312_chinese_ci;
在代码中的执行过程如下:
mysql> ALTER TABLE users_t CHARACTER SET gb2312 DEFAULT COLLATE gb2312_chinese_ci;
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> show create table users_t;
±--------±----------------------------------------------------------------------------+
| Table | Create Table |
±--------±----------------------------------------------------------------------------+
| users_t | CREATE TABLE users_t
(
user_id
int unsigned NOT NULL AUTO_INCREMENT,
username
varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
password
varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
age
int NOT NULL,
create_date
date DEFAULT NULL,
PRIMARY KEY (user_id
)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312 |
±--------±----------------------------------------------------------------------------+
1 row in set (0.00 sec)
- 添加数据列
一个数据列包括列名、数据类型和约束条件,MySQL 添加字段的语法格式如下:
ALTER TABLE <表名> ADD <新字段名><数据类型>[约束条件];
对语法格式的说明如下:
-
<表名> 为数据表的名字;
-
<新字段名> 为所要添加的字段的名字;
-
<数据类型> 为所要添加的字段能存储数据的数据类型;
-
[约束条件] 是可选的,用来对添加的字段进行约束。
这种语法格式默认在表的最后位置(最后一列的后面)添加新字段。
例如,我们在表 users_t
末尾添加一个新的数据列 sex
:
ALTER TABLE users_t ADD sex CHAR(1);
执行结果如下:
mysql> ALTER TABLE users_t ADD sex CHAR(1);
Query OK, 0 rows affected (0.02 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> DESC users_t;
±------------±-------------±-----±----±--------±---------------+
| Field | Type | Null | Key | Default | Extra |
±------------±-------------±-----±----±--------±---------------+
| user_id | int unsigned | NO | PRI | NULL | auto_increment |
| username | varchar(100) | NO | | NULL | |
| password | varchar(40) | NO | | NULL | |
| age | int | NO | | NULL | |
| create_date | date | YES | | NULL | |
| sex | char(1) | YES | | NULL | |
±------------±-------------±-----±----±--------±---------------+
6 rows in set (0.01 sec)
如果我们需要将新加列放置在第一列,可以使用 FIRST
关键字,相应的以上指令将变为:
ALTER TABLE users_t ADD sex CHAR(1) FIRST;
如果我们需要将新加列放置在中间,此时需要使用 AFTER 关键字,语法格式如下:
ALTER TABLE <表名> ADD <新字段名> <数据类型> [约束条件] AFTER <已经存在的字段名>;
例如,我们希望新加列放置在 age
后面,以上指令将变为:
ALTER TABLE users_t ADD sex CHAR(1) AFTER age;
- 修改列名
MySQL 中修改表字段名的语法规则如下:
ALTER TABLE <表名> CHANGE <旧字段名> <新字段名> <新数据类型>;
其中:
-
旧字段名:修改前的字段名;
-
新字段名:修改后的字段名;
-
新数据类型:修改后的数据类型,如果不需要修改字段的数据类型,新数据类型可以设置成与原来一样,但数据类型不能为空。
例如,我们将表 users_t
中的 age
列修改为 birthday
,指令如下:
ALTER TABLE users_t CHANGE age birthday DATE;
指令的执行结果如下:
mysql> ALTER TABLE users_t CHANGE age birthday DATE;
Query OK, 0 rows affected (0.05 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> desc users_t;
±------------±-------------±-----±----±--------±---------------+
| Field | Type | Null | Key | Default | Extra |
±------------±-------------±-----±----±--------±---------------+
| user_id | int unsigned | NO | PRI | NULL | auto_increment |
| username | varchar(100) | NO | | NULL | |
| password | varchar(40) | NO | | NULL | |
| birthday | date | YES | | NULL | |
| create_date | date | YES | | NULL | |
| sex | char(1) | YES | | NULL | |
±------------±-------------±-----±----±--------±---------------+
6 rows in set (0.00 sec)
- 修改列数据类型
修改列的数据类型就是把字段的数据类型转换成另一种数据类型。语法规则如下:
ALTER TABLE <表名> MODIFY <字段名> <数据类型>
其中:
-
表名:指要修改数据类型的字段所在表的名称;
-
字段名:指需要修改的字段;
-
数据类型:指修改后字段的新数据类型。
例如,我们将 users_t
表中的 password
列修改为 VARCHAR(128)
,指令如下:
ALTER TABLE users_t MODIFY password VARCHAR(128);
指令执行结果如下:
mysql> ALTER TABLE users_t MODIFY password VARCHAR(128);
Query OK, 0 rows affected (0.04 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> desc users_t;
±------------±-------------±-----±----±--------±---------------+
| Field | Type | Null | Key | Default | Extra |
±------------±-------------±-----±----±--------±---------------+
| user_id | int unsigned | NO | PRI | NULL | auto_increment |
| username | varchar(100) | NO | | NULL | |
| password | varchar(128) | YES | | NULL | |
| birthday | date | YES | | NULL | |
| create_date | date | YES | | NULL | |
| sex | char(1) | YES | | NULL | |
±------------±-------------±-----±----±--------±---------------+
6 rows in set (0.00 sec)
- 删除列
删除字段是将数据表中的列从表中移除,语法格式如下:
ALTER TABLE <表名> DROP <字段名>;
其中,“字段名”指需要从表中删除的字段的名称。
例如,我们将 users_t
表中的 sex
列删除,指令如下:
ALTER TABLE users_t DROP sex;
指令执行结果如下:
mysql> ALTER TABLE users_t DROP sex;
Query OK, 0 rows affected (0.04 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> desc users_t;
±------------±-------------±-----±----±--------±---------------+
| Field | Type | Null | Key | Default | Extra |
±------------±-------------±-----±----±--------±---------------+
| user_id | int unsigned | NO | PRI | NULL | auto_increment |
| username | varchar(100) | NO | | NULL | |
| password | varchar(128) | YES | | NULL | |
| birthday | date | YES | | NULL | |
| create_date | date | YES | | NULL | |
±------------±-------------±-----±----±--------±---------------+
5 rows in set (0.01 sec)
DROP TABLE 数据表删除语句
MySQL中删除数据表是非常容易操作的,但是你在进行删除表操作时要非常小心,因为执行删除命令后所有数据都会消失。
以下为删除MySQL数据表的通用语法:
DROP TABLE 表名;
例如,我们删除表 users_t
,指令如下:
DROP TABLE users_t;
指令执行结果如下:
mysql> DROP TABLE users_t;
Query OK, 0 rows affected (0.02 sec)
mysql> show tables;
Empty set (0.00 sec)
Empty set
表示数据库中已经没有表了。
INSERT INTO 数据插入语句
MySQL 表中使用 INSERT INTO SQL语句来插入数据。
以下为向MySQL
数据表插入数据通用的 INSERT INTO
SQL语法:
INSERT INTO 表名 ( 列1, 列2,…,列N ) VALUES ( 值1, 值2,…,值N );
例如,我们向 t_users
表中插入一行数据:
INSERT INTO t_users (username,password,age,create_date) VALUES (“John”,“123456”,27,“2022-02-04”);
指令执行结果:
mysql> INSERT INTO t_users(username,password,age,create_date) VALUES (“John”,“123456”,27,“2022-02-04”);
Query OK, 1 row affected (0.01 sec)
mysql> select * from t_users;
±--------±---------±---------±----±------------+
| user_id | username | password | age | create_date |
±--------±---------±---------±----±------------+
| 1 | John | 123456 | 27 | 2022-02-04 |
±--------±---------±---------±----±------------+
1 row in set (0.00 sec)
t_users
表中的 user_id
是自增的,不需要插入数据,就可以自动生成相应数据。 当然,如果在插入数据的时候指定了 user_id
列,同样不会报错,示例指令如下:
INSERT INTO t_users(user_id,username,password,age,create_date) VALUES (3,“John”,“123456”,27,“2022-02-04”);
指令执行结果:
mysql> INSERT INTO t_users(user_id,username,password,age,create_date) VALUES (3,“John”,“123456”,27,“2022-02-04”);
Query OK, 1 row affected (0.01 sec)
mysql> select * from t_users;
±--------±---------±---------±----±------------+
| user_id | username | password | age | create_date |
±--------±---------±---------±----±------------+
| 1 | John | 123456 | 27 | 2022-02-04 |
| 3 | John | 123456 | 27 | 2022-02-04 |
±--------±---------±---------±----±------------+
2 rows in set (0.00 sec)
DELETE 数据删除语句
使用 DELETE 语句从单个表中删除数据,语法格式为:
DELETE FROM <表名> [WHERE 子句] [ORDER BY 子句] [LIMIT 子句]
语法说明如下:
-
<表名>:指定要删除数据的表名。
-
ORDER BY 子句:可选项。表示删除时,表中各行将按照子句中指定的顺序进行删除。
-
WHERE 子句:可选项。表示为删除操作限定删除条件,若省略该子句,则代表删除该表中的所有行。
-
LIMIT 子句:可选项。用于告知服务器在控制命令被返回到客户端前被删除行的最大值。
- 删除全部数据
示例,删除 t_users
表中的所有数据,指令如下:
DELETE FROM t_users;
指令执行结果如下:
mysql> DELETE FROM t_users;
Query OK, 2 rows affected (0.01 sec)
mysql> SELECT * FROM t_users;
Empty set (0.00 sec)
- 删除符合条件的数据
首先,向 t_users
表中插入两条数据,指令如下:
INSERT INTO t_users(user_id,username,password,age,create_date) VALUES (3,“John”,“123456”,27,“2022-02-04”);
INSERT INTO t_users(user_id,username,password,age,create_date) VALUES (4,“John”,“123456”,27,“2022-02-04”);
然后,删除 user_id
为 4
的数据行,指令如下:
DELETE FROM t_users WHERE user_id=4;
文末
如果30岁以前,可以还不知道自己想去做什么的话,那30岁之后,真的觉得时间非常的宝贵,不能再浪费时间在一些碎片化的事情上,比如说看综艺,电视剧。一个人的黄金时间也就二,三十年,不能过得浑浑噩噩。所以花了基本上休息的时间,去不断的完善自己的知识体系,希望可以成为一个领域内的TOP。
同样是干到30岁,普通人写业务代码划水,榜样们深度学习拓宽视野晋升管理。
这也是为什么大家都说30岁是程序员的门槛,很多人迈不过去,其实各行各业都是这样都会有个坎,公司永远都缺的高级人才,只用这样才能在大风大浪过后,依然闪耀不被公司淘汰不被社会淘汰。
269页《前端大厂面试宝典》
包含了腾讯、字节跳动、小米、阿里、滴滴、美团、58、拼多多、360、新浪、搜狐等一线互联网公司面试被问到的题目,涵盖了初中级前端技术点。
前端面试题汇总
JavaScript
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注前端)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
(0.01 sec)
mysql> SELECT * FROM t_users;
Empty set (0.00 sec)
- 删除符合条件的数据
首先,向 t_users
表中插入两条数据,指令如下:
INSERT INTO t_users(user_id,username,password,age,create_date) VALUES (3,“John”,“123456”,27,“2022-02-04”);
INSERT INTO t_users(user_id,username,password,age,create_date) VALUES (4,“John”,“123456”,27,“2022-02-04”);
然后,删除 user_id
为 4
的数据行,指令如下:
DELETE FROM t_users WHERE user_id=4;
文末
如果30岁以前,可以还不知道自己想去做什么的话,那30岁之后,真的觉得时间非常的宝贵,不能再浪费时间在一些碎片化的事情上,比如说看综艺,电视剧。一个人的黄金时间也就二,三十年,不能过得浑浑噩噩。所以花了基本上休息的时间,去不断的完善自己的知识体系,希望可以成为一个领域内的TOP。
同样是干到30岁,普通人写业务代码划水,榜样们深度学习拓宽视野晋升管理。
这也是为什么大家都说30岁是程序员的门槛,很多人迈不过去,其实各行各业都是这样都会有个坎,公司永远都缺的高级人才,只用这样才能在大风大浪过后,依然闪耀不被公司淘汰不被社会淘汰。
269页《前端大厂面试宝典》
包含了腾讯、字节跳动、小米、阿里、滴滴、美团、58、拼多多、360、新浪、搜狐等一线互联网公司面试被问到的题目,涵盖了初中级前端技术点。
前端面试题汇总
JavaScript
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注前端)
[外链图片转存中…(img-llJdK1FK-1713326743347)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!