--사원테이블(DEPT)에서 급여 (SAL)가 3000 이상인 사원을 출력하는 쿼리문
👉 select * from dept where sal >= 3000;
--부서 번호(DEPTNO)가 20인 사원에 관한 정보만 출력
👉 select * from emp where deptno = 20;
--이름(ENAME)이 FORD인 사람의 사번(empno), 이름(ename), 급여(SAL)를 출력하는 쿼리문
👉 select empno, ename, sal from emp where ename = 'FORD';
--1982년 1월 1일 이후에 입사한 사원을 출력하는 쿼리문
👉 select * from emp where hiredate >= '1982-01-01';
--부서번호가 10번이고 job 이 매니져인 사람을 출력
👉 select * from emp where deptno = 10 and job = 'MANAGER';
--부서번호가 10번 이거나(또는) job 이 매니져인 사람을 출력
👉 select * from emp where deptno = 10 or job = 'MANAGER';
--부서번호가 10번 부서가 아닌 사원
👉 select * from emp where deptno != 10;
--급여가 2000~3000 사이의 사원을 검색하는 쿼리문
👉 select * from emp where sal between 2000 and 3000;
--급여가 2000 미만이거나 3000 초과인 사원을 검색하는 쿼리문
👉 select * from emp where sal not between 2000 and 3000;
--1980년에 입사한 사원을 출력하는 쿼리문
👉 select * from emp where hiredate between '1980-01-01' and '1980-12-31';
--커미션(COMM)이 300 혹은 500 혹은 1400인 사원이 있는지 검색하는 쿼리문
👉 select * from emp where comm in(300, 500, 1400);
--커미션(COMM)이 300 혹은 500 혹은 1400이 아닌 사원이 있는지 검색하는 쿼리문
👉 select * from emp where comm not in(300, 500, 1400);
--이름이 F로 시작하는 사람을 찾는 쿼리문
👉 select * from emp where ename like 'F%';
--위치 상관 없이 이름 중에 A가 들어있는 사람을 찾는 쿼리문
👉 select * from emp where ename like '%A%';
--이름이 N으로 끝나는 사람을 찾는 쿼리문
👉 select * from emp where ename like '%N';
--이름의 두 번째 글자가 A인 사원을 찾는 쿼리문
👉 select * from emp where ename like '_A%';
--이름의 세 번째 글자가 A인 사원을 찾는 쿼리문
👉 select * from emp where ename like '__A%';
관계형 데이터베이스는 데이터가 하나 이상의 열과 행의 테이블(또는 '관계')에 저장되어 서로 다른 데이터 구조가 어떻게 관련되어 있는지 쉽게 파악하고 이해할 수 있도록 사전 정의된 관계로 데이터를 구성하는 정보 모음이다.
👉 종류
쿠키는 인터넷을 사용하는 유저가 어떤 웹사이트를 방문했을 때 그 사이트가 사용하는 서버를 통해 로컬에 저장되는 작은 데이터이다.
쿠키는 키와 밸류로 이루어져 있으며 만료기간, 도메인, 경로 등의 정보를 가지고 있다.
📌왜 쿠키란 이름을 가지게 된 것일까?
넷스케이프 개발자인 루 몬틀리가 이름을 짓게 되었는데 데이터의 패킷을 의미하는 "매직 쿠키" 에서 비롯되었다고 한다.
👉 클라이언트는 최대 300까지 쿠키를 가질 수 있으며, 하나의 도메인 당 최대 20개,
하나의 쿠키 당 최대 4KB까지 저장할 수 있다.
사용자가 웹 브라우저를 통해 웹서버에 접속한 시점으로부터 웹 브라우저를 종료하여 연결을 끝내는 시점까지, 같은 사용자로부터 오는 일련의 요청을 하나의 상태로 보고, 그 상태를 일정하게 유지하는 기술.
즉, 방문자가 웹 서버에 접속해있는 상태를 하나의 단위로 보고 그것을 세션이라고 한다.
👉 세션 특징
웹서버에 웹 컨테이너의 상태를 유지하기 위한 정보를 저장
웹서버에 저장되는 쿠키 (=세션쿠키)
브라우저를 닫거나, 서버에서 세션을 삭제했을 때 삭제되므로, 쿠키보다 보안이 좋다.
저장데이터에 제한이 없다.
각 클라이언트의 고유세션ID를 부여한다.
세션ID로 클라이언트를 구분하여 각 클라이언트 요구에 맞는 서비스를 제공한다.
클라이언트 요청 (사용자가 웹사이트 접근)
서버는 접근클라이언트의 Request-Header필드인 cookie를 확인하여, 클라이언트가 해당 세션ID를 보냈는지 확인
세션ID가 존재하지 않는다면, 서버는 세션ID를 생성해 클라이언트에게 전송.
서버에서 클라이언트로 준 세션ID를 쿠키를 사용해 서버에 저장한다.
클라이언트는 재접속시, 이 쿠키를 이용하여 세션ID값을 서버에 전달한다.
풀이는 아래와 같다. cookie_set.jsp파일을 생성하여 아래와 같이 코딩한다.
cookie_set.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
Cookie cookie = new Cookie("CookieN","CookieV");
cookie.setMaxAge(60*60);
response.addCookie(cookie);//response안에다가 cookie를 보냄
%>
<a href="cookie_get.jsp">cookie get</a>
</body>
</html>
=============================================================================
cookie_get.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
Cookie[] cookies = request.getCookies();
for(int i =0; i<cookies.length; i++){
String str = cookies[i].getName();
if(str.equals("cookieN")){
out.println("cookies[" + i + "] name : " + cookies[i].getName() + "<br />");
out.println("cookies[" + i + "] value : " + cookies[i].getValue() + "<br />");
out.println("==================================<br />");
}
}
%>
</body>
</html>
풀이는 아래와 같다. session_set.jsp파일을 생성하여 아래와 같이 코딩한다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
session.setAttribute("sessionName","sessionValue");
session.setAttribute("myNum",12345);
%>
<a href="session_get.jsp">session get</a>
</body>
</html>
------------------------------------------------------------------------
<%@page import="java.util.Enumeration"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
Enumeration enumeration = session.getAttributeNames();
int i = 0;
while(enumeration.hasMoreElements()) {
i++;
String sName = enumeration.nextElement().toString();
String sValue = (String)session.getAttribute(sName).toString();
out.println("sName : " + sName + "<br />");
out.println("sValue : " + sValue + "<br />");
}
out.println("************************ <br />");
session.removeAttribute("sessionName");
Enumeration enumeration1 = session.getAttributeNames();
i = 0;
while(enumeration1.hasMoreElements()) {
i++;
String sName = enumeration1.nextElement().toString();
String sValue = (String)session.getAttribute(sName).toString();
out.println("sName : " + sName + "<br />");
out.println("sValue : " + sValue + "<br />");
}
session.invalidate(); //섹션에 있는 것 전부 다 날림
%>
</body>
</html>
5번 코드 좀 뽀려갈게요...ㅎㅎㅎ 압도적 감사ㅜㅜ