DBMS

[SQL] 설치, DML

shb 2022. 1. 20. 15:58

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