어리바리 신입 개발자의 얼렁뚱땅 개발 기록 ✨
23.05.08 / DBMS 본문
[ DBMS ]
1. 데이터베이스의 구축 절차
- 데이터 베이스 만들기
- 테이블 만들기
- 데이터 입력, 수정 ,삭제
- 데이터 조회, 활용
데이터베이스는 데이터를 저장하는 공간이고, 가장 먼저 데이터 베이스를 준비하고,
그 안에 테이블을 생성해야한다.
대용량의 데이터를 관리하며 여러 사용자가 동시 접속 및 공유하는 개념
데이터를 어떤 방법으로 저장하면 좋을까?
여러가지 이론이 제시, 데이터모델 종류 : 계층형, 망형, 관계형, 객체관계형 등
가장 많이 > 관계형 데이터 베이스
RDBMS
- 데이터가 테이블에 저장 (최소단위)
- 테이블은 하나 이상의 열과 행으로 이루어짐
**root 계정
모든 권한을 가지고 있는 관리자의 이름 root
root계정의 비밀번호가 유출 -> 모든 데이터가 유출
설치 후 폴더
bin(중요) : MySQL의 서버 프로그램, 클라이언트 프로그램 및 유틸리티 프로그램 파일
docs : 도움말 또는 설정 파일
etc : 설정 파일 샘플
include : 으용ㅇ 프로그램을 개발할 때 필요한 헤더 파일들
lib : MySQL과 관련된 라이브러리 파일
share : 기타 지원 파일, 각 언어 별 오류 메시지 파일 등
MySQL과 workbench의 관계
MySQL 서버를 설치.
서버는 지금 작동 중이지만 우리 눈에 안보임
서버를 사용하기 위해 서버에 접속해야한다.
이것을 도와주는 도구가 워크벤치
스토리지 엔진
스토리지 엔진은 DBMS의 데이터베이스에 데이터를 삽입, 수정, 삭제, 조회하는데 사용하는 기본 소프트웨어 콤포넌트다.
한 종류의 DBMS에 여러 스토리지 엔진이 존재할 수 있다.
MyISAM : MySQL의 5.5버전 이전까지 기본 스토리지 엔진이었음
Inno DB : 5.5번 이후부터 기본 스토리지 엔진
MySQL 환경 변수 설정 하기
C:\Program Files\MySQL\MySQL Server 8.0\bin 복사
윈도우 오른쪽마우스 - 윈도우즈파워쉘 관리자 -> cmd 입력 -> SETX PAHT " 경로;%PATH%" 입력
윈도우 -> cmd -> mysql -V
만약 안되면 내pc - 오른쪽 마우스 -속성 - 고급 시스템 설정 - 환경변수 - 시스템변수 - path 편집 - 새로만들기 - 경로복사
cmd -> mysql -u root -p -> admin123 -> SHOW DATABASES; (존재하는 데이터베이스 확인)
USE db이름; (데이터베이스 변경) -> SHOW TABLES; (존재하는 테이블 확인)
SELECT * FROM tb_member; (tb_member 테이블 조회)
SQL(Structured query language)
데이터베이스와 대화하기 위해 만들어진 언어
SQL은 데이터베이스와 통신하는 언어
어떻게 데이터베이스와 대화하는지 알아야 한다.
SQL 표준
- 어떤 특정한 회사에서 만들지 않는다.
- 국제 표준화 기구 -> 표준
단, DBMS를 만드는 회사가 다양하기 때문에 위의 표준을 전부 지킬 수 없다.
최대한 표준SQL을 준수하면서, 회사 별 특성을 반영한 SQL을 사용한다.
예시)
- MySQL : SQL
- Oracle : PL/SQL
- MS-SQL Server : T-SQL
도메인 : 성별 애트리뷰트 (속성) - 남 또는 여
릴레이션 스키마와 인스턴스
스키마 : RDBMS의 릴레이션이 어떻게 구성되는지, 어던 정보를 담고 있는지 기본적인 구조를 정의한다. 테이블에서 스키마는 테이블의 첫행(HEADER)에 나타나며,
속성과 자료타입에 대한 정보를 가지고 있다.
인스턴스 : 정의된 스키마에 따라 테이블에 실제로 저장하는 데이터의 집합
DDL : 데이터베이스를 구축하거나 수정하는 목적으로, 테이블이나 관계의 구조를 생성하는데 사용한다.
DML : 테이블의 데이터를 검색, 삽입 수정, 삭제 하는데 사용한다.
DCL : 데이터의 사용 권한을 관라하는데 사용
나중에 하는 평가 -----------------------------
**SQL 작성 시, 주의할 점
1. 가독성을 위해 들여쓰기를 반드시 준수
2. 작성 후, 세미콜론을 반드시 작성
1. 데이터 베이스 생성 / 언어설정
CREATE DATABASE ksmart47db_bisic DEFAULT CHARACTER SET utf8;
2. user 생성
CREATE USER 'ksmart47id_basic'@'%'identified BY'ksmart47pw';
% : 외부 접근 허용
이메일 : 내아이디@도메인
@ : 구분자
mysql 계정 형식 : user id + host
HOST : 네트워크에 연결되어 있는 컴퓨터
3. 사용자에게 권한 부여하기
GRANT ALL PRIVILEGES ON ksmart47db_basic.* TO 'ksmart47id_basic';
4. 변경된 내용을 메모리에 반영하기
FLUSH PRIVILEGES;
5, 테이블 생성
CREATE TABLE tb_user(
u_id VARCHAR(100) NOT NULL PRIMARY KEY COMMENT '사용자 아이디'
, u_pw VARCHAR(100) NOT NULL COMMENT '사용자 비밀번호'
, u_name VARCHAR(100) NOT NULL COMMENT '사용자 이름'
, u_birth DATE COMMENT '생일'
, u_addr VARCHAR(100) COMMENT '주소'
, u_mobile1 VARCHAR(100) COMMENT '연락처1'
, u_mobile2 VARCHAR(100) COMMENT '연락처2'
, u_date DATE COMMENT '가입일자'
);
5-1. 컬럼명 변경 (u_date에서 u_reg_date로) / DATE : 형식
ALTER TABLE tb_user CHANGE u_date u_reg_date DATE;
5-2. 컬럼위치 바꾸기 (u_mobile1을 u_mobile2 뒤로 위치를 바꾼다)
ALTER TABLE tb_user MODIFY u_mobile1 VARCHAR(100) AFTER u_mobile2;
5-3. 데이터 형식/자릿수 바꾸기 (u_nome의 형식을 char(50)으로 변경)
ALTER TABLE tb_user MODIFY u_name CHAR(50);
5-4. 컬럼 새로 생성 (u_birth 뒤에)
ALTER TABLE tb_user ADD COLUMN u_gen VARCHAR(100) AFTER u_birth;
5-5. 컬럼 삭제
ALTER TABLE tb_user DROP COLUMN u_gen;
5-6. 테이블 이름 변경 ( tb_user에서 tb_member로)
ALTER TABLE tb_user RENAME TO tb_member;
6. 생성한 테이블에 데이터를 삽입, 수정, 삭제, 조회
-- 데이터 삽입하기
INSERT INTO tb_member(
u_id,u_pw,u_name,u_birth,u_addr,u_mobile2,u_mobile1,u_reg_date
)
VALUES(
'id001','pw001','홍길동',NOW(),'덕진동','010','1234',NOW()
);
INSERT 주의 사항
- 테이블 이름 다음에 나오는 열 이름은 생략 가능 단, 생략하려면 VALUES 뒤에 나오는 값들과 순서, 개수가 테이블을 만들 때 지정한 값, 순서 개수와 동일해야 한다.
UPDATE tb_member
SET
u_name = '정공공'
WHERE
u_id = 'id001';
UPDETE 주의 사항
- where라는 구문이 없다면 테이블의 모든 행의 값이 변경된다. 명확한 조건을 명시하지 않으면, 테이블의 모든 이름이 정001로 변경
DELETE
FROM
tb_member
WHERE
u_id = 'id001';
*****UPDATE,DELETE 쿼리 실행 전, 반드시 SELECT로 변경할 데이터를 조회해서 확실하게 하고 진행한다
일부분 백업 테이블 만들기
CREATE TABLE tb_member_backup
(SELECT
u_id
, u_pw
, u_name
FROM
tb_member);
전체 테이블 백업
CREATE TABLE tb_member_backup_all
(SELECT
*
FROM
tb_member);
'Database > MYSQL' 카테고리의 다른 글
| 23.05.15 / 데이터 타입 (0) | 2023.05.15 |
|---|---|
| 23.05.09 / SELECT, WHERE AND/OR , BTEWEEN, LIKE, CASE (0) | 2023.05.09 |
| 23.04.04 / [select 쿼리 실행 - 리스트 출력] jsp - mysql 연결하기(JDBC) (0) | 2023.04.04 |
| 23.03.29 / [insert 쿼리 실행] jsp - mysql 연결하기(JDBC) , mysql 드라이버이해하기 (0) | 2023.03.29 |
| 23.03.29 / DBMS 구축 & DB 테이블 생성과 활용(insert,delete,update,select) (0) | 2023.03.29 |