web32
Apache Tomcat JBOSS Jetty Nginx WebLogic WebSphere之间的区别区别_jetty和tomcat和weblogic
2401_89694162
apachetomcatjetty
文章目录总结:Apache/Tomcat/JBOSS/Nginx区别.一、Apache+Tomcat二、Jetty三、Nginx四、JBossWebLogic、WebSphere、JBOSS、Tomcat之间的区别1:产品介绍:2:价位不同:3:开源性不同:4:对技术的支持:5:扩展性的不同:6:应用范围的区别:7:商业服务和技术支持的区别:8:安全性问题9:与数据库的紧密结合性:服务:三、部署四
1 vs. N:Nginx在零信任架构下如何成为API安全网关的唯一选择?
墨瑾轩
Nginx乐园nginx架构安全
关注墨瑾轩,带你探索编程的奥秘!超萌技术攻略,轻松晋级编程高手技术宝库已备好,就等你来挖掘订阅墨瑾轩,智趣学习不孤单即刻启航,编程之旅更有趣你是否曾经疑惑过,在众多的安全网关解决方案中,为什么Nginx能够脱颖而出,成为构建零信任架构下API安全网关的最佳伙伴?今天我们就来揭开这个谜底,看看Nginx是如何凭借其强大的功能和灵活性,在这场“1对N”的较量中胜出的。我们将深入探讨每一个细节,并提供详
Liunx上安装nginx详细步骤以及nginx配置前端页面
a754782427
nginx前端服务器
1.安装依赖包安装wgetyuminstallwgetyum-yinstallgcczlibzlib-develpcre-developensslopenssl-devel2.下载并解压安装包//创建一个文件夹cd/usr/localmkdirnginxcdnginx//下载tar包wgethttp://nginx.org/download/nginx-1.13.7.tar.gztar-xvfng
服务器上安装Nginx详细步骤
孙尚香蕉
nginxjava服务器前端
第一步:上传nginx压缩包到指定目录。第二步:解压nginx压缩包。第三步:配置编译nginx配置编译方法:./configure配置编译后结果信息:第四步:编译nginx在nginx源文件目录中直接运行make命令第五步:安装nginx:在运行make命令的nginx目录中运行makeinstall命令安装后可以运行whereisnginx命令查找nginx工作目录
02.DockerCompose部署Nginx
Felix_XY
DockerComposeNginxnginxdockerdockercompose
目录参考链接获取镜像单机部署(bridge模式)单机部署(host模式)单机部署使用templates配置nginx.conf官方镜像支持的环境变量准备template文件创建docker-compose.yml验证转载请注明出处参考链接https://hubgw.docker.com/_/nginxhttps://devopsian.net/p/nginx-config-template-wit
yum 安装 nginx 初始的 配置代码
雪夜里的孤狼
linuxnginxyumnginx-conf
usernginx;worker_processes1;error_log/var/log/nginx/error.logwarn;pid/var/run/nginx.pid;events{worker_connections1024;}http{include/etc/nginx/mime.types;default_typeapplication/octet-stream;log_format
使用 Nginx 实现动态图片加水印:技术探索与实践指南20250122
Narutolxy
前端技术干货分享nginx运维
使用Nginx实现动态图片加水印:技术探索与实践指南引言图片水印是一种广泛应用于保护图片隐私、防止盗用的重要手段。传统方式通常通过前端或后端实现水印处理,但两者各有局限性。本文探讨了一种基于Nginx的折中方案:通过Nginx代理拦截图片请求,动态添加水印并返回给前端。这种方法不仅安全高效,还能减轻后端压力,为开发者提供了一种灵活的实践思路。背景与问题分析在图片加水印的场景中,常见的实现方式包括:
JDK7 正则表达式 捕获组命名
u010466329
正则表达式正则表达式
jdk6之前的正则表达式不支持命名捕获组功能,只能通过捕获组的索引来访问捕获组。当正则表达式比较复杂的时候,里面含有大量的捕获组和非捕获组,通过从左至右数括号来得知捕获组的计数也是一件很烦人的事情;而且这样做代码的可读性也不好,当正则表达式需要修改的时候也会改变里面捕获组的计数。解决这个问题的方法是通过给捕获组命名来解决,就像Python,PHP,.Net以及Perl这些语言里的正则表达式一样.新
【云原生网关】Higress 从部署到使用详解
小码农叔叔
网关与限流术linux与容器实战docker搭建HigressHigress搭建docker部署HigressHigress使用详解Higress使用docker搭建higress
目录二、网关概述2.1什么是云原生网关2.2常见的云原生网关2.2.1Nginx2.2.2ApiSix2.2.3Kong2.2.4ApacheShenyu2.2.5Higress2.2.6Envoy三、higress介绍3.1什么是higress3.2Higress定位3.3Higress内核选择四、Higress搭建过程4.1higress常用部署模式4.2环境准备4.3docker部署higr
微信小程序实战十五:Https服务搭建及Nginx配置
博主逸尘
微信小程序微信小程序HttpsNginx
文章目录1.最终效果预览2.后端jar包部署及启动3.前端管理系统部署4.Nginx的配置5.https证书申请6.小程序后台中配置子域名这篇文章重点介绍下微信小程序正式版上线前https服务的搭建及配置过程,之前整个流程都操作过,时隔一年再次从零开始操作有些地方的印象已经模糊了,好记性不如烂笔头,仅以此篇文章记录那些年所学的点点滴滴。1.最终效果预览在微信开发工具中去掉开发时的配置不校验合法域名
ACTF2020 新生赛 Upload 1
xinjuun
CTF网络安全
打开网页发现是个文件上传的页面,试着上传php文件,发现不行后,尝试burp抓包,修改文件后缀,进行前端绕过,发现可行。具体步骤如下:1、书写一句话木马,例如:eval和assert:php任意代码执行的一句话后门,我们喜欢用的是传统的eval,php5,7通用。create_function和preg_replace函数:create_function,它的作用是创建一个匿名函数,在内部也相当于
PHP代码免费加密平台:保护你的代码安全
网友阿贵
PHPphp
PHP代码免费加密平台:保护你的代码安全引言在开发过程中,保护源代码的安全性是非常重要的。PHP作为一种广泛使用的服务器端脚本语言,其代码的安全性尤为重要。为了帮助开发者更好地保护自己的代码,我们推出了PHP代码免费加密平台(php.javait.cn)。本文将详细介绍该平台的功能和使用方法。平台简介1.平台功能PHP代码免费加密平台提供了以下主要功能:PHP混淆加密:无需安装组件运行,兼容主流P
【详解】CentOS6.5下搭建LAMP环境
牛肉胡辣汤
php
CentOS6.5下搭建LAMP环境在Linux系统上搭建LAMP(Linux、Apache、MySQL、PHP)环境是许多Web开发者的基本技能之一。本文将详细介绍如何在CentOS6.5系统上搭建一个完整的LAMP环境。环境准备操作系统:CentOS6.5软件版本:Apache:2.2.xMySQL:5.1.xPHP:5.3.x确保你的CentOS6.5已经安装并可以正常访问互联网。安装Apa
Lua+Nginx+Redis实现灰度测试和防刷限流
xiaoy990
架构luanginxredis
前言了解到lua脚本和nginx的搭配之后,一直想知道这东西能用来做点什么。于是动手实践了一下...下面开始正文前期准备获取openresty:openresty官网(其实就是一个通过lua扩展的nginx服务器)http://openresty.org/cn/getting-started.html获取redis:redis中文网站http://www.redis.cn/功能概述1灰度测试用户访
thinkphp6 返回json数据封装
猫九森
php
代码写入公共文件tp>app>common.php$code,'mes'=>$mes,'data'=>$data,]);}}//失败时调用if(!function_exists('error')){functionerror($code,$mes,$data){returnjson(['code'=>$code,'mes'=>$mes,'data'=>$data,]);}}调用//成功时调用ret
Composer国内镜像源修改教程
网友阿贵
ThinkPHPphpphpstormvscodeweb
在ThinkPHP8.0或其他PHP项目的开发中,使用Composer来管理依赖时,由于默认的源位于国外,可能会导致下载速度慢或连接不稳定的问题。为了解决这个问题,可以切换到国内的镜像源,如阿里云的Composer镜像。以下是更换国内镜像源的步骤:一、全局配置镜像源打开命令行工具(如cmd、PowerShell、终端等)。执行以下命令来配置全局的Composer镜像源为阿里云镜像:composer
43-3 应急响应 - WebShell查杀工具
技术探索
Web安全攻防全解析web安全安全
一、WebShell简介WebShell是一种以asp、php、jsp等网页文件形式存在的代码执行环境,通常用于网站管理、服务器管理和权限管理等操作。然而,如果被入侵者利用,它也可以用于控制网站服务器。具有完整功能的WebShell通常被称为"大马",而功能简单的则称为"小马"。WebShell的存在可能对网络安全构成威胁,因此在网络管理中应当严格加以防范。二、D盾D盾使用自行研发的代码分析引擎,
nginx实现内网服务唯一端口外网映射
weixin_33896069
运维数据库
2.1内网服务唯一端口外网映射(一)组网图(二)简要说明:如标题所示,该功能可以实现内网环境下所有服务端口通过nginx的正向代理通过唯一端口映射至外网环境;且当本地服务设置特定域名后,外网可直接使用内网服务自定义的域名加映射端口进行访问。如下图:实现功能:外网访问各个服务自定义的域名+统一的映射端口进行访问。可解决问题:(一)映射端口量实现无限量有效解决内网路由端口数量不足的情况,由于常规的路由
网上FLAC3D学习笔记
lqlong19922008
FLAC数值模拟primitiveplotinterfacefilterinitable
建议:初学者将FLAC/FLAC3D版所有帖子都浏览一遍;学有所得后,再浏览一遍,会发现又有新的收获。第一部分(相关链接)1.FLAC3D知识基本介绍SimWehttp://www.simwe.com/forum/viewthread.php?tid=209662http://www.simwe.com/forum/viewthread.php?tid=573644http://www.simwe
CTF-WEB:PHP伪协议用法总结
A5rZ
phpctfweb
php://伪协议:php://是PHP中的一个虚拟协议(或称为流包装器),用于访问PHP内部流资源。它是PHP提供的内置流协议之一,允许你通过流(stream)方式访问PHP内部的数据流、文件或其他资源。与file://等协议不同,php://并不直接映射到文件系统,而是用于处理PHP特有的资源,如输入输出流、临时文件、PHP自身的内存流等。php://协议是PHP流包装器的一部分,允许在PHP
我的书签
weixin_30376083
javaphp数据库
https://www.google.com.hk/webhp?hl=zh-CNGooglehttps://www.baidu.com/?tn=58002140_6_dns百度搜索http://tools.android-studio.org/index.phpAndroidDeveloperToolsDownload:ADT/JDK/Gradle/AndroidStudio2.0下载http:/
PHP代码段,用于连接MySQL数据库并查询数据
黄聪的笔记本
数据库phpmysql
connect_error){die("连接失败:".$conn->connect_error);}//SQL查询语句$sql="SELECTid,firstname,lastnameFROMMyGuests";$result=$conn->query($sql);if($result->num_rows>0){//输出数据while($row=$result->fetch_assoc()){ec
使用Python和Flask搭建导航网站需要注意的问题有哪些?
大懒猫软件
pythonflask开发语言
使用Python和Flask搭建导航网站时,需要注意以下几个关键问题,以确保网站的性能、安全性和可维护性。以下是一些常见问题和建议:1.性能优化静态文件缓存:确保静态文件(如CSS、JavaScript、图片)被浏览器缓存,减少重复请求。在Nginx中配置缓存头:nginx复制location~*\.(css|js|jpg|jpeg|png|gif)${expires1d;#设置缓存有效期为1天}
linux lamp环境源码搭建教程,Linux_Lamp环境(源码包)搭建详细教程
林文曦
linuxlamp环境源码搭建教程
LinuxLamp环境源码包搭建详细教程一:软件准备篇Apache:httpd-2.4.7.tar.gzMySql:mysql-5.5.35.tar.gzPHP:php-5.5.7.tar.gzApr:apr-1.5.0.tar.gzApr-Util:apr-util-1.5.3.tar.gzPcre:pcre-8.32.tar.gz其他软件请apt-getinstall安装:autoconf、c
linux-LAMP搭建
Theshaye
linux系统服务器linuxapache
LAMP1.架构描述LAMP是一个C/S架构的平台:web客户端基于tcp/ip协议,发出http请求,服务端进行回应,用户的请求可能是动态的也可能是静态的。web服务器通过用户发送的url后缀判断动静态请求:静态请求web服务器直接处理静态请求web服务器转发给后台应用服务器去处理:(CGI)php运行的后台程序apache与php所处环境不同决定其通讯方式不同:安装在同一台服务器,就默认使用系
docker——入门介绍、组件介绍、安装与启动、镜像相关命令、容器相关命令、应用部署
山上有个车
dockerdocker容器运维
文章目录一、入门介绍什么是虚拟化名词解释什么是Dockerdocker的优点容器与虚拟机比较二、组件介绍三、安装与启动安装docker所需依赖换yum源安装docker查看docker版本启动docker关闭dockerdocker开机启动查看docker详细信息四、镜像相关命令镜像加速五、容器相关命令六、应用部署部署mysql部署redis运行nginx一、入门介绍什么是虚拟化在计算机中,虚拟化
深入浅出Java Annotation(元注解和自定义注解)
Josh_Persistence
Java Annotation元注解自定义注解
一、基本概述
Annontation是Java5开始引入的新特征。中文名称一般叫注解。它提供了一种安全的类似注释的机制,用来将任何的信息或元数据(metadata)与程序元素(类、方法、成员变量等)进行关联。
更通俗的意思是为程序的元素(类、方法、成员变量)加上更直观更明了的说明,这些说明信息是与程序的业务逻辑无关,并且是供指定的工具或
mysql优化特定类型的查询
annan211
java工作mysql
本节所介绍的查询优化的技巧都是和特定版本相关的,所以对于未来mysql的版本未必适用。
1 优化count查询
对于count这个函数的网上的大部分资料都是错误的或者是理解的都是一知半解的。在做优化之前我们先来看看
真正的count()函数的作用到底是什么。
count()是一个特殊的函数,有两种非常不同的作用,他可以统计某个列值的数量,也可以统计行数。
在统
MAC下安装多版本JDK和切换几种方式
棋子chessman
jdk
环境:
MAC AIR,OS X 10.10,64位
历史:
过去 Mac 上的 Java 都是由 Apple 自己提供,只支持到 Java 6,并且OS X 10.7 开始系统并不自带(而是可选安装)(原自带的是1.6)。
后来 Apple 加入 OpenJDK 继续支持 Java 6,而 Java 7 将由 Oracle 负责提供。
在终端中输入jav
javaScript (1)
Array_06
JavaScriptjava浏览器
JavaScript
1、运算符
运算符就是完成操作的一系列符号,它有七类: 赋值运算符(=,+=,-=,*=,/=,%=,<<=,>>=,|=,&=)、算术运算符(+,-,*,/,++,--,%)、比较运算符(>,<,<=,>=,==,===,!=,!==)、逻辑运算符(||,&&,!)、条件运算(?:)、位
国内顶级代码分享网站
袁潇含
javajdkoracle.netPHP
现在国内很多开源网站感觉都是为了利益而做的
当然利益是肯定的,否则谁也不会免费的去做网站
&
Elasticsearch、MongoDB和Hadoop比较
随意而生
mongodbhadoop搜索引擎
IT界在过去几年中出现了一个有趣的现象。很多新的技术出现并立即拥抱了“大数据”。稍微老一点的技术也会将大数据添进自己的特性,避免落大部队太远,我们看到了不同技术之间的边际的模糊化。假如你有诸如Elasticsearch或者Solr这样的搜索引擎,它们存储着JSON文档,MongoDB存着JSON文档,或者一堆JSON文档存放在一个Hadoop集群的HDFS中。你可以使用这三种配
mac os 系统科研软件总结
张亚雄
mac os
1.1 Microsoft Office for Mac 2011
大客户版,自行搜索。
1.2 Latex (MacTex):
系统环境:https://tug.org/mactex/
&nb
Maven实战(四)生命周期
AdyZhang
maven
1. 三套生命周期 Maven拥有三套相互独立的生命周期,它们分别为clean,default和site。 每个生命周期包含一些阶段,这些阶段是有顺序的,并且后面的阶段依赖于前面的阶段,用户和Maven最直接的交互方式就是调用这些生命周期阶段。 以clean生命周期为例,它包含的阶段有pre-clean, clean 和 post
Linux下Jenkins迁移
aijuans
Jenkins
1. 将Jenkins程序目录copy过去 源程序在/export/data/tomcatRoot/ofctest-jenkins.jd.com下面 tar -cvzf jenkins.tar.gz ofctest-jenkins.jd.com &
request.getInputStream()只能获取一次的问题
ayaoxinchao
requestInputstream
问题:在使用HTTP协议实现应用间接口通信时,服务端读取客户端请求过来的数据,会用到request.getInputStream(),第一次读取的时候可以读取到数据,但是接下来的读取操作都读取不到数据
原因: 1. 一个InputStream对象在被读取完成后,将无法被再次读取,始终返回-1; 2. InputStream并没有实现reset方法(可以重
数据库SQL优化大总结之 百万级数据库优化方案
BigBird2012
SQL优化
网上关于SQL优化的教程很多,但是比较杂乱。近日有空整理了一下,写出来跟大家分享一下,其中有错误和不足的地方,还请大家纠正补充。
这篇文章我花费了大量的时间查找资料、修改、排版,希望大家阅读之后,感觉好的话推荐给更多的人,让更多的人看到、纠正以及补充。
1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。
2.应尽量避免在 where
jsonObject的使用
bijian1013
javajson
在项目中难免会用java处理json格式的数据,因此封装了一个JSONUtil工具类。
JSONUtil.java
package com.bijian.json.study;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
[Zookeeper学习笔记之六]Zookeeper源代码分析之Zookeeper.WatchRegistration
bit1129
zookeeper
Zookeeper类是Zookeeper提供给用户访问Zookeeper service的主要API,它包含了如下几个内部类
首先分析它的内部类,从WatchRegistration开始,为指定的znode path注册一个Watcher,
/**
* Register a watcher for a particular p
【Scala十三】Scala核心七:部分应用函数
bit1129
scala
何为部分应用函数?
Partially applied function: A function that’s used in an expression and that misses some of its arguments.For instance, if function f has type Int => Int => Int, then f and f(1) are p
Tomcat Error listenerStart 终极大法
ronin47
tomcat
Tomcat报的错太含糊了,什么错都没报出来,只提示了Error listenerStart。为了调试,我们要获得更详细的日志。可以在WEB-INF/classes目录下新建一个文件叫logging.properties,内容如下
Java代码
handlers = org.apache.juli.FileHandler, java.util.logging.ConsoleHa
不用加减符号实现加减法
BrokenDreams
实现
今天有群友发了一个问题,要求不用加减符号(包括负号)来实现加减法。
分析一下,先看最简单的情况,假设1+1,按二进制算的话结果是10,可以看到从右往左的第一位变为0,第二位由于进位变为1。
 
读《研磨设计模式》-代码笔记-状态模式-State
bylijinnan
java设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
/*
当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类
状态模式主要解决的是当控制一个对象状态的条件表达式过于复杂时的情况
把状态的判断逻辑转移到表示不同状态的一系列类中,可以把复杂的判断逻辑简化
如果在
CUDA程序block和thread超出硬件允许值时的异常
cherishLC
CUDA
调用CUDA的核函数时指定block 和 thread大小,该大小可以是dim3类型的(三维数组),只用一维时可以是usigned int型的。
以下程序验证了当block或thread大小超出硬件允许值时会产生异常!!!GPU根本不会执行运算!!!
所以验证结果的正确性很重要!!!
在VS中创建CUDA项目会有一个模板,里面有更详细的状态验证。
以下程序在K5000GPU上跑的。
诡异的超长时间GC问题定位
chenchao051
jvmcmsGChbaseswap
HBase的GC策略采用PawNew+CMS, 这是大众化的配置,ParNew经常会出现停顿时间特别长的情况,有时候甚至长到令人发指的地步,例如请看如下日志:
2012-10-17T05:54:54.293+0800: 739594.224: [GC 739606.508: [ParNew: 996800K->110720K(996800K), 178.8826900 secs] 3700
maven环境快速搭建
daizj
安装mavne环境配置
一 下载maven
安装maven之前,要先安装jdk及配置JAVA_HOME环境变量。这个安装和配置java环境不用多说。
maven下载地址:http://maven.apache.org/download.html,目前最新的是这个apache-maven-3.2.5-bin.zip,然后解压在任意位置,最好地址中不要带中文字符,这个做java 的都知道,地址中出现中文会出现很多
PHP网站安全,避免PHP网站受到攻击的方法
dcj3sjt126com
PHP
对于PHP网站安全主要存在这样几种攻击方式:1、命令注入(Command Injection)2、eval注入(Eval Injection)3、客户端脚本攻击(Script Insertion)4、跨网站脚本攻击(Cross Site Scripting, XSS)5、SQL注入攻击(SQL injection)6、跨网站请求伪造攻击(Cross Site Request Forgerie
yii中给CGridView设置默认的排序根据时间倒序的方法
dcj3sjt126com
GridView
public function searchWithRelated() {
$criteria = new CDbCriteria;
$criteria->together = true; //without th
Java集合对象和数组对象的转换
dyy_gusi
java集合
在开发中,我们经常需要将集合对象(List,Set)转换为数组对象,或者将数组对象转换为集合对象。Java提供了相互转换的工具,但是我们使用的时候需要注意,不能乱用滥用。
1、数组对象转换为集合对象
最暴力的方式是new一个集合对象,然后遍历数组,依次将数组中的元素放入到新的集合中,但是这样做显然过
nginx同一主机部署多个应用
geeksun
nginx
近日有一需求,需要在一台主机上用nginx部署2个php应用,分别是wordpress和wiki,探索了半天,终于部署好了,下面把过程记录下来。
1. 在nginx下创建vhosts目录,用以放置vhost文件。
mkdir vhosts
2. 修改nginx.conf的配置, 在http节点增加下面内容设置,用来包含vhosts里的配置文件
#
ubuntu添加admin权限的用户账号
hongtoushizi
ubuntuuseradd
ubuntu创建账号的方式通常用到两种:useradd 和adduser . 本人尝试了useradd方法,步骤如下:
1:useradd
使用useradd时,如果后面不加任何参数的话,如:sudo useradd sysadm 创建出来的用户将是默认的三无用户:无home directory ,无密码,无系统shell。
顾应该如下操作:
第五章 常用Lua开发库2-JSON库、编码转换、字符串处理
jinnianshilongnian
nginxlua
JSON库
在进行数据传输时JSON格式目前应用广泛,因此从Lua对象与JSON字符串之间相互转换是一个非常常见的功能;目前Lua也有几个JSON库,本人用过cjson、dkjson。其中cjson的语法严格(比如unicode \u0020\u7eaf),要求符合规范否则会解析失败(如\u002),而dkjson相对宽松,当然也可以通过修改cjson的源码来完成
Spring定时器配置的两种实现方式OpenSymphony Quartz和java Timer详解
yaerfeng1989
timerquartz定时器
原创整理不易,转载请注明出处:Spring定时器配置的两种实现方式OpenSymphony Quartz和java Timer详解
代码下载地址:http://www.zuidaima.com/share/1772648445103104.htm
有两种流行Spring定时器配置:Java的Timer类和OpenSymphony的Quartz。
1.Java Timer定时
首先继承jav
Linux下df与du两个命令的差别?
pda158
linux
一、df显示文件系统的使用情况,与du比較,就是更全盘化。 最经常使用的就是 df -T,显示文件系统的使用情况并显示文件系统的类型。 举比例如以下: [root@localhost ~]# df -T Filesystem Type &n
[转]SQLite的工具类 ---- 通过反射把Cursor封装到VO对象
ctfzh
VOandroidsqlite反射Cursor
在写DAO层时,觉得从Cursor里一个一个的取出字段值再装到VO(值对象)里太麻烦了,就写了一个工具类,用到了反射,可以把查询记录的值装到对应的VO里,也可以生成该VO的List。
使用时需要注意:
考虑到Android的性能问题,VO没有使用Setter和Getter,而是直接用public的属性。
表中的字段名需要和VO的属性名一样,要是不一样就得在查询的SQL中
该学习笔记用到的Employee表
vipbooks
oraclesql工作
这是我在学习Oracle是用到的Employee表,在该笔记中用到的就是这张表,大家可以用它来学习和练习。
drop table Employee;
-- 员工信息表
create table Employee(
-- 员工编号
EmpNo number(3) primary key,
-- 姓