小阿轩yx-MySQL数据库管理

小阿轩yx-MySQL数据库管理

使用 MySQL 数据库

在服务器运维工作中不可或缺的

SQL (结构化查询语句)的四种类型

  • 数据定义语言(DDL):DROP(删除)、CREATE(创建)、ALTER(修改)
  • 数据操作语言(DML):INSERT(插入)、UPDATE(更新)、DELETE(删除)
  • 数据查询语言(DQL):SELECTE(选择),SHOW 语句,DESCRIBE)
  • 数据控制语言(DCL):GRANT(授权)、REVOKE(撤销授权)、COMMIT(提交:指的事物)、ROLLBACK(回退)

查看数据库结构

[root@localhost ~]# mysql -u root -ppwd123
mysql> show databases;
mysql> use mysql
mysql> show tables;
mysql> describe user;
mysql> select * from user\G;

注: 

  • information_schema数据库:保存着关于MySQL服务器所维护的所有其他数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权 限等
  • performance_schema:用于监控MySQL server在一个较低级别的运行过程中的资源消耗、资源等待等情况
  • mysql:是 MySQL 服务正常运行所需的数据库,其中包含了用户认证相关的表

 MySQL

  • 是一套数据库管理系统
  • 每台 MySQL 服务器均支持多个数据库
  • 每个数据库相当于一个容器,存放着许多表

查看当前服务器中的数据库

SHOW DATABASES 语句

  • 用于査看当前 MySQL服务器中包含的数据库
  • MySQL 的每一条操作语句都是以分号(;)结束的

MySQL服务器初始化后,默认建立了四个数据库

mysqI>SHOW DATABASES;
+-------------------+
|Database            |
+-------------------+
information_schema
|mysql               |
performance schema
|test                |
+-------------------+
4 rows in set (0.00 sec)
  • test
  • mysql
  • information schema
  • performance schema

(注:其中 mysql是 MySQL服务正常运行所需的数据库,其中包含了用户认证相关的表)

查看当前数据库中有哪些表

SHOW TABLES 语句

  • 用于查看当前所在的数据库中包含的表
  • 操作前,需要先使用 USE 语句切换到所使用的数据库
mysql>USE mysql;
Database changed
mysqI>SHOW TABLES;
+-----------------+
|Tables_in_mysql    |
+-----------------+
|columns_priv       |
|db                 |
|event              |
...//省略部分内容900
|user               |
+-----------------+
28 rows in set (0.01 sec)

MySQL数据库的数据文件存放在/usr/local/mysql/data 目录下,每个数据库对应一个子目录,用于存储数据表文件

每个数据表对应为三个文件扩展名分别为

  • ".frm”
  • “.MYD”
  • “.MYI”

“.frm”

  • 是与表相关的元数据(meta)信息都存放在“.frm”文件中,包括表结构的定义信息等

“.MYD”

  • 文件是 MyISAM 存储引擎专用,存放 MyISAM 表的数据

“.MYI”

  • 也是专属于 MyISAM 存储引擎的,主要存放 MyISAM 表的索引相关信息

MyISAM

  • 存储引擎的表在数据库中,每一个表都被存放为三个以表名命名的物理文件(frm,myd,myi)。每个表都有且仅有这样三个文件做为 MyISAM 存储类型的表的存储

存放 Innodb 数据(包括索引)的两个文件

  • “.ibd”
  • ibdata

有两种文件来存放是因为Innodb 的数据存储方式能够通过配置来决定是使用共享表空间存放存储数据,还是独享表空间存放存储数据

独享表空间存储方式使用“.ibd”文件来存放数据,且每个表一个“.ibd”文件,文件存放在和 MyISAM 数据相同的位置。如果选用共享存储表空间来存放数据,则会使用ibdata 文件来存放,所有表共同使用一个(或者多个,可自行配置)ibdata 文件。

查看表的结构

DESCRIBE语句

  • 用于显示表的结构
  • 即组成表的各字段(列)的信息
  • 需要指定“数据库名”

表名

  • "作为参数”;若只指定表名参数,则需先通过 USE语句切换到目标数据库
mysql>USE mysql;
Database changed
mysqI>DESCRIBE user;
+------+------+---------+------+
|Field |Type  |Null |Key |Default | Extra    |
+------+------+---------+------+
|Host   |char(60)    |NO    |PRI|    |    |
|User
|Password    |char(41)    |NO|    |    |
|Select priv    |enum('N','Y') |NO|    |    |N    |    |
......//省略部分内容
+------+------+---------+------+
43    rows in set(0.00ses)
  • 数据库目前标准的指令集是 SQL

SQL

  • 是 Structured Query Language 的缩写,即结构化查询语言
  • 1974 年由 Boyce 和 Chamberlin 提出来的
  • 1975~1979 年IBM 公司研制的关系数据库管理系统原型 SystemR实现了这种语言

SQL语言主要组成部分

  • DDL(Data Definition Language,数据定义语言):用来建立数据库、数据库对象和定义字段,如 CREATE、ALTER、DROP。
  • DML(Data Manipulation Language,数据操纵语言):用来插入、删除和修改数据库中的数据,如INSERT、UPDATE、DELETE。
  • DQL(Data Query Language,数据査询语言): 用来查询数据库中的数据,如 SELECTDCL(Data Control Language,数据控制语言):用来控制数据库组件的存取许可、存取权限等,如 COMMIT、ROLLBACK、GRANT、REVOKE

创建及删除数据库和表

创建新的数据库

CREATE DATABASE 语句

  • 用于创建一个新的数据库,需指定数据库名称作为参数 auth 的数据库
mysqI>CREATE DATABASE auth;
Query OK, 1 row affected (0.01 sec)

刚创建的数据库是空的,其中不包含任何表,在/usr/local/mysql/data 目录下会自动生成一个与新建的数据库名相同的文件夹。

创建新的表

CREATE TABLE 语句

  • 用于在当前数据库中创建新的表
  • 需指定数据表名称作为参数,并定义该表格所使用的各字段,基本格式
CREATE TABLE 表名 (字段1 名称类型,字段2 名称类型,…, PRIMARY KEY (主键名))
mysql> use auth;
mysql> CREATE TABLE users (user_name CHAR(16) NOT NULL, user_passwd CHAR(48) DEFAULT '', PRIMARY KEY (user_name));

(注:DEFAULT ''  密码默认为空)

删除一个数据表

DROP TABLE 语句

  • 用于删除数据库中的表,需要指定“数据库名
  • 表名”作为参数
  • 若只指定表名参数,则需先通过执行“USE"语句切换到目标数据库
mysql>DROP TABLE auth.users;
Query OK, 0 rows affected (0.00 sec)
删除一个数据库

DROP DATABASE 语句

  • 用于删除指定的数据库,需要指定数据库名作为参数
mysql>DROP DATABASE auth;
Query OK, 0 rows affected (0.01 sec)

管理表中的数据记录

插入数据记录

INSERT INTO 语句

  • 用于向表中插入新的数据记录

语句格式

mysql>use auth;
INSERT INTO 表名(字段 1,字段 2,...) VALUES(字段1的值,字段2的值,..)
mysql>use auth;
Database changed
mysql>INSERT INTO users(user_name,user_passwd) VALUES('zhangsan',PASSWORD ('123456'));
Query OK, 1 row affected (0.00 sec)

(注:在插入新的数据记录时,如果这条记录完整包括表中所有字段的值,则插入语句中指定字段的部分可以省略。)

查询数据记录

SELECT语句

  • 用于从指定的表中查找符合条件的数据记录
  • MySQL数据库支持标准的 SQL 查询语句

语句格式

SELECT 字段名 1,字段名 2,...FROM 表名 WHERE 条件表达式
mysql>select * from auth.users;
mysql>SELECT user_name,user_passwd FROM auth.users WHERE user_name='zhangsan';

(注:表示所有字段时,可以使用通配符“*”,若要显示所有的数据记录,则可以省略 WHERE条件子句。)

修改数据记录

UPDATE 语句

  • 用于修改、更新表中的数据记录

语句格式

mysql>UPDATE auth.users SET user_passwd=PASSWORD('') WHERE user_name= 'lisi'; 
mysql>SELECT * FROM auth.users;mysql>UPDATE mysql.user SET authentication_string=PASSWORD('123457') WHERE user='root';
mysql>FLUSH PRIVILEGES;[root@localhost ~]# mysqladmin -u root -p'123457' password '123456'
删除数据记录

DELETE语句

  • 用于删除表中指定的数据记录

语法格式

DELETE FROM 表名 where 条件表达式
mysql>DELETE FROM auth.users WHERE user_name='lisi';
mysql>SELECT * FROM auth.users;

(注:执行 UPDATE、DELETE 语句时,通常都带 WHERE 条件,不带条件的 UPDATE 语句和 DELETE语句会修改或删除所有的记录,是非常危险的操作。)

数据库表高级操作

清空表
  • 清空一个数据表就是删除这个表内的所有数据

DELETE FROM 语句

  • 可以使用 WHERE 子句对删除的结果集进行过滤选择

好处

  • 更方便
  • 更灵活

TRUNCATE TABLE 语句

  • 删除表中所有记录数据

缺点

  • 没法定制
  • 灵活性上稍差
//通过 LIKE 方法,复制 users 表生成 tmp 表
mysql>create table tmp like player;
Query OK, 0 rows affected (0.01 sec)//通过 player 表生成 tmp 表内数据记录
mysql>insert into user01 select * from player; 
Query OK, 3218 rows affected (0.06 sec)
Records:3218 Duplicates:0 Wamings: 0mysql>delete from tmp where level >= 45;
Query OK, 7 rows affected (0.01 sec)mysql>delete from tmp;
Query OK, 3211 rows affected (0.06 sec)mysql>insert into tmp select * from player;
Query OK, 3218 rows affected (0.07 sec)
Records:3218 Duplicates:0 Wamings: 0mysql>truncate table tmp;
Query Ok, 0 rows affected (0.01 sec)
mysql>select count(*) from tmp;
+-------+
|count(*)|
+-------+
|       0|
+-------+
1 row in set (0.01 sec)
  • DELETE 在不加 WHERE 子句的时候,跟 TRUNCATE 是一样的效果,清空整个表

不同

delete from

  • 返回的结果内有删除的记录条目
  • 工作时是一行一行的删除记录数据的
  • DELETE FROM 删除所有记录后,再次新添加的记录会从原来最大的记录 ID 后面继续自增写入记录

truncate

  • 并没有返回被删除的条目
  • 工作时是将表结构按原样重新建立
  • 速度上 TRUNCATE 会快很多
  • TRUNCATE TABLE 清空表内数据后,ID 会从1开始重新记录
临时表
  • 临时建立的表,并不会长期存在,主要用于保存一些临时数据

特性

  • 只在当前连接可见,当前连接下可执行增删改查等操作
  • 当连接被关闭后,临时表就会被 MySQL删除,相关的资源也会被释放
//查看 mytmp 表是否存在 
mysql>select * from mytmp;mysql>CREATE TEMPORARY TABLE `mytmp` ( 
`id` int(10) NOT NULL AUTO_INCREMENT, 
`NAME` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, `level` int(10) NOT NULL, 
PRIMARY KEY (id)
//创建临时表) ENGINE=InnoDB DEFAULT CHARSET=utf8;
//插入数据 
mysql> insert into mytmp(name,level) values('aa',10);
Query OK, 1 row affected (0.01 sec)
mysql>select * from mytmp;
+--+----+-----+
|id|name|level|
+--+----+-----+
| 1|aa  | 10  |
1 row in set (0.00 sec)
//退出当前连接 
mysql>quit
Bye
//重新连接 MySQL 之后查看临时表状态
mysql>select * from mytmp;
ERROR 1146(42S02): Table 'dzm.mytmp' doesn't exist

(注:临时表创建成功之后,使用 SHOW TABLES 命令是看不到创建的临时表的,临时表会在连接退出后被销毁)

退出连接之前,也可以手动直接删除,使用 DROP TABLE 语句,具体操作

mysql>drop table mytmp;
Query OK, 0 rows affected (0.00 sec)
克隆表
mysql>drop table tmp;
Query OK, 0 rows affected (0.01 sec)mysql>create table tmp as select * from player;
Query OK, 3218 rows affected (0.15 sec)
Records:3218 Duplicates:0 Wamings:0
mysql>select count(*) from tmp;
+--------+
|count(*)|
|3218    |
+--------+
1 row in set (0.00 sec)
  • AS 这里是作为连接语句的操作符,更多的是被用来设置别名
  • 这种方法可以实现创建表并且将原表的数据拷贝过来

解决无法复制表的索引、默认值两个方法

方法一

LKE方式克隆表

  • 通过在创建表时使用 LIKE方法,完整复制表结构
  • LIKE方法可以将源表完全一样的复制生成一个新表,包括表的备注、索引、主键、存储引擎等,但是不会复制源表内数据记录
  • 其次,在通过 INSERT INTO..SELECT 方法,将源表内的数据写入新表内
//通过 LIKE 方法,复制 mytmp 表生成 test 表
mysql>create table test like mytmp;
Query OK, 0 rows affected (0.01 sec)mysql>show create table test\G
*******************************1.row**************************************************
Create Table: CREATE TABLE 'test`(
`id` int(10) NOT NULL AUTO INCREMENT
`NAME` varchar(32) CHARACTER SET utf8 COLLATE utf8 bin NOT NULL"level int(10) NOT NULL.
PRIMARY KEY (`id')
)ENGINE=InnoDB AUTO INCREMENT=4 DEFAULT CHARSET=utf8
1 row in set (0.00 sec)//LIKE 方法复制表结构,不复制数据
mysql>select * from test;
Empty set (0.00 sec)//将 mytmp 表的数据写入 test 表Query OK, 1 rows 
mysql>insert into test select* from mytmp;
Query OK,1 rows affected (0.00 sec)
Records:1Duplicates:0 Warnings:0mysql> select * from test;
+---+------+------+
|id | NAME | level|
| 1 | aa   |   10 |
+---+------+------+
3 rows in set (0.00 sec)

方法二

通过创建表的方式克隆表

  • 使用 SHOW CREATE TABLE 命令来获取源表的表结构、索引等信息
  • 其次,复制源表结构并修改表名为目标名字,然后执行创建新表的语句
  • 最后,执行 INSERT INTO...SELECT 语句,从源表复制数据到新表内
mysql>show create table mytmp\G
*******************************1.row**************************************************
Table:mytmpCreate
CREATE TABLE 'mytmp'(
`id` int(10) NOT NULL AUTO INCREMENT,
`NAME` varchar(32) CHARACTER SET Utf8 COLLATE utf8 bin NOT NULL,
level int(10) NOT NULL,
PRIMARY KEY (`id`)
)ENGINE=InnODB AUTO INCREMENT=4 DEFAULT CHARSET=utf8
1 row in set (0.00 sec)//改名后创建新表
mysql>CREATE TABLE`test(
->`id` int(10) NOT NULL AUTO INCREMENT,
->`NAME` varchar(32) CHARACTER SET Utf8 COLLATE utf8 bin NOT NULL,
->`level int(10) NOT NULL,
->PRIMARY KEY (id)
->) ENGINE=InnODB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.01 sec)//导入原表数据
mysql> insert into test select* from mytmp;
Query OK, 1 rows affected (0.00 sec)
Records:1 Duplicates:0 Warnings:0mysql> select * from mytmp;
+---+------+------+
|id | NAME | level|
|1  | aa   |  10  |
+---+------+------+
3 rows in set(0.01 sec)
3 rows in set (0.01 sec)

数据库用户授权

  • 降低风险通常会建立一些低权限的用户,只负责一部分数据库、表的管理和维护操作
  • 甚至可以对查询、修改、删除记录等各种操作做进一步的细化限制,从而将数据库的风险降至最低

授予权限

  • 一组权限的集合:角色

GRANT语句

  • 专门用来设置数据库用户的访问权限
  • 当指定的用户名不存在时GRANT语句将会创建新的用户
  • 当指定的用户名存在时,GRANT 语句用于修改用户信息

语句格式

GRANT 权限列表 ON数据库名.表名 TO 用户名@来源地址[IDENTIFIED BY'密码']
mysql>GRANT select ON auth.* TO 'zhangsan'@'localhost' IDENTIFIED BY '123456';

 注:

  • 权限列表:用于列出授权使用的各种数据库操作,以逗号进行分隔,如“select,insert,update”。使用“al”表示所有权限,可授权执行任何操作。
  • 数据库名.表名:用于指定授权操作的数据库和表的名称,其中可以使用通配符“*”。例如,使用“auth.*”表示授权操作的对象为 auth 数据库中的所有表。
  • 用户名@来源地址:用于指定用户名称和允许访问的客户机地址,即谁能连接、能从哪里连接。来源地址可以是域名、IP地址,还可以使用“%"通配符,表示某个区域或网段内的所有地址,如“%.bdqn.com"“192.168.1.%”等。
  • IDENTIFIED BY:用于设置用户连接数据库时所使用的密码字符串。在新建用户时,若省略“IDENTIFIED BY"部分,则用户的密码将为空。

查看权限

SHOW GRANTS 语句

  • 专门用来查看数据库用户的授权信息
  • 通过 FOR 子句可指定查看的用户对象(必须与授权时使用的对象名称一致)

语句格式

SHOW GRANTS FOR 用户名@来源地址
mysql> SHOW GRANTS FOR 'zhangsan'@'localhost';

 撤销权限

REVOKE语句

  • 用于撤销指定用户的数据库权限
  • 撤销权限后的用户仍然可以连接到MySQL服务器,但将被禁止执行对应的数据库操作

语句格式 

REVOKE 权限列表ON数据库名.表名 FROM 用户名@来源地址

验证权限

[root@localhost ~]# mysql -u zhangsan -p123456

小阿轩yx-MySQL数据库管理

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/360053.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于rouyi框架的多租户改造

基于rouyi框架的多租户改造,重点是实现权限管理和数据隔离。权限管理相当于从原来的“顶级管理员admin-普通用户user”转变为“顶级管理员admin-租户管理员tanantAdmin-普通用户user”。数据隔离主要通过分库、分表、表内设置tenantId字段进行过滤三种方式。 本文主…

由于bug造成truncate table卡住问题

客户反应truncate table卡主,检查awr发现多个truncate在awr报告期内一直没执行完,如下: 检查ash,truncate table表的等待事件都是“enq: RO - fast object reuse”和“local write wait” 查找“enq: RO - fast object reuse”&am…

爬虫笔记15——爬取网页数据并使用redis数据库set类型去重存入,以爬取芒果踢V为例

下载redis数据库 首先需要下载redis数据库,可以直接去Redis官网下载。或者可以看这里下载过程。 pycharm项目文件下载redis库 > pip install redis 然后在程序中连接redis服务: from redis import RedisredisObj Redis(host127.0.0.1, port6379)…

Django模板

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 Django指定的模板引擎在settings.py文件中定义,代码如下: TEMPLATES [{ # 模板引擎,默认为Django模板 BACKEND:…

SpringMVC框架中常用的几种切面Fliter、Aspect、Interceptor、Advice功能对比和应用场景

1.过滤器:Filter接口 参数校验:用户输入的参数可能包含恶意字符或参数格式错误,通过使用Filter可以拦截并进行参数校验,以保证应用安全。 多语言选择:通过获取请求头的语言参数,Filter可以根据用户的语言…

MySQL连接

MySQL工具包 MySQL实现简单链接 一 引入工具包 JBDCUtils,无需更改,直接使用即可。 import java.io.IOException; import java.io.InputStream; import java.sql.*; import java.util.Properties;public class JDBCUtil {private static String URL;p…

国标GB28181视频汇聚平台EasyCVR设备展示数量和显示条数不符的原因排查与解决

国标GB28181/GA/T1400协议/安防综合管理系统EasyCVR视频汇聚平台能在复杂的网络环境中,将前端设备统一集中接入与汇聚管理。智慧安防/视频存储/视频监控/视频汇聚EasyCVR平台可以提供实时远程视频监控、视频录像、录像回放与存储、告警、语音对讲、云台控制、平台级…

Kotlin设计模式:深入解析Facade模式

Kotlin设计模式:深入解析Facade模式 在软件开发中,随着系统复杂度的增加,管理和使用多个相关接口变得越来越困难。这时候,Facade模式(外观模式)就显得尤为重要。本文将深入探讨Kotlin中的Facade模式&#…

Linux CentoS安装RabbitMQ:一键安装指南

有两种安装方法,官方推荐使用 docker安装RabbitMQ 一、Docker安装RabbitMQ 1、安装docker 参考我之前的文章:Centos7.5搭建docker并且部署Lnmp环境(小白入门docoker)_centos7.5安装docker和docker-compose-CSDN博客 2、安装Ra…

美食解压视频素材无水印无字幕的在哪找?海外美食解压网站分享

在如今快节奏的生活中,观看美食视频已成为许多人缓解压力的一种方式。这些视频不仅唤醒人们的味觉记忆,还能在繁忙中带来片刻的放松。然而,对于视频创作者来说,寻找高品质的美食视频素材,特别是那些无水印、无字幕、可…

利用SHAP算法解释BERT模型的输出

1 何为SHAP? 传统的 feature importance 只告诉哪个特征重要,但并不清楚该特征如何影响预测结果。SHAP 算法的最大优势是能反应每一个样本中特征的影响力,且可表现出影响的正负性。SHAP算法的主要思想为:控制变量法,如果某个特征…

养殖自动化温控系统:现代养殖场的智能守护神

现代农业养殖业中,养殖自动化温控系统已经成为提高生产效率和保障动物福利的关键技术之一。本篇文章将深入介绍养殖自动化温控系统的原理、组成、优势及其在不同类型养殖场中的应用实例,并展望该技术的未来发展。 一、养殖自动化温控系统概述 养殖自动…

数据结构——优先级队列(堆)Priority Queue详解

1. 优先级队列 队列是一种先进先出(FIFO)的数据结构,但有些情况下,操作的数据可能带有优先级,一般出队列时,可能需要优先级高的元素先出队列,该场景下,使用队列不合适 在这种情况下,数据结构应…

[笔记] CCD相机测距相关的一些基础知识

1.35mm胶片相机等效焦距 https://zhuanlan.zhihu.com/p/419616729 拿到摄像头拍摄的数码照片后,我们会看到这样的信息: 这里显示出了两个焦距:一个是实际焦距:5mm,一个是等效焦距:25mm。 实际焦距很容易…

HarmonyOS Next 系列之可移动悬浮按钮实现(六)

系列文章目录 HarmonyOS Next 系列之省市区弹窗选择器实现(一) HarmonyOS Next 系列之验证码输入组件实现(二) HarmonyOS Next 系列之底部标签栏TabBar实现(三) HarmonyOS Next 系列之HTTP请求封装和Token…

Pytorch Geometric(PyG)入门

PyG (PyTorch Geometric) 是建立在 PyTorch 基础上的一个库,用于轻松编写和训练图形神经网络 (GNN),适用于与结构化数据相关的各种应用。官方文档 Install PyG PyG适用于python3.8-3.12 一般使用场景:pip install torch_geometric 或conda …

百度地图3d区域掩膜,最常见通用的大屏地图展现形式

需求及效果 原本项目使用的是百度地图3.0,也就是2d版本的那个地图,客户不满意觉得不够好看,让把地图改成3d的,但是我们因为另外的系统用的都是百度地图,为了保持统一只能用百度地图做 经过3天的努力,最后我终于把这个效果实现了,效果如下: 如何引用GL版本 为了实现…

前端项目外包出去,是我痛苦的开始。如何破?

不止一个老铁给我反馈,他们把其前端项目外包出去,非常的痛苦,远不如用自己的员工省心。明面上钱省了,实际精力大量耗费在上面,一算账并没省,反而闹了一肚子气,问我这事该如何破?其实…

C#的无边框窗体项目模板 - 开源研究系列文章

继续整理和编写代码及博文。 这次将笔者自己整理的C#的无边框窗体项目的基本模板进行总结,得出了基于C#的.net framework的Winform的4个项目模板,这些模板具有基本的功能,即已经初步将代码写了,直接在其基础上添加业务代码即可&am…

Servlet组件

目录 1 我们为什么需要Servlet? 1.1 Web应用基本运行模式 1.2 Web服务器中Servlet作用举例 2 什么是Servlet? 3 如何使用Servlet? 3.1 操作步骤 3.2 运行分析(执行原理) 3.3 Servlet作用总结 4 Servlet生命周期 4.1 Servlet生命周期…