728x90
데이터 파일 구조
- 레코드(Record): 서로 연관된 정보를 모은 단위
- 파일(File): 여러 개의 레코드로 구성됨
파일시스템 관리
데이터 파일은 운영체제의 파일 시스템을 통해 관리됨
중복 저장 문제:
동일한 정보가 응용 분야에 따라 여러 파일에 중복 저장되어 비효율적
데이터베이스 : 여러 사람에 의해 특정 분야에서 사용될 목적으로 통합하여 관리되는 데이터의 집합체
- 다수의 사용자가 사용하는 데이터들의 공유와 운영을 위해 저장해 놓은 공간으로 자료 항목의 중복성 제거
- 자료를 즈고화하여 저장함으로써 데이터 검색과 업데이트의 효율성을 높임
DBMS(데이터베이스 관리 시스템) : 데이터베이스를 직접 응용 프로그램들이 조작하는 것이 아니라 데이터베이스를 조작하는 별도의 소프트웨어를 의미, ex) MySQL
MySQL : 전 세계적으로 널리 사용되고 있는 관계형 데이터베이스 관리 시스템(RDBMS)
데이터의 기본 관리 단위는 테이블(Table)이고, 필드(Field 또는 Column)과 레코드(Record 또는 Row)로 구성
키(Key) : 데이터베이스에서는 데이터를 다른 데이터와 구분할 수 있는 고유 정보
주 키(Primary Key) : 테이블 하나 당 하나만 존재하며, 각각의 레코드를 구분해주는 값
- 학번, 사번, 주민등록번호 등 중복되지 않는 항목
- 단순히 데이터 구분을 위한 주 키의 경우 특별한 의미가 없는 중복되지 않고 순차적으로 증가하는 숫자 값을 키로 사용(예, 게시판)
SQL(Structured Query Language) : 데이터베이스의 데이터를 관리하기 위한 쿼리 언어
// MySQL에 생성되어 있는 데이터베이스 목록을 확인
show databases;
// 데이터베이스 목록에 있는 mysql 데이터베이스를 선택함
use mysql;
// mysql 데이테베이스에 존재하는 테이블 목록이 출력됨
show tables;
// mysql.db 테이블의 구조가 출력됨
desc db;
// MySQL을 종료함
exit
// 또는
\q
SQL 명령어 | 의미 |
CREATE | 새로운 데이터베이스를 생성 |
DROP | 생성되어 있는 데이터베이스를 삭제 |
USE | 데이터베이스 목록에서 특정 데이터베이스를 선 |
// 새로운 데이터베이스 생성 명령문
CREATE DATABASE 데이터베이스이름;
// 데이터베이스 목록에서 특정 데이터베이스를 삭제
DROP DATABASE 데이터베이스이름;
SQL 명령어 | 의미 |
CREATE | 새로운 테이블을 생성 |
DESC(DESCRIBE) | 테이블의 구조 확인 |
ALTER | 테이블의 구조 변경 |
RENAME | 테이블의 이름 변경 |
DROP | 테이블 삭제 |
// 새로운 테이블(member_tbl) 생성하기
CREATE TABLE member_tbl(
sno int,
name varchar(14),
address varchar(20),
PRIMARY KEY(sno)
);
// member_tbl의 (name 필드명 다음에) age 정수형 필드명을 추가하기
ALTER TABLE member_tbl ADD age int AFTER name;
// member_tbl에 존재하는 age 필드명을 삭제
ALTER TABLE member_tbl DROP age;
// 테이블의 이름 “member_tbl”을 “student_tbl”로 변경
ALTER TABLE member_tble RENAME student_tbl;
// student_tbl 테이블의 address 필드명을 dept 필드명으로 수정
ALTER TABLE student_tbl CHANGE address dept varchar(20);
// SQL 쿼리문에서 기존 테이블을 삭제
DROP TABLE student_tbl;
SQL 명령어 | 의미 |
INSERT | 데이터를 레코드 단위로 삽입 |
SELECT | 테이블에 존재하는 레코드 검색 |
UPDATE | 테이블에 존재하는 레코드 수정 |
DELETE | 테이블에 존재하는 레코드 삭제 |
// 레코드 등록
INSERT INTO student_tbl(sno, name, address) VALUES(203312345, ‘김태린’, ‘광고홍보학과');
// student_tbl에 등록된 전체 필드의 데이터를 조회
SELECT * FROM student_tbl;
// student_tbl 테이블에서 name 필드만 조회
SELECT name FROM student_tbl;
// student_tbl 테이블에서 sno 필드가 ‘203943218’ 인 학과와 이름을 조회
SELECT dept, name FROM student_tbl
WHERE sno = '203943218';
//student_tbl 테이블에서 ‘김’씨 성을 가진 데이터만 조회
SELECT sno, name, dept FROM student_tbl
WHERE name LIKE '김%';
// 오름차순 정렬
SELECT sno, name, dept FROM student_tbl
order by age;
// 내림차순 정렬
SELECT sno, name, dept FROM student_tbl
order by age desc;
// student_tbl 테이블에 등록된 데이터 중 ‘최고봉’의 dept를 ‘빅데이터분석학과’로 수정
UPDATE student_tbl SET dept = '빅데이터분석학과'
WHERE name = '최고봉';
// student_tbl 테이블에 존재하는 ‘최고봉’ 레코드를 삭제
DELETE FROM student_tbl
WHERE name = '최고봉';
// 기존 테이블에 존재하는 모든 레코드를 한꺼번에 삭제
DELETE FROM student_tbl;
728x90
'뒤끝 (Back-End)' 카테고리의 다른 글
[JSP] 세션 (0) | 2024.12.05 |
---|---|
[JSP] JDBC (0) | 2024.12.04 |
[JSP] 액션 태그 (0) | 2024.10.18 |
[JSP] request 내장 객체 (5) | 2024.10.16 |
[JSP] 폼 태그 (3) | 2024.10.14 |