course 2021/JDBC\DB

course 2021/JDBC\DB

DB10 - 12/02(sql40, jdbc42~43)

40transaction.sql transaction: 하나의 업무 단위 예를 들어, 돈을 송금한다고 하면, 1)하나의 계좌에서 돈을 출금하고 2)또 다른 계좌로 입금하는 과정이 필요 만약 1) 까지 실행하고 문제가 발생하여 2) 를 실행하지 못한다면, 다시 1) 도 실행하지 않은 상태로 되돌려야 함 즉, 1) 과 2) 는 묶어서 하나의 업무 단위이다 CREATE TABLE myBank ( id INT PRIMARY KEY AUTO_INCREMENT, money INT NOT NULL ); INSERT INTO myBank (money) VALUES (10000), (20000); 1번 계좌에서 2번 계좌로 5000원 송금한다면 다음과 같이 코드 작성 -- 1) 1번 계좌에서 출금 UP..

course 2021/JDBC\DB

DB09 - 12/01(sql35~39, jdbc40~41) - like, in, between, limit

35like.sql ♠ LIKE : WHERE 와 함께 사용되며, = 대신 쓰인다 특수기호 "%" 와 함께 사용되는데, 여기서 "%" 는 아무거나 (0개 이상) 라는 의미 1. 'a%' : a 로 시작하는 (% 자리는 아무거나) 2. '%a' : a 로 끝나는 (% 자리는 아무거나) 3. '%a%' : 중간에 (앞뒤 포함) a 를 포함하는 (% 자리는 아무거나) 4. 'a%b' : a 로 시작해서 b 로 끝나는 (% 자리는 아무거나) * 또 다른 특수기호 "_" : "_" 개수가 자릿수를 나타냄 1. 'a_' : a + 한 글자 아무거나 2. '__a' : 두 글자 아무거나 + a SELECT * FROM 테이블명 WHERE 컬럼명 LIKE 조건; SELECT * FROM Customers WHERE C..

course 2021/JDBC\DB

DB08 - 30일(sql28~34) - count, min, max, avg, sum, group by, having

28join.sql ♠ 테이블 하나 더 추가해서 3개(혹은 그 이상도 가능) join 해보기 SELECT 컬럼 FROM 테이블1 JOIN 테이블 2 ON 테이블1.컬럼 = 테이블2.컬럼 JOIN 테이블3 ON 테이블2.컬럼 = 테이블3.컬럼; 예) SELECT c.CustomerName, o.OrderDate, o.EmployeeID, e.LastName, e.FirstName FROM Customers c JOIN Orders o ON c.CustomerID = o.CustomerID JOIN Employees e ON o.EmployeeID = e.EmployeeID ORDER BY 1; 예) -- 어떤 고객이 어떤 배송자(Shipper)를 사용했는 지 조회 -- 컬럼:고객명, 주문날짜, 배송자명, ..

course 2021/JDBC\DB

DB07 - 29일(sql16~27, jdbc39) - alter, foreign key, join, union

16alter-table.sql ♠ MODIFY COLUMN ALTER TABLE 테이블명 MODIFY COLUMN 변경할컬럼명 datatype constraint; datatype 혹은 constraint 를 바꿀 수 있음 추가하려는 제약 사항을 위반하는 레코드가 이미 있다면 제약 사항 추가하는 코드가 실행되지 않음 ALTER TABLE mytable MODIFY COLUMN col1 INT NOT NULL; -- NOT NULL 추가 ALTER TABLE mytable MODIFY COLUMN col1 INT NULL; -- NOT NULL 삭제 ALTER TABLE mytable MODIFY COLUMN col1 INT DEFAULT 0; -- DEFAULT 추가 ALTER TABLE mytable..

course 2021/JDBC\DB

DB06 - 26일(jdbc31~38, sql12~15) - constraint, alter

jdbc08 JDBC31Servlet sql 에서 테이블 만들고, servlet 실행해서 값 넣기 doGet protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 0. ServletContext application = request.getServletContext(); DataSource ds = (DataSource) application.getAttribute("dbpool"); String sql = "INSERT INTO mytable10 (col1, col2, col3, col4, col5, col6, col7) VALUES (?, ..

course 2021/JDBC\DB

DB05 - 25일(jdbc27~30, sql08~11) - delete, create

JDBC27Servlet 25번 서블릿 + 화면까지 만들기 (jsp) ↑ get 방식 / post 방식 get - jsp (form) 보여주기 post - 실제 db 변경 (update 받아서 하는건 지금은 생략) update 는 변경 전 정보가 담겨있어야 함, 변경 전 정보를 한번 확인해야 함 doGet, doPost protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 0. 사전작업 ServletContext application = request.getServletContext(); DataSource ds = (DataSource) ap..

course 2021/JDBC\DB

DB04 - 24일(sql06~07, jdbc21~26) - insert, update

06insert.sql w3schools - SQL INSERT INTO Statement : https://www.w3schools.com/sql/sql_insert.asp ♠ INSERT INTO ~ VALUES ~ : 행 추가하기 INSERT INTO 테이블명 VALUES (컬럼1 값, 컬럼2 값, ...); INSERT INTO 테이블명 (컬럼1 이름, 컬럼2 이름, ...) VALUES (컬럼1 값, 컬럼2 값, ...); 몇 개의 컬럼만 값을 넣어 행을 추가할 경우 나머지 값들은 null 이 된다 전체 컬럼에 값을 넣을 경우에도 컬럼명을 써주는 게 좋다 INSERT INTO Customers VALUES (92, 'Kim', 'Kim', 'GangNam', 'Seoul', '88888', 'K..

course 2021/JDBC\DB

DB03 - 23일(jdbc11~20)

JDBC11Servlet - 그냥 반복 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 0. 사전작업 ServletContext application = request.getServletContext(); DataSource ds = (DataSource) application.getAttribute("dbpool"); List list = new ArrayList(); // 3. business logic String sql = "SELECT " + " EmployeeID, LastName, FirstName, BirthDate, Pho..

course 2021/JDBC\DB

DB02 - 22일(jdbc03~10)

0. 사전작업 ServletContext application = request.getServletContext(); DataSource pool = (DataSource) application.getAttribute("dbpool"); 2. request 정보 분석/가공 3. 비즈니스 로직 (주로 db 작업) String sql = "sql 코드"; try( 3.1. 커넥션 얻기 Connection con = pool.getConnection(); 3.2. statement 얻기 Statement stmt = con.createStatement(); ) { 3.3. 쿼리 실행 (resultSet 얻기) ResultSet rs = stmt.excuteQuery(sql); 3.4. resultSet 처리 ..

course 2021/JDBC\DB

DB01 - 19일(sql01~05, jdbc01~02)

SQL : Structured Query Language aws 는 클라우드라고 보면 됨. aws 에서 컴퓨터를 하나 빌려서 데이터를 저장해뒀다. 위의 + 아이콘 클릭 시 새로운 코드 창이 생성됨 Tables 하위 Categories, Customers, .. 등등은 모두 각각 table 이다 ♠ 이 테이블을 사용하려면 코드 처음에 다음과 같이 작성해줘야 한다! USE 테이블명; USE test; 우리는 mariadb, mysql 기준으로 문법을 배울 예정 앞으로 sql 에서 작성되는 코드들은 모두 이클립스 WEB-INF > sql 폴더 안에 저장할것임 01intro ♠ sql 에서 한 줄 주석 작성하기: "-- " -- 한 줄 주석 ♠ 하나의 명령문은 세미클론으로 끝남 ♠ 하나의 명령문을 실행하는 방법..

코딩하는토끼
'course 2021/JDBC\DB' 카테고리의 글 목록