1. <데이터베이스>
실행파일 MySQL ~~~~~
삭제파일 MySQL ~~~~~ - Unicode
현존하는 데이터베이스 확인
mysql> show databases;
데이터베이스 생성
mysql > create database test; (test : DB명)
데베 사용
mysql > use test;
데베 삭제
mysql > drop database test;
* 명령어 마지막엔 무조건 ; (세미콜론) 입력하기
* 방향키(위)로 이전에 작성한거 불러올 수 있음
* 변수명은 대소문자 가림
* 속성은 대소문자 상관없음(되도록 소문자로)
* 한 컬럼,
다음 컬럼,
데이터타입
1. 문자형
제목 input --> varchar : 가변길이 데이터타입, 나머지 공간 안채움
내용 input --> text
input radio --> ENUM( ' ' , ' ' ) : 둘중에 하나 선택하는 경우
2. 숫자형
INT --> 우측정렬됨 (문자로 바꾸면 좌측정렬)
테이블 생성
<bash />
create table 테이블명(
uid int(11) not null auto_increment, // 11자리 숫자형 타입 int로 / 무조건 값 있어야함. / 자동 1증가처리 하겠다
name varchar(255) default ' ', // 해당필드 기본값 설정!! 비어져있는 null 값을 주겠다(초기화하겠다)
primary key(uid) // 중복 불가능
) ;
* uid int(11) not null auto_increment primary key 로 적어도 됨
* uid 칼럼 : 고유키 (primary key) --> 순서 알 수 있는 역할?
* id 칼럼 : 아이디(1111, 2222)

2. <테이블&필드>
테이블 필드 구조 확인
mysql> desc 테이블명; // 애용하기!
mysql> describe 테이블명;
mysql> explain 테이블명;
테이블 삭제
mysql> drop table 테이블명;
기존 테이블에 필드 추가하기
mysql> alter table 테이블명 add column 칼럼명 varchar(글자크기); // column 생략 가능
mysql> alter table 테이블명 add column 칼럼명 int(숫자자리수) default 0; // 숫자는 0이 null임

기존 필드 속성 변경
mysql> alter table 테이블명 modify 기존필드명 필드타입; // 필드 속성 변경
mysql> alter table 테이블명 change 기존필드명 새필드명 필드타입; // 필드명 변경

기존 필드 삭제
mysql> alter table 테이블명 drop 필드명;
테이블 이름 변경
mysql> rename table 기존테이블명 to 새테이블명;

3. <테이블 값 삽입 등>
insert(입력) 구문
mysql> create table member (
id varchar(20) not null, // max 20까지 비어있음 안된다
name varchar(12) default ' ', // default ' ' : 값 안받아도 된다. 비어있다면 그 비어있는 값을 넣겠다
address varchar(100) default ' ',
primary key(id)
);

테이블 값 추가하기
mysql> insert into 테이블명(칼럼명1, 2, 3) values("값1", "값2","값3");
mysql> insert into 테이블명 values("값1", "값2","값3"); // 칼럼의 총 수 와 값들의 수가 매칭이 된다면 칼럼명 생략 가능
테이블 목록(데이터) 확인 ( 테이블 구조 확인 : show 테이블명; )
mysql> select * from 테이블명; // * : 모든 칼럼을 의미
mysql> select 칼럼1, 칼럼2 from 테이블명; // 칼럼1, 칼럼2만 확인
mysql> select count(*) from 테이블명; // 총수

mysql> insert into member2 values (null,'3333', '홍길동', '울산');
ㄴ> null 로 적으면 자리 차지 가능
한건의 내용 삭제
mysql> delete from 테이블명 where uid=해당번호; // pk로 기본조건
mysql> delete from 테이블명 where name="홍길동" ; // 모든 홍길동 다 지워짐 !!주의!!
enum() 추가
mysql> alter table member add gender enum('F','M') default 'M'; // null 값이라면 'M' 으로 나옴
update(수정) 구문
1. 입력
1) 기본 골격
mysql> update 테이블명 set 필드명='값' where 조건;
2) 입력 값 여러개
mysql> update 테이블명 set 필드명='값', 필드명='값' where 조건;
3) 조건 여러개
mysql> update 테이블명 set 필드명='값' where 조건1 and 조건 2;

ex) 나이 1씩 증가
set age = age + 1 로 설정
4. <기타>
<bash />
create table notice (
uid int(11) not null auto_increment,
id varchar(16) not null default '',
name varchar(20) not null default '',
subject varchar(255) not null default '',
comment text,
signdate varchar(30) default '', // 작성일
ref int(11) DEFAULT '0',
gongji enum('1','2','3') default '2', // 공지
file1 varchar(40) default '',
file1_o varchar(40) default '', // 오리지널 파일
file1_s varchar(40) default '', // 썸네일 파일
fid int(11) default 0,
thread varchar(20) default '',
PRIMARY KEY (uid)
) ;
uid thread
1 -------- A
2 ㄴ----- AA
3 ㄴ-- AAA
4 --------- AB
칼럼명 : ` ` (~ 키) --> 생략가능
jar 설치 --> WEB-INF > lib 폴더에 복붙하기 > dbconnection.jsp 에 <% %> 적기
Connection - java.sql 엔터 --> import 됨
Statement - java.sql 엔터 --> import 됨
//DB에 저장해보자(insert, update, delete 구문일 때)
String sql = "insert into member2 values('"+id+"','"+pass+"','"+name+"','"+email+"','1')";
Connection con = DriverManager.getConnection(url, user, password);
Statement stmt = con.createStatement();
stmt.executeUpdate(sql);
//DB에 저장해보자(select구문일 때)
String sql = "select * from member2 where memberid = '"+id+"' and password = '"+pass+"' ";
Connection con = DriverManager.getConnection(url, user, password);
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(sql); /* select 구문일 때만 추가 */
* 이클립스 오류 --> 아무리봐도 오타가 없음 : 전체선택해서 자르고 붙여넣기
[ index.jsp ]
<bash />
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ include file="/include/header.jsp" %>
<table width=100% border=0>
<tr>
<td align=center>index 내용</td>
</tr>
</table>
<%@ include file="/include/footer.jsp" %>
[ include > header.jsp ]
<bash />
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ include file="/include/dbconnection.jsp" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>망밍</title>
<!-- j쿼리 -->
<script src="http://code.jquery.com/jquery-1.12.4.min.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.4.1.min.js"></script>
<style>
body {
margin:0px;
padding:0px;
font-size:11px;
}
</style>
</head>
<body>
<%
String session_id = (String)session.getAttribute("id");
String session_name = (String)session.getAttribute("name");
String session_level = (String)session.getAttribute("level");
%>
session_id : <%=session_id %><br>
session_name : <%=session_name %><br>
session_level :<%=session_level %> <br>
<table width=100% border=0>
<tr>
<td align=left>
<a href="/"><img src="/img/logo.jpg" width=100></a>
</td>
<td align=right>
<%
if(session_level != null && session_level.equals("10")) { // 자바에서는 무조건 null먼저 비교 후 조건 걸어야함
out.print("<a href='/admin/'>[관리자]</a>");
}
%>
<% if(session_id ==null) {//로그인전%>
<a href="/member/login.jsp">[로그인]</a>
<a href="/member/join.jsp">[회원가입]</a>
<%}else{//로그인후%>
<a href="/member/logout.jsp">[로그아웃]</a>
<a href="/member/join_up.jsp">[회원수정]</a>
<%}%>
<%-- 위와 동일
<%
if(session_id == null) {
out.print("<a href='/member/login.jsp'>[로그인]</a>");
out.print("<a href='/member/join.jsp'>[회원가입]</a>");
} else {
out.print("<a href='/member/logout.jsp'>[로그아웃]</a>");
out.print("<a href='/member/mypage.jsp'>[마이페이지]</a>");
}
%>
--%>
</td>
</tr>
</table>
<hr>
[ include > footer.jsp ]
<bash />
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<hr>
<table width=100% border=0>
<tr>
<td align=center>2023@ekfdkfjsd</td>
</tr>
</table>
</body>
</html>
[ include > dbconnection.jsp ]
<bash />
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
//디비 접속
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost:3306/web"; // DB 이름 : web
String user="root";
String password="1111";
%>
<!--
// Time Zone 오류가 날시 아래와 같이 변경 처리
String url="jdbc:mysql://localhost:3306/web?serverTimezone=UTC";
// 데이터베이스 입력시 시간이 다르게 입력이 될 때
String url="jdbc:mysql://localhost:3306/web?time_zone='Asia/Seoul'; //아시아,서울 표준시간 설정처리
-->
[ member > login.jsp ]
<bash />
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ include file="/include/header.jsp" %>
<table width=100% border=0>
<tr>
<td align=center>[로그인]</td>
</tr>
</table>
<script>
function login_ok() {
if(m_id.value == "") {
alert("아이디를 입력하세요");
m_id.focus();
return false;
}
if(m_pass.value == "") {
alert("비밀번호 입력하세요");
m_pass.focus();
return false;
}
documet.login.submit();
}
</script>
<form name="login" action="login_ok.jsp" method="post" onsubmit="return login_ok()">
<table width=100% border=0>
<tr>
<td>아이디</td>
<td><input id="m_id" name="m_id"></td>
</tr>
<tr>
<td>비밀번호</td>
<td><input id="m_pass" name="m_pass"></td>
</tr>
<tr>
<td></td>
<td><button>로그인</button></td>
</tr>
</table>
</form>
<%@ include file="/include/footer.jsp" %>
[ member > login_ok.jsp ]
<bash />
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.Statement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ include file="/include/dbconnection.jsp" %>
<%
//넘어온 값 중에 한글이 있다면 캐릭터셋 : 매칭처리함
request.setCharacterEncoding("utf-8");
String id = request.getParameter("m_id");
out.print("아이디: " + id + "<br>");
String pass = request.getParameter("m_pass");
out.print("비밀번호: " + pass + "<br>");
String sql = "select * from member2 where memberid = '"+id+"' and password = '"+pass+"' ";
Connection con = DriverManager.getConnection(url, user, password);
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(sql); /* select 구문일 때만 추가 */
// 전역, 지역변수
String mem_id = "";
String mem_pass = "";
String mem_name = "";
String mem_level = "";
if(rs.next()) {
mem_id = rs.getString("memberid");
mem_pass = rs.getString("password");
mem_name = rs.getString("name");
mem_level = rs.getString("level");
}
if(id.equals(mem_id) && pass.equals(mem_pass)) { // 아이디, 비번 일치한다면
session.setAttribute("id", id); // session : 해당 브라우저 자체를 종료하지않는 이상 그 정보 계속 살아있음 ("내가만든변수", 값(사용자가 입력한 값))
session.setAttribute("level", mem_level);
session.setAttribute("name", mem_name);
} else {
}
/*
while(rs.next()) { // if구문으로 써도 됨
out.print(rs.getString("memberid")+" || ");
out.print(rs.getString("password")+" || ");
out.print("<br>");
}
*/
%>
<script>
location.href="/";
</script>
<!-- html -->
<%--
<table border=1>
<tr>
<td>아이디</td>
<td><%=id%></td> <!-- out.print 역할임 -->
</tr>
<tr>
<td>비밀번호</td>
<td><%=request.getParameter("m_pass")%></td>
</tr>
</table>
--%>
<%-- 아이디: <%=id%><br>
비밀번호: <%=pass%><br> --%>
[ member > join.jsp ] --> 회원가입
<bash />
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ include file="/include/header.jsp" %>
<table width=100% border=0>
<tr>
<td align=center>[회원가입]</td>
</tr>
</table>
<script>
function join_ok() {
if(m_id.value == "") {
alert("아이디를 입력하세요");
m.id.focus();
return;
}
if(m_pass.value == "") {
alert("비밀번호를 입력하세요");
m.pass.focus();
return;
}
if(m_name.value == "") {
alert("이름을 입력하세요");
m.name.focus();
return;
}
document.join.submit(); // join을 action(insert.jsp)에 get 방식으로 보내기
}
</script>
<form name="join" action="insert.jsp" method="post">
<table width=100% border=0>
<tr>
<td>아이디</td>
<td>
<input id="m_id" name="m_id">
<input type="button" value="아이디 중복체크" onclick="join_ok()">
</td>
</tr>
<tr>
<td>비밀번호</td>
<td><input id="m_pass" name="m_pass"></td>
</tr>
<tr>
<td>이름</td>
<td><input id="m_name" name="m_name"></td>
</tr>
<tr>
<td>이메일</td>
<td>
<input id="m_email1" name="m_email1">@
<input id="m_email2" name="m_email2">
<select id="domain" onchange="m_email2.value = this.value">
<option value="=직접입력=">=직접입력=</option>
<option value="naver.com">naver.com</option>
<option value="gmail.com">gmail.com</option>
<option value="nate.com">nate.com</option>
</select>
</td>
</tr>
<tr>
<td></td>
<td>
<input type="button" value="회원가입" onclick="join_ok()">
</td>
</tr>
</table>
</form>
<%@ include file="/include/footer.jsp" %>
[ member > insert.jsp ] --> 회원가입 완료
<bash />
<%@page import="java.sql.*"%>
<%-- <%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Statement"%>
<%@page import="java.sql.Connection"%> --%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ include file="/include/header.jsp" %>
<%
//넘어온 값 중에 한글이 있다면 캐릭터셋 : 매칭처리함
request.setCharacterEncoding("utf-8");
// 4대 내장 객체(이미 만들어져있는 객체) 중 request
String id = request.getParameter("m_id");
String pass = request.getParameter("m_pass");
String name = request.getParameter("m_name");
String email = request.getParameter("m_email1") + "@"+ request.getParameter("m_email2");
out.print("아이디: "+id+"<br>");
out.print("비밀번호: "+pass+"<br>");
out.print("이름: "+name+"<br>");
out.print("이메일: "+ email+"<br>");
//DB에 저장해보자
String sql = "insert into member2 values('"+id+"','"+pass+"','"+name+"','"+email+"','1')";
Connection con = DriverManager.getConnection(url, user, password);
Statement stmt = con.createStatement();
stmt.executeUpdate(sql); /* insert, update, delete 구문 */
%>
<script>
location.href="/";
</script>
[ member > logout.jsp ] --> 로그아웃
<bash />
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
session.invalidate(); // 모든 세션값을 삭제
%>
<script>
location.href="/";
</script>
[ member > join_up.jsp ] --> 회원수정(=마이페이지 mypage)
<bash />
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.Statement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ include file="/include/header.jsp" %>
<%
String sql = "select * from member2 where memberid='"+session_id+"'";
Connection con = DriverManager.getConnection(url, user, password);
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(sql);
String member_id = "";
String member_pass = "";
String member_name = "";
String member_email1 = "";
String member_email2 = "";
while(rs.next()) {
member_id = rs.getString("memberid");
member_pass = rs.getString("password");
member_name = rs.getString("name");
String[] member_email = rs.getString("email").split("@");
member_email1 = member_email[0]; // 메일주소 아이디
member_email2 = member_email[1]; // 메일주소 도메인
}
%>
<table width=100% border=0>
<tr>
<td align=center>[회원수정]</td>
</tr>
</table>
<script>
function join_up() {
if(m_id.value == "") {
alert("아이디를 입력하세요");
m.id.focus();
return;
}
if(m_pass.value == "") {
alert("비밀번호를 입력하세요");
m.pass.focus();
return;
}
if(m_name.value == "") {
alert("이름을 입력하세요");
m.name.focus();
return;
}
document.join.submit(); // join을 action(insert.jsp)에 get 방식으로 보내기
}
</script>
<form name="join" action="update.jsp" method="post">
<table width=100% border=0>
<tr>
<td>아이디</td>
<td>
<input id="m_id" name="m_id" value="<%=member_id%>">
<input type="button" value="아이디 중복체크" onclick="join_ok()">
</td>
</tr>
<tr>
<td>비밀번호</td>
<td><input id="m_pass" name="m_pass" value="<%=member_pass%>"></td>
</tr>
<tr>
<td>이름</td>
<td><input id="m_name" name="m_name" value="<%=member_name%>"></td>
</tr>
<tr>
<td>이메일</td>
<td>
<input id="m_email1" name="m_email1" value="<%=member_email1%>">@
<input id="m_email2" name="m_email2" value="<%=member_email2%>">
<select id="domain" onchange="m_email2.value = this.value">
<option value="=직접입력=">=직접입력=</option>
<option value="naver.com">naver.com</option>
<option value="gmail.com">gmail.com</option>
<option value="nate.com">nate.com</option>
</select>
</td>
</tr>
<tr>
<td></td>
<td>
<input type="button" value="회원수정" onclick="join_up()">
</td>
</tr>
</table>
</form>
<%@ include file="/include/footer.jsp" %>
[ member > update.jsp ] --> 회원수정(DB)
<bash />
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Statement"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ include file="/include/header.jsp" %>
<%
request.setCharacterEncoding("utf-8");
//4대 내장 객체(이미 만들어져있는 객체) 중 request
String id = request.getParameter("m_id");
String pass = request.getParameter("m_pass");
String name = request.getParameter("m_name");
String email = request.getParameter("m_email1") + "@"+ request.getParameter("m_email2");
out.print("아이디: "+id+"<br>");
out.print("비밀번호: "+pass+"<br>");
out.print("이름: "+name+"<br>");
out.print("이메일: "+ email+"<br>");
//DB에 저장해보자
String sql = "update member2 set password='"+pass+"', name='"+name+"', email='"+email+"', where memberid='"+id+"' ";
Connection con = DriverManager.getConnection(url, user, password);
Statement stmt = con.createStatement();
stmt.executeUpdate(sql);
%>
<script>
alert("수정되었습니다");
location.href="/join_up.jsp";
</script>
%>
순서 파악하기!!!!
1. DB 테이블, 데이터, 등등 다 만들기
2. 연결하기
3. 회원가입(메뉴 줄이기)
4. 로그인
5. 로그아웃
6. 회원수정 순으로
만들어야함
3. header
안에
jsp 구문 <% 전역변수 %>
맨 왼쪽 구석에 띄우기(서버에 저장하기)
2) level 이 10이라면 관리자 메뉴 보이게
1) 로그인 전 후 메뉴
if 로그인 전이라면
로그인, 회원가입
else 로그인 후라면
로그아웃, 마이페이지로 바뀌게 하기
2. login_ok
1. insert
4. logout
5. join_up
6. update
'DB > MySQL' 카테고리의 다른 글
DB 날짜 (0) | 2023.06.01 |
---|---|
DB 연결-SQLYog 설치 (0) | 2023.03.22 |