Dev log - 53, 데이터베이스 #1

박강산·2022년 6월 21일
0
post-thumbnail

데이터베이스

  • 데이터베이스 : 데이터의 집합

  • DBMS(Database Management System) : 데이터베이스를 관리하고 운영하는 소프트웨어

관계형 데이터베이스

  • 대표적인 프로그램 : MySQL, 오라클(Oracle), SQL 서버, MariaDB 등

  • 테이블(table)이라는 최소 단위로 구성, 이 테이블은 하나 이상의 열(column)과 행(row)으로 이루어져 있고, 모든 데이터가 테이블에 저장됨

  • 테이블(table)은 클래스, 행(row, Record)는 인스턴스, 열(column, Field)은 속성

MySQL

환경 설정

  • 명령프롬프트 실행
  1. mysql -u root -p // 설정한 비밀번호 입력
  2. use mysql;
  3. select host, user from user;
  4. create user 'jv250'@localhost identified by 'jv250'; // jv250 호스트 생성
  5. select host, user from user; // 생성 확인
  6. create database jv250 default character set utf8; // jv250 생성
  7. show databases; // 생성 확인
  8. grant all privileges on jv250.* to 'jv250'@localhost with grant option; // 사용자 권한 설정
  9. flush privileges; // 변경 내용 적용
  10. 이클립스 / 프로젝트 pom.xml 선택 -> name 밑에 하단 태그 생성
  <dependencies>
  	<dependency>
  		<groupId>mysql</groupId>
  		<artifactId>mysql-connector-java</artifactId>
  		<version>8.0.29</version>
  	</dependency>
  </dependencies>
  1. windows / Show View / Data Source Explorer -> Database Connections 오른쪽 클릭 New
  2. MySQL 선택 후, 이름 변경 후 NEXT -> 이클립스 드라이버 가장 최신 선택 -> 기존 JAR 파일을 C:\Users\Administrator\.m2\repository\mysql\mysql-connector-java\8.0.29의 JAR 파일로 변경
  3. General 설정을 전부 jv250으로 변경(위에 설정한 대로)
  4. src/main/resources 오른쪽 클릭 -> New SQL File -> File name: jv250
  5. 작성 내용 드래그해서 Alt + X 로 실행 가능

SQL 문법

  • SQL(Structured query Language)
  1. DQL(Data query Language)
    SELECT

  2. DML(Data Manipulation Language)
    INSERT
    UPDATE
    DELETE

  3. DDL(Data Definition Language)
    CREATE
    ALTER
    DROP
    TRUNCATE
    RENAME

  4. DCL(Data Control Language)
    GRANT 권한부여
    REVOKE 권한해제

  5. TCL(Transaction Control Language)
    COMMIT
    ROLLBACK

  • 기본적으로 문자는 작은 따옴표로 표시 ('문자')
    (I'm OK) 라는 형식의 문자를 입력할 때는 작은 따옴표를 하나 더 붙임 (I''m OK)

회원정보 실습

  • Java의 Long 타입은 MySQL에서는 BIGINT

  • PRIMARY KEY 로 고유 아이디값 설정, AUTO_INCREMENT 로 자동으로 늘어남

  • 정보를 변경할 때는, UPDATE 사용, 반드시 WHERE을 사용해서 대상 지정 (없으면 전부 변경됨)
    UPDATE 테이블 SET ID=바꿀 값 WHERE ID=조건 값;

  • 정보를 삭제할 때는, DELETE 사용, 똑같이 WHERE 필수
    DELETE FROM 테이블 WHERE ID=삭제할 값;

  • 테이블을 삭제할 때는, DROP 사용
    DROP TABLE 테이블;

CREATE TABLE Customer (
	cid			BIGINT			PRIMARY KEY	AUTO_INCREMENT,
	name		VARCHAR(20)		NOT NULL,
	ssn			VARCHAR(14)		NOT NULL,
	phone		VARCHAR(14)		NOT NULL,
	customerId	VARCHAR(16)		NOT NULL,
	passwd		VARCHAR(16)		NOT NULL,
	regDate		TIMESTAMP		NOT NULL	DEFAULT CURRENT_TIMESTAMP
) AUTO_INCREMENT = 1001;

SELECT * FROM Customer;
INSERT INTO Customer (name, ssn, phone, customerId, passwd) VALUES ('유비', '970115-1234567', '010-4444-4444', 'asdf1234', 'qwer1234');
INSERT INTO Customer (name, ssn, phone, customerId, passwd) VALUES ('관우', '961025-7894561', '010-1234-5678', 'zxcv4567', 'tbgb1234');
INSERT INTO Customer (name, ssn, phone, customerId, passwd) VALUES ('장비', '960105-4561237', '010-9101-1213', 'vbnm1538', 'yjtrher1');

profile
안녕하세요. 맡은 업무를 확실하게 수행하는 웹 개발자가 되기 위하여 끊임없이 학습에 정진하겠습니다.

0개의 댓글

관련 채용 정보