[2022.10.06] DB와 DBMS, SQL

ITmakesmeSoft·2022년 10월 6일
0
post-thumbnail

Database

  • 여러 응용 프로그램들의 통합된 정보를 저장하여 운용할 수 있는 공용 데이터의 집합.
  • 도서관의 책들과 같은 존재

DBMS

  • Database Management System
  • 데이터베이스를 관리하는 소프트웨어
  • DDL(정의), DML(조작), DCL(제어) 기능
  • Oracle, SQL Server, MySQL, DB2 등

DBMS의 장/단점

장점

  • 데이터 중복이 최소화
  • 데이터의 일관성 및 무결성 유지
  • 데이터 보안 보장

단점

  • 운영비가 비싸다
  • 백업 및 복구에 대한 관리가 복잡
  • 부분적 데이터베이스 손실이 전체 시스템을 정지

SQL

  • 쿼리 : sql에게 명령할 때 사용하는 문장

    • 키워드는 대소문자를 구별하지 않는다
  • semicolon(;) : mysql은 문장의 끝을 라인으로 구분하는 것이 아닌, semicolon으로 구분. 따라서 여러장에 걸쳐 쿼리 작성 가능

  • create database <db 이름> : 데이터베이스 생성

  • grant all privileges on <db이름>.* to <계정이름>@'%' identified by <암호>; : "<db이름>의 모든 권한(*)을 <암호>로 인증된 <계정 이름>에게 부여한다"라는 의미

  • flush privileges : DBMS에게 적용하라는 의미

  • select : 내용을 조회할 때 사용하는 키워드

  • \c : 쿼리를 입력하다 중간에 취소해야 하는 경우 입력

  • show databases : 현재 로컬에 존재하는 데이터베이스 목록 조회

  • use <db명> : 사용중인 데이터베이스 전환(권한이 있어야 함)

  • QUIT /exit : MySQL 연결 종료


테이블(table)의 구성요소


이미지 출처 : 부스트코스

테이블(Table) : RDBMS의 기본적 저장구조. 한 개 이상의 Column과 0개 이상의 Row로 구성
열(Column) : 테이블 상에서 단일 종류의 데이터를 나타냄
행(Row) : Column들의 값의 조합. 레코드라고도 부름
필드(Field) : Row와 Column의 교차점으로 Field는 데이터를 포함할 수 있고 없을 때는 NULL 값을 가지고 있음

  • show tables; : 현재 데이터베이스 내 테이블을 보여줌
  • desc <table명> : describe의 약자로, 테이블의 구조를 보여줌
  • mysql -u<유저이름> -p <비밀번호> <db이름> < examples.sql : 현재 디렉토리에 위치한 examples.sql 파일을 읽고 db에 저장

DML(Data Manipulate Language)

SELECT(DISTINCT) 컬럼명(ALIAS) FROM 테이블명;

  • SELECT : 검색하고자 한느 데이터(컬럼) 나열
  • DISTINCT : 중복행을 제거
  • ALIAS(별칭) : 나타날 컬럼에 대한 다른 이름 부여
  • FROM : 선택한 컬럼이 있는 테이블을 명시
  • SELECT * : 모든 데이터를 검색
  • concat(문자열,문자열) : 문자열 결합
  • order by ~ : 조회 결과를 정렬
    • asc : 오름차순(기본값)
    • desc: 내림차순

DML(SELECT, INSERT, UPDATE, DELETE)

WHERE절

WHERE <연산자 값>

함수 사용

UPPER()/UCASE() : 대문자로 전환
LCASE()/LOWER() : 소문자로 전환
SUBSTRING(문자, 시작 인덱스, 표시할 글자 수) : 시작 인덱스부터 표시할 글자 수만큼 문자를 인덱싱해서 표시
LPAD('문자', 표시할 글자수 , 빈 공간을 채울 문자)/RPAD() : 문자를 표시할 글자 수만큼 표시하고, 빈 공간은 원하는 문자로 채우는 함수
TRIM, LTRIM, RTRIM :
MOD :
FLOOR(x) : x보다 크지 않은 가장 큰 정수를 반환 BIGINT로 자동 변환
CEILING(x) : x보다 작지 않은 가장 작은 정수를 반환
ROUND(x) : x에 가장 근접한 정수를 반환
POW(x,y)/POWER(x,y) : x의 y 제곱 승을 반환
GREATEST(x,y,...) : 가장 큰 값을 반환
LEAST(x,y,...) : 가장 작은 값을 반환
CURDATE()/CURRENT_DATE : 오늘 날짜를 YYYY-MM-DD나 YYYYMMDD 형식으로 반환
CURTIME()/CURRENT_TIME : 현재 시각을 HH:MM:SS나 HHMMSS 형식으로 반환
NOW()/SYSDATE()/CURRENT_TIMESTAMP : 현재 시각을 YYYY-MM-DD HH:MM:SS나 YYYYMMDDHHMMSS 형식으로 반환
DATE_FORMAT(date,format) : 입력된 date를 format 형식으로 반환
PERIOD_DIFF(p1,p2) : YYMM이나 YYYYMM으로 표기되는 p1과 p2의 차이 개월을 반환

profile
💎 Daniel LEE | SSAFY 8th

0개의 댓글