SQL이란?

ybong·2022년 2월 8일
0

SQL이란?

  • DBMS에 명령을 내리는 명령을 SQL이라고 한다.
  • 관계형 데이터베이스 (RDBMS)에서 데이터를 조작하고 쿼리하는 표준 수단이다.
  • (Structured Query Language)

명령어 구성

  • DML (Manipulation) - 데이터를 조작
    • INSERT, UPDATE, DELETE, SELECT
  • DDL (Definition) - DB의 스키마 정의, 조작
    • CREATE, DROP, ALTER
  • DCL (Control) - 데이터를 제어, 권한관리
    • GRANT, REVOKE

Database 생성하기 (MySQL5.7ver)

DBMS 접속

  • mysql -uroot -p
    • MySQL 관리자 계정인 root로 DBMS에 접속하겠다는 뜻
    • -uroot: user가 root다
    • -p: password 옵션
      • 맥은 암호 없으니 그냥 엔터치면 된다.
    • 그럼 이제 mysql> 프롬프트가 보인다!

Database 생성

  • 관리자 계정으로 MySQL에 접속했다면, 아래 명령으로 데이터베이스를 생성한다.
    • mysql> create database [DB이름]; (mysql>은 프롬프트, ;주의!)
      • DB이름: connectdb

Database 사용자 생성과 권한 주기

  • 데이터베이스를 사용하는 계정을 생성하고, 테이터베이스를 이용할 수 있는 권한을 줘야 한다.
    • grant all privileges on [DB이름].* to [계정이름]@'%' identified by '[암호]';
      • [DB이름].* : DB의 모든 권한을 의미한다.
      • [계정이름]@’[범위제한]’
        • % : 모든 것을 의미, 모든 클라이언트(호스트)가 접근 가능하다.
    • grant all privileges on [DB이름].* to 계정이름@'localhost' identified by '암호';
      • localhost에서만 접근할 수 있다는 뜻
    • flush privileges
      • DBMS에게 적용하라는 의미. 해당 명령을 반드시 실행해줘야 적용이 된다.
  • 계정이름 connectuser
  • 암호 connect123!@#

생성한 Database에 접속하기

  • mysql -h[호스트명] -u[DB계정명] -p [DB이름]
    • ex) mysql -h127.0.0.1 -uconnectuser -p connectdb

MySQL 연결 끊기

  • exit
  • quit
  • 둘 다 가능

MySQL 사용 (query예제)

여러 규칙들

  • 모든 쿼리는 ; 로 끝난다
  • 쿼리의 대소문자 구분 안해도 된다
  • 한 줄에 여러 쿼리 ; 로 이어서 사용 가능
    • ex) select version(); select now();
  • 하나의 쿼리 여러 줄에 거쳐 입력받아 쓸 수도 있다. (개행 개행)
  • 입력하다 취소 - \c 입력

MySQL 버전과 현재 날짜 조회하기

  • mysql> SELECT VERSION(), CURRENT_DATE;

  • 맨 마지막에는 전체 row 수와 쿼리 실행에 소요된 시간을 표시

DBMS에 존재하는 데이터베이스 확인하기

  • mysql> show databases;

사용중인 데이터베이스 전환하기

  • mysql> use [DB이름];
    • 이미 존재하는 DB여야하며, 접속계정이 DB접근권한이 있어야한다.

테이블 조회

  • mysql> show tables;
  • 현재 데이터베이스는 테이블 만들지 않았으므로 empty set이 나옴

테이블 생성 및 값 저장

  • sql파일로 쿼리 넣을 때 리다이렉션으로 넣어줄 수 있다
  • mysql -uconnectuser -p connectdb < examples.sql

예제

  • mysql> show tables;
  • mysql> desc [테이블명]; - describe
profile
study blog

0개의 댓글