제약조건

 무결성 제약조건

역할 

 NOUT NULL

 NULL을 허용하지 않음

UNIQUE 

 중복된 값을 허용하지 않음 

 PRIMARY KEY

NULL 중복된 값을 허용하지 않음 

 FOREIGN KEY

참조되는 테이블의 컬럼의 값이 존재 하면 허용 

 CHECK, DEFAULT

저장 가능한 데이터의 범위나 조건을 지정 




****************************************************************


테이블 만들기


create table teach(

ID number(3) primary key,

pw number(3) not null,

name varchar2(10) not null,

class number(2),

subject varchar2(20),

age number(3),

gender char(10),

experience number(3));


확인


select * from teach


행추가

insert into TEACH

values(1,123,'Kim',1,'math',40,'male',30);



****************************************************************

SQL Scrapbook


create table teach(

ID number(3) primary key,

pw number(3) not null,

name varchar2(10) not null,

class number(2),

subject varchar2(20),

age number(3),

gender char(10),

experience number(3));



select * from teach


insert into TEACH

values(10,123,'Yeom',10,'Act',32,'male',3);



create table prod(

keynumber number(3) primary key,

name varchar2(20) not null,

price number(5) not null,

stock number(3));


select*from prod



*******************************************************************

<내코드>


#메인

package java_0811;


import java.util.Scanner;


public class DbTest {


public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

SelectTeacher sct = new SelectTeacher();

while(true){

System.out.println("메뉴를 선택하세요.");

System.out.println("1.전체조회 2.선택조회 3.입력 4.수정 5.종료");

int menu = sc.nextInt();

if(menu==1){

sct.selectAll();

}else if(menu==2){

sct.findOne();

}else if(menu==3){

}else if(menu==3){

}else if(menu==3){

}else{

break;

}

}

}


}




#검색
package java_0811;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Scanner;

public class SelectTeacher {
Scanner sc = new Scanner(System.in);
public void selectAll(){
String id = "user01";
String pw = "user01";
String url = "jdbc:oracle:thin:@192.168.116.128:1521:xe";
String driver = "oracle.jdbc.driver.OracleDriver";
Connection con = null;
Statement st = null;
ResultSet rs = null;
try {
Class.forName(driver);
System.out.println("드라이버 로딩성공");
con = DriverManager.getConnection(url, id, pw);
System.out.println("데이터베이스 접속성공");
st = con.createStatement();
String sql = "select*from teach";
rs = st.executeQuery(sql);
while(rs.next()){
int sid = rs.getInt("ID");
int spw = rs.getInt("PW");
String sname = rs.getString("NAME");
int sclass = rs.getInt("CLASS");
String ssubject = rs.getString("SUBJECT");
int sage = rs.getShort("AGE");
String sgender = rs.getString("GENDER");
int sexp = rs.getInt("EXPERIENCE");
System.out.println("ID번호 :" +sid);
System.out.println("PW번호 :"+spw);
System.out.println("이름 :"+sname);
System.out.println("담임 :"+sclass+"반");
System.out.println("과목 :"+ssubject);
System.out.println("나이 :"+sage);
System.out.println("성별 :"+sgender);
System.out.println("경력 :"+sexp+"년");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
rs.close();
st.close();
con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void findOne(){
String id = "user01";
String pw = "user01";
String url = "jdbc:oracle:thin:@192.168.116.128:1521:xe";
String driver = "oracle.jdbc.driver.OracleDriver";
Connection con = null;
Statement st = null;
ResultSet rs = null;
try {
Class.forName(driver);
System.out.println("드라이버 로딩성공");
con = DriverManager.getConnection(url, id, pw);
System.out.println("데이터베이스 접속성공");
st = con.createStatement();
System.out.println("찾은 ID를 입력하세요.");
String wid = sc.next();
String sql = "select*from teach where ID="+"'"+wid+"'";
rs = st.executeQuery(sql);
if(rs.next()){
int sid = rs.getInt("ID");
int spw = rs.getInt("PW");
String sname = rs.getString("NAME");
int sclass = rs.getInt("CLASS");
String ssubject = rs.getString("SUBJECT");
int sage = rs.getShort("AGE");
String sgender = rs.getString("GENDER");
int sexp = rs.getInt("EXPERIENCE");
System.out.println("ID번호 :" +sid);
System.out.println("PW번호 :"+spw);
System.out.println("이름 :"+sname);
System.out.println("담임 :"+sclass+"반");
System.out.println("과목 :"+ssubject);
System.out.println("나이 :"+sage);
System.out.println("성별 :"+sgender);
System.out.println("경력 :"+sexp+"년");

}else{
System.out.println("해당 ID가 없습니다.");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
rs.close();
st.close();
con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}



<같은것>
package java_0811;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Scanner;

public class SelectTeacher {
Scanner sc = new Scanner(System.in);
String id = "user01";
String pw = "user01";
String url = "jdbc:oracle:thin:@192.168.116.128:1521:xe";
String driver = "oracle.jdbc.driver.OracleDriver";
Connection con = null;
Statement st = null;
ResultSet rs = null;
public void selectAll(){
try {
Class.forName(driver);
System.out.println("드라이버 로딩성공");
con = DriverManager.getConnection(url, id, pw);
System.out.println("데이터베이스 접속성공");
st = con.createStatement();
String sql = "select*from teach";
rs = st.executeQuery(sql);
while(rs.next()){
int sid = rs.getInt("ID");
int spw = rs.getInt("PW");
String sname = rs.getString("NAME");
int sclass = rs.getInt("CLASS");
String ssubject = rs.getString("SUBJECT");
int sage = rs.getShort("AGE");
String sgender = rs.getString("GENDER");
int sexp = rs.getInt("EXPERIENCE");
System.out.println("ID번호 :" +sid);
System.out.println("PW번호 :"+spw);
System.out.println("이름 :"+sname);
System.out.println("담임 :"+sclass+"반");
System.out.println("과목 :"+ssubject);
System.out.println("나이 :"+sage);
System.out.println("성별 :"+sgender);
System.out.println("경력 :"+sexp+"년");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
rs.close();
st.close();
con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void findOne(){
try {
Class.forName(driver);
System.out.println("드라이버 로딩성공");
con = DriverManager.getConnection(url, id, pw);
System.out.println("데이터베이스 접속성공");
st = con.createStatement();
System.out.println("찾은 ID를 입력하세요.");
String wid = sc.next();
String sql = "select*from teach where ID="+"'"+wid+"'";
rs = st.executeQuery(sql);
if(rs.next()){
int sid = rs.getInt("ID");
int spw = rs.getInt("PW");
String sname = rs.getString("NAME");
int sclass = rs.getInt("CLASS");
String ssubject = rs.getString("SUBJECT");
int sage = rs.getShort("AGE");
String sgender = rs.getString("GENDER");
int sexp = rs.getInt("EXPERIENCE");
System.out.println("ID번호 :" +sid);
System.out.println("PW번호 :"+spw);
System.out.println("이름 :"+sname);
System.out.println("담임 :"+sclass+"반");
System.out.println("과목 :"+ssubject);
System.out.println("나이 :"+sage);
System.out.println("성별 :"+sgender);
System.out.println("경력 :"+sexp+"년");

}else{
System.out.println("해당 ID가 없습니다.");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
rs.close();
st.close();
con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}



**********************************************************




<선생님 코드>


#메인


public class DMain {


public static void main(String[] args) {

SelectTeacher st = new SelectTeacher();

st.selTeacher();

//st.selectAll();

}


}




#검색

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import java.util.Scanner;


public class SelectTeacher {

String id="user01";

String pw="user01";

String url="jdbc:oracle:thin:@192.168.40.128:1521:xe";

String driver="oracle.jdbc.driver.OracleDriver";

Connection con;

public SelectTeacher() {

try {

Class.forName(driver);

con = DriverManager.getConnection(url, id, pw);

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

public void selectAll(){

ResultSet rs=null;

try {

Statement st = con.createStatement();

String sql="select * from teachers";

rs = st.executeQuery(sql);

while(rs.next()){

System.out.println(rs.getString("id"));

System.out.println(rs.getString("password"));

System.out.println(rs.getString("name"));

System.out.println(rs.getString("gender"));

System.out.println(rs.getInt("age"));

System.out.println(rs.getString("subject"));

}

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}finally {

try {

rs.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

public void selTeacher(){

ResultSet rs=null;

try {

String sql = "select * from teachers where id=?";

//Statement st = con.createStatement();

PreparedStatement st = con.prepareStatement(sql);

Scanner sc = new Scanner(System.in);

System.out.println("찾을 ID를 입력하세요");

String idd = sc.next();

st.setString(1, idd);

rs = st.executeQuery();

if(rs.next()){

System.out.println(rs.getString("id"));

System.out.println(rs.getString("password"));

System.out.println(rs.getString("name"));

System.out.println(rs.getString("gender"));

System.out.println(rs.getInt("age"));

System.out.println(rs.getString("subject"));

}else{

System.out.println("그런 사람 없다");

}

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}finally {

try {

rs.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}


}




PrepareStatement 사용법 익히기

?사용법.  그리고 preparestatement에서 인덱스번호는 1번부터 시작


프리페어드 사용법

con = DriverManager.getConnection(url,id,pw);
String sql = " " ;
PreparedStatement st = con.preparedStatement(sql);
st.setString(1,"id");
st.executeQuery();



******************************************************

PreparedStatement 사용해서 insert문 써보기

[내가짠거]

package java_0811;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Scanner;

public class InsertTeacher {
Scanner sc = new Scanner(System.in);
public void insert(){
String id = "user01";
String pw = "user01";
String url = "jdbc:oracle:thin:@192.168.116.128:1521:xe";
String driver = "oracle.jdbc.driver.OracleDriver";
Connection con = null;
PreparedStatement st = null;
try {
Class.forName(driver);
System.out.println("드라이버 로딩성공");
con = DriverManager.getConnection(url, id, pw);
System.out.println("데이터베이스 접속성공");
String sql = "insert into teach values(?,?,?,?,?,?,?,?)";
st = con.prepareStatement(sql);
System.out.println("선생님을 등록합니다.");
System.out.println("ID번호를 입력하세요");
String iid = sc.next();
st.setString(1, iid);
System.out.println("PW번호를 입력하세요.");
String ipw = sc.next();
st.setString(2, ipw);
System.out.println("추가할 이름 입력");
String iname = sc.next();
st.setString(3, iname);
System.out.println("반번호 입력");
String iclass = sc.next();
st.setString(4, iclass);
System.out.println("과목이름 입력");
String isub = sc.next();
st.setString(5, isub);
System.out.println("나이 입력");
String iage = sc.next();
st.setString(6, iage);
System.out.println("성별입력");
String igender = sc.next();
st.setString(7, igender);
System.out.println("경력입력");
String iexp = sc.next();
st.setString(8, iexp);
st.executeUpdate();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
st.close();
con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}




******************************************************************

ID 중복검사 기능 추가

[쌤코드]

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;

public class InsertTeacher {
public void insertTest(){
String id="user01";
String pw="user01";
String url="jdbc:oracle:thin:@192.168.40.128:1521:xe";
String driver="oracle.jdbc.driver.OracleDriver";
Scanner sc = new Scanner(System.in);
Connection con;
PreparedStatement st=null;
ResultSet rs=null;
try {
Class.forName(driver);
con = DriverManager.getConnection(url, id, pw);
//DB 연결 끝
System.out.println("id를 입력하세요");
String yId= sc.next();
String sql ="select * from teachers where id=?";
st = con.prepareStatement(sql);
st.setString(1, yId);
rs = st.executeQuery();
if(rs.next()){
System.out.println("아이디가 있다.");
}else{
System.out.println("사용 가능한 아이디 입니다.");
System.out.println("비번을 입력하세요");
String ypw = sc.next();
System.out.println("이름을 입력하세요");
String name = sc.next();
System.out.println("성별을 입력하세요");
String gender = sc.next();
System.out.println("나이를 입력하세요");
int age = sc.nextInt();
System.out.println("과목을 입력하세요");
String subject = sc.next();
rs.close();
st.close();
sql ="insert into teachers values(?,?,?,?,?,?)";
st = con.prepareStatement(sql);
st.setString(1, yId);
st.setString(2, ypw);
st.setString(3, name);
st.setString(4, gender);
st.setInt(5, age);
st.setString(6, subject);
st.executeUpdate();
System.out.println("회원가입에 성공했다");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
try {
//rs.close();
st.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

}



***쌤거 보고 동일하게 한거

package java_0811;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Scanner;

public class InsertTeacher {
Scanner sc = new Scanner(System.in);
public void insert(){
String id = "user01";
String pw = "user01";
String url = "jdbc:oracle:thin:@192.168.116.128:1521:xe";
String driver = "oracle.jdbc.driver.OracleDriver";
Connection con = null;
PreparedStatement st = null;
ResultSet rs = null;
try {
Class.forName(driver);
System.out.println("드라이버 로딩성공");
con = DriverManager.getConnection(url, id, pw);
System.out.println("데이터베이스 접속성공");
System.out.println("선생님을 등록합니다.");
System.out.println("ID번호를 입력하세요");
String iid = sc.next();
String sql = "select*from teach where id=?";
st = con.prepareStatement(sql);
st.setString(1, iid);
rs = st.executeQuery();
if(rs.next()){
System.out.println("이미 존재하는 ID입니다.");
}else{
System.out.println("사용가능한 아이디 입니다.");
System.out.println("PW번호를 입력하세요.");
String ipw = sc.next();
System.out.println("추가할 이름 입력");
String iname = sc.next();
System.out.println("반번호 입력");
String iclass = sc.next();
System.out.println("과목이름 입력");
String isub = sc.next();
System.out.println("나이 입력");
String iage = sc.next();
System.out.println("성별입력");
String igender = sc.next();
System.out.println("경력입력");
String iexp = sc.next();
rs.close();
st.close();
sql = "insert into teach values(?,?,?,?,?,?,?,?)";
st = con.prepareStatement(sql);
st.setString(1, iid);
st.setString(2, ipw);
st.setString(3, iname);
st.setString(4, iclass);
st.setString(5, isub);
st.setString(6, iage);
st.setString(7, igender);
st.setString(8, iexp);
st.executeUpdate();
System.out.println("등록 성공");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
st.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}






*******************************************************

로그인기능 구현하기


선생님거 보고 만든거




package java_0811;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;

public class LogDb {

public void log(){
String id = "user01";
String pw = "user01";
String url = "jdbc:oracle:thin:@192.168.116.128:1521:xe";
String driver = "oracle.jdbc.driver.OracleDriver";
Connection con = null;
PreparedStatement st = null;
ResultSet rs = null;
Scanner sc = new Scanner(System.in);
try {
Class.forName(driver);
con = DriverManager.getConnection(url, id, pw);
System.out.println("아이디를 입력하세요.");
String lid = sc.next();
System.out.println("비밀번호를 입력하세요.");
String lpw = sc.next();
String sql = "select*from teach where id=? and pw=?";
st = con.prepareStatement(sql);
st.setString(1, lid);
st.setString(2, lpw);
rs = st.executeQuery();
if(rs.next()){
System.out.println("로그인성공");
}else{
System.out.println("로그인실패");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}



메인클래스

package java_0811;

import java.util.Scanner;

public class DbTest {

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
SelectTeacher sct = new SelectTeacher();
InsertTeacher ict = new InsertTeacher();
LogDb lg = new LogDb();
while(true){
System.out.println("메뉴를 선택하세요.");
System.out.println("1.전체조회 2.선택조회 3.등록 4.수정 5.로그인 6.종료");
int menu = sc.nextInt();
if(menu==1){
sct.selectAll();
}else if(menu==2){
sct.findOne();
}else if(menu==3){
ict.insert();
sct.selectAll();
}else if(menu==4){
}else if(menu==5){
lg.log();
}else{
break;
}
}
}

}




**************************************************************

제품 데이터베이스 만들고 

구매하기 구현



제품번호
제품이름
제품가격
재고수량



















블로그 이미지

테시리

,