DB(DataBase)
데이터가 모여있는 저장소
데이터들을 통합하여 관리하는 집합체
DBMS(DataBase Management System)
데이터베이스를 관리하는 소프트웨어
MySQL 사용
DB-Engines
https://db-engines.com/en/ranking
MySQL 다운로드
https://dev.mysql.com/downloads/windows/installer/8.0.html
아래꺼 download > 설치파일 실행 > execute, next, finish 적절하게 클릭
> 비밀번호 : 1234, port : 3306, 비밀번호 형식(radio버튼 크게 두개) 나오면 아래꺼 클릭
DBMS를 사용하는 이유
중복된 데이터를 제거
자료를 구조화 시킬 수 있음
효율적인 처리
다양한 프로그램을 사용하는 사용자들과 데이터 공유
SQL(Structured Query Language)
관계형 데이터베이스에서 데이터들을 정의, 조작, 제어하기 위해 사용되는 언어
대소문자를 구별하지 않음
문자열을 저장할 때 '' 사용
주석은 # 으로 표현
한줄씩 실행
데이터 저장 구조
테이블 데이터들이 저장되는 공간
행 하나의 대상에 대한 데이터(레코드,row,튜플)
열 하나의 속성(컬럼, 필드, 어트리뷰트)
apple abcd1234 김사과 10
banana abcd1234 반하나 20
DML(Data Manipulation Language) - 데이터 조작어
데이터들을 추가, 수정, 삭제, 조회 하는 명령어들
INSERT, UPDATE, DELETE, SELECT
insert
insert into 테이블명 {(컬럼1, 컬럼2, ...)} values(값1, 값2, ...);
컬럼들을 써준 경우에는 뒤에 올 값으로 그 컬럼들에 들어갈 값들을 써준다.
컬럼의 개수와 자료형에 알맞게 순서대로 써주어야 한다.
insert into car (brand,price) values('Ferrari',65000);
컬럼을 생략한 경우에는 모든 컬럼에 값을 넣어주겠다는 뜻이다.
따라서 모든 컬럼에 들어갈 값들을 컬럼 순서대로 전부 작성해준다.
insert into car values('K7','White',7000);
select로 간단하게 구조 확인하기
select * from tb_user;
userpoint 컬럼 추가
alter table tb_user add (userpoint int default 0);
update
update 테이블명 set 컬럼명 = 새로운값 where 조건절;
조건이 없이 모든 행을 수정해야 한다면 조건절 생략 가능
update tb_user set userpoint = 1000;
safe 모드 해제 : edit - preferences - SQL Editor - 맨 아래의 Safe Updates 체크 해제 - 재실행
delete
delete from 테이블명 where 조건절;
delete from car where brand='Ferrari';
select * from car;
select
select 컬럼1, 컬럼2, ... from 테이블명 where 조건절;
select userid, username, userpoint from tb_user;
select userid, username, userphone, address1 from tb_user where useridx = 2;
부등호, 등호 사용 가능(관계연산자)
select username from tb_user where userpoint>1000;
논리연산자(and, or, not)
select username from tb_user where userid='apple' and userpw='1111';
정렬
order by 컬럼명 {정렬기준} : 컬럼을 기준으로 정렬(정렬기준 생략시 오름차순) - 정렬기준에 DESC를 작성시 내림차순
select * from tb_user order by userid desc;
select * from tb_user order by userpoint desc,userid desc;
그룹함수(집계함수)
- 여러 행의 데이터들을 종합적으로 확인 후 결과를 도출하는 수 / SUM(), AVG, MAX, MIN, COUNT()
select sum(userpoint) from tb_user;
select sum(userpoint) from tb_user where usergender='남자';
select sum(userpoint)from tb_user where usergender='남자' or usergender='여자';
group by
group by 컬럼, ... : 컬럼을 기준으로 그룹을 짓고 쿼리문 수행, 그룹함수가 적용될 파트를 나누는 문장
select usergender,sum(userpoint) from tb_user group by usergender;
별칭
컬럼명 별칭, 컬러명 AS 별칭 / from 테이블명 별칭
select userid 아이디,username 이름,zipcode 우편번호,address1 "도로명 주소",address2 as "상세 주소" from tb_user;
limit
select * from tb_user limit 2; 처음부터 2개
select * from tb_user limit 1,2; 1번째(2행) 부터 2개
Join
데이터베이스 내의 여러 테이블에서 가져온 레코드를 조합해서 하나의 테이블이나 결과 집합으로 표현
inner join : 조건이 일치하는것만 결과로 생성
outer join : 조건이 일치하지 않더라도 한쪽 테이블의 데이터는 모두 결과로 생성
(모두 데이터로 사용할 테이블의 방향을 적어준다)
'DBMS' 카테고리의 다른 글
[DBMS] AggregateFunction (0) | 2022.02.23 |
---|---|
[DBMS] Single-Row Function (0) | 2022.02.23 |
[DBMS] Transaction, Select (0) | 2022.02.22 |
[DBMS] DML (Data Manipulation Language) (0) | 2022.02.22 |
[DBMS] Database, DDL (0) | 2022.02.22 |