SQL이란?

김민석·2021년 2월 22일
0

웹 프로그래밍 - be

목록 보기
6/6

SQL(Structured Query Language)

SQL은 데이터를 보다 쉽게 검색하고 추가, 삭제, 수정 같은 조작을 할 수 있도록 고안된 컴퓨터 언어이다.

관계형 데이터베이스에서 데이터를 조작하고 쿼리하는 표준 수단이다.

SQL은 크게 DML(조작어), DDL(정의어), DCL(제어어)로 나뉜다.

  • DML (Data Manipulation Language): 데이터를 조작하기 위해 사용한다. INSERT, UPDATE, DELETE, SELECT 등이 여기에 해당한다.
  • DDL (Data Definition Language): 데이터베이스의 스키마를 정의하거나 조작하기 위해 사용한다. CREATE, DROP, ALTER 등이 여기에 해당한다.
  • DCL (Data Control Language) : 데이터를 제어하는 언어이다. 권한을 관리하고, 테이터의 보안, 무결성 등을 정의한다. GRANT, REVOKE 등이 여기에 해당한다.
  • Database 생성하기

    1. mysql -uroot -p 로 실행한다. MySQL 관리자 계정인 root로 데이터 베이스 관리 시스템에 접속하겠다는 의미이다.

    2. create database db이름 을 통해 데이터베이스 생성한다.

    1. 데이터베이스를 생성 했으면 해당 데이터베이스를 사용하는 계정을 생성해야 하고, 해당 계정이 데이터베이스를 사용할 수 있도록 권한을 부여해 줘야 한다.

    create user 계정이름@localhost identified by '암호' 를 통해 사용자를 추가할 수 있다.
    @localhost 대신 @'%' 를 통해 사용자를 추가한다면 외부에서의 접근을 허용하겠다는 의미이다.

    grant all privileges on db이름.테이블 to 계정이름@localhost를 통해 사용자에게 데이터베이스 사용 권한을 부여해 준다.
    마찬가지로 @localhost 대신 @'%' 를 통해 사용자를 추가한다면 외부에서의 접근을 허용하겠다는 의미이다.

    flush privileges 를 통해 위에서 변경된 내용을 적용하여야 한다.

    3번 참고:https://jiwontip.tistory.com/62

    1. quit이나 exit 를 통해 MySQL 연결을 끊을 수 있다.
    1. -uroot에서 show database를 통해 존재하는 데이터베이스 확인할 수 있다.

    2. use db이름 을 통해 사용할 db를 전환할 수 있다.

    Table

    테이블은 데이터를 저장하는 공간으로 SQL을 통해 생성및 접근, 저장이 가능하다.

    테이블 구성 요소

  • 테이블 : RDBMS의 기본적 저장구조 한 개 이상의 column과 0개 이상의 row로 구성된다.
  • 열(Column) : 테이블 상에서의 단일 종류의 데이터를 나타낸다. 특정 데이터 타입 및 크기를 가지고 있다.
  • 행(Row) : Column들의 값의 조합으로 레코드라고 불린다. 기본키(PK)에 의해 구분된다. 기본키는 중복을 허용하지 않으며 없어서는 안된다.
  • Field : Row와 Column의 교차점으로 Field는 데이터를 포함할 수 있고 없을 때는 NULL 값을 가지고 있다.
  • 예제
    (이미 생성되어 있는 sql 파일을 통해 간단한 명령어만 실험 해 볼 것이다. sql파일에는 연습을 위한 테이블 생성과 데이터 삽입에 관련된 쿼리문이 들어 있다.)

    1. sql이 있는 폴더로 가서 만들어 두었던 db에 sql을 적용한다.

    2. db에 접속한다.

    3. show tables 를 통해 존재하는 table들을 볼 수 있다.

    4. desc 테이블이름 으로 테이블의 구조를 볼 수 있다.
      (describe 테이블 이름 으로도 가능)

    출처 : 부스트코스 웹 프로그래밍(백엔드)
    https://www.boostcourse.org/web326/lecture/258481

    profile
    김민석의 학습 정리 블로그

    0개의 댓글