데이터베이스
여러 사람이 공용으로 사용하기 위해 통합하고 저장한 운영 데이터의 집합
데이터의 저장 공간 자체를 의미하기도 함
DBMS 특징
- 데이터의 무결성
- 데이터의 독립성 : 데이터 베이스와 응용 프로그램은 독립적 관계
- 보안
- 데이터 중복 최소화
- 응용프로그램 제작 및 수정 용이
- 데이터의 안전성 향상 : 복원 또는 복구 가능
DBMS의 분류
- 계층형 DBMS
- 1 : N
- 망형
- 1 : 1, 1 : N, N : M 지원
- 효과적이고 빠른 데이터 추출 가능
- 복잡한 내부 포인터
- 프로그래머가 모든 구조를 이해해야만 함
- 잘 안씀
- 시험 나옴
- 관계형
- 테이블 간 관계 > 기본키, 외래키를 사용하여 맺음(부모 자식 관계)
- 업무 변화에 띠리 바로 순응, 유지보수 측면에서 편리
- 시스템 자원 많이 차지 > 느려질 수 있음
SQL
데이터 베이스를 조작하는 언어
특징
DBMS 제작 회사와 독립적임
이식성이 좋음
표준이 계속 발전
대화식 언어
클라이언트/서버 구조 지원
MySQL
오픈소스로 제공
오라클에서 제작한 DBMS 소프트웨어
SELECT 문
SELECT … FROM
가장 많이 사용
기본적인 구문
SELECT FROM WHERE 세트
USE 구문
USE 데이터베이스_이름;
사용할 데이터베이스를 먼저 지정해야 함
더블클릭으로도 가능
- SHOW DATABASES;
- 현재 서버에 어떤 DB가 있는지 보기
- SHOW TABLES STATUS;
- 테이블정보 조회
- DESCRIBE employees;테이블의 열이 무엇이 있는지 확인
- DESC 테이블이름;
문제 생긴 DB 초기화하기
DROP DATABASE IP EXISTS sqlDB;
CREATE DATABASE sqlDB;
DB 파일 저장시 깨짐 방지
- CSV로 저장하고 메모장으로 열기 > 다른 이름으로 저장하고 ansi로 열면 됨
smallint는 2바이트
auto_incredment 자동으로 1씩 증가시켜줌
WHERE 절
- 집계함수를 사용할 수 없다
- (group by된 절들은 having 조건을 줘야한다)
or
and
조건연산자
관계연산자
select문
BETWEEN AND
IN( )
LIKE
% : 무엇이든 허용
_ : 한글자 허용
ANY : 서브 쿼리의 여러개 결과 중 하나만 만족해도 출력
ALL
SOME = any
서브쿼리문
서브쿼리먼저 실행해야 값을 비교할 수 있어서 메인퉈리 순서로 실행된다
any
# or랑 같음
select userid, name
from usertbl
where height > any (select height
from usertbl
where name = '김경호');
some
# or랑 같음
select userid, name
from usertbl
where height > some (select height
from usertbl
where name = '김경호');
# 두 개 같은 코드
select userid, name
from usertbl
where height = any (select height
from usertbl
where name = '김경호');
select userid, name
from usertbl
where height in (select height
from usertbl
where name = '김경호');
정렬
ORDER BY
기본적으로 오름차순
DISTINCT
LIMIT
GROUP BY : 집계함수류가 나오면 무조건 포함되어야하는 절, 그룹을 지어서 판단
(함수를 꼭 써야함)
집계함수
avg, max, min,count, count(distinct), stdev, var_samp
HAVING
WITH ROLLUP : 총합, 중간 집계
복사
create table 새로운 테이블 (select 복사할 열 from 기존테이블)
use sqldb;
drop table if exists buytbl_copy;
create table buytbl_copy(
select *
from buytbl
);
복시를 하더라도 PK, FK는 복사되지 않는다
- 다시 수정해서 재정의해줘야함
as : 컬럼명을 바꾸어서 출력
'데이터베이스' 카테고리의 다른 글
데이터 베이스 MySQL 3 (0) | 2024.02.03 |
---|---|
데이터 베이스 MySQL 2 (0) | 2024.02.03 |
MySQL로 배우는 데이터 베이스 개론과 실습 1장 연습문제 (0) | 2024.02.02 |