추씨의자바일기16편 feat. database(cmd)

2023. 10. 4. 16:41JAVA

금일강의내용정리

==========================================================================

* mysql.com => Mariadb
  Oracle
  Mssql

JDK <- Connector -> Mysql
         middlewawre(*.jar)

DDL : CREATE, DROP
DCL : INSERT, SELECT, UPDATE, DELETE

서버 : 최고관리자(root) -> 일반계정에 권한 부여
SQL : 구조적 질의어 - Structured Query Language
- ANSI SQL : 모든 데이터베이스에서 공통으로 사용 가능

데이터베이스(큰 폴더) -> 테이블(작은 폴더 : 여러 개 존재 - 실제 데이터가 저장)

큰 폴더 확인
SHOW DATABASES;

작은 폴더 확인
USE 데이버베이스이름;
SHOW TABLES;

대문자 -> 소문자
객체 = 테이블 : Member.java
ex) 쇼핑몰(데이터베이스 - 큰 폴더) - SHOP
use SHOP;


- 회원가입 : 객체(아이디, 이름...) - SHOP_Member 테이블
CREATE TABLE SHOP_Member(
userid varchar(15),
name varchar(10),
tel char(15),
jumin char(14),
age int,
date date
);

타입을 정확하게 명시했는지 확인 => DESC 테이블명;

- 상품등록 : 객체(상품이름, 가격...) - SHOP_Items 테이블
숫자 INT, 글자는 VARCHAR(저장할 글자수)

데이터베이스 K_ERP

전사적자원관리(ERP) - 데이터베이스
use 데이터베이스명;

- 사원관리 : Employees 테이블 => K_ERP_EMP 테이블
CREATE TABLE K_ERP_EMP(
id int,
name varchar(20),
salary int,
stratDate date
);

mysqldump -uroot -p 백업할데이터베이스이름 > 백업이름.확장자
mysqldump -uroot -p K_ERP > ./20231004_erp.dump

사번(int), 사원명(varchar(5), 급여(int), 입사일 datetime(date)

- 급여관리 : Salary 테이블 => K_ERP_SALARY 테이블
- 자재관리 : Stuff 테이블 => K_ERP_STUFF

데이터베이스 정의어(D Definition L)
- 생성(CREATE), 제거(DROP), ALTER(변경)

데이터베이스 조작어(D Manupulate L)
- 입력(INSERT), 검색(SELECT), 수정(UPDATE), 삭제(DELETE) 

데이터베이스 제어어(D Control L) : 보안 - 계정생성

jdk <==> mysql
jdbcPrj01
- JdbcPrj01Ex.java

내컴퓨터
- 이름 또는 IP
localhost OR 127.0.01
koreait.co.kt.3306

DDL : CREATE, DROP, ALTER

DML 테이블 생성 후
INSERT, SELECT, UPDATE, DELETE

예제) 쇼핑몰
- 회원가입 테이블
  - 회원번호 : INT
  - 회원이름 : VARCHAR
  - 전화번호 : CHAR(13)
  - 포인트 : INT
  - 가입일

CREATE TABLE MEMBER(
id int,
name varchar(20),
tel char(13),
point int,
regdate date
);

INSERT INTO MEMBER VALUES(101, '홍길동', '010-0000-0000', 1000, NOW());

SELECT * FROM MEMBER;

1. MYSQL 접속


2. SHOW DATABASES;


3-1. 만들어진 데이터베이스가 없다면
      CREATE DATABASE 이름;


      USE 데이터베이스명;


3-2. 미리 생성된 데이터베이스가 있으면
      USE 데이터베이스명; 

4. 테이블 이름 확인


5-1. 테이블 생성 -> 자바에서 필드명과 동일하게 작업
    필드명을 만들 때
    디비는 _로 단어를 연결하고
    자바는 카멜 표기법으로 연결
    - 제약 조건을 지정해야 한다.
     - NOT NULL : 절대 값이 비면 안되는 필드


기본키는 빈 값 x + 중복된 값x
CREATE TABLE MEMBER(
email varchar(50) NOT NULL primary key,
passwd varchar(15) NOT NULL
);


5-2. 테이블이 존재한다면.....
SHOW TABLES;
DESC 테이블명; --테이블 구조 확인


6. CRUD 작업

기본키(primary key) : 빈값X, 중복된 값X(pk)
-> 유일한 나를 구분해 준다(수정, 삭제, 검색 내 것만 처리가 가능)

unique : 빈값 허용하지만 중복된 값은 X

INSERT INTO MEMBER VALUES
('mail@mail.com', '1234'), 
('mail2@mail.com', '1234'), 
('mail3@mail.com', '1234');

SELECT * FROM MEMBER;

SELECT COUNT(*) AS회원수 FROM MEMBER;

CREATE TABLE MEMBER(
id int not null primary key,
name varchar(50),
passwd varchar(10)
);

INSERT INTO MEMBER VALUES
(101, '홍길동', '1111'), 
(102, '김철수', '2222'), 
(103, '이영희', '333');

SELECT * FROM MEMBER; -- 출력

CREATE TABLE MEMBER(
id int not null auto_increment,
name varchar(10) not null,
passwd varchar(20) not null,
primary key(id)
);

INSERT INTO MEMBER VALUES(NULL, '홍길동', '1234');
INSERT INTO MEMBER VALUES(NULL, '홍길동', '1234');
INSERT INTO MEMBER VALUES(NULL, '홍길동', '1234');

DELETE FROM MEMBER; -- 전체 삭제
DELETE FROM MEMBER WHERE id = 6;

UPDATE 테이블명 SET
컬럼명1 = 값, 컬럼명2 = 값
WHERE 조건 = 값;

컬럼명 = 필드

이름, 비번, 1번
UPDATE MEMBER SET name = '서울', passwd =  '7777'
WHERE id = 5;
SELECT * FROM MEMBER;

명령어 정리

입력
INSERT INTO 테이블명 VALUES(값1, 값2...)

삭제
DELETE FROM 테이블명 WHERE pk컬럼 = 값;

수정
UPDATE 테이블명 SET 수정할컬럼1 = 값, 수정할컬럼2 = 값... WHERE pk컬럼 = 값;


전체 검색
SELECT * FROM MEMBER;

조건 검색
SELECT * FROM 테이블명 WHERE pk컬럼 = 값;

예제) 회원번호, 회원이름, 비밀번호를 데이터베이스에 저장하는 JDBC 프로그램을 완성하시오.
jdbcPrh02 => JdbcPrh02Ex.java
insert.txt

0. 데이터베이스/테이블 생성 : mydb/register
1. 드라이버 등록
2. Class.forName()
3. url, id, pwd
4. INSERT

* SELECT * FROM register ORDER BY id DESC : id를 기준으로 내림차순
  SELECT * FROM register ORDER BY id ASC : id를 기준으로 오름차순

==========================================================================

느낀점 : 중간에 오타때문에 속도 놓쳐서 식은땀 한바가지 흘렸는데

              쉬는시간에 혼자서 차근차근 해보니까 되네?!

==========================================================================

오늘의 결론

.

.

.

.

.

.

.

언제나 현재에 집중할수 있다면 행복할것이다. -파울로 코엘료

'JAVA' 카테고리의 다른 글

추씨의자바일기18편  (0) 2023.10.10
추씨의자바일기17편  (0) 2023.10.05
추씨의자바일기15편  (0) 2023.09.27
추씨의자바일기14편  (0) 2023.09.26
추씨의자바일기13편  (0) 2023.09.25