SQL

2020-02-16

해당 Post는 SQL에 대해 정리한 파일입니다.


SQL(Structured Query Language)

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

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

SQL구성

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

실습

Database 생성하기

콘솔창에 입력

> mysql –uroot  -p 

root로 데이터베이스 관리 시스템에 접속한다는 뜻이며 -p에서 enter를 누르면 패스워드를 입력하라고 나타납니다.

> mysql> create database DB이름; 

DB생성하기를 하겠다는 뜻입니다. “DB이름”부분에 원하는 이름을 넣으면 됩니다.

Database 사용자 생성과 권한 주기

(참고. 해당 버젼은 MySQL 8.0버젼에서 사용하는 방법입니다. 버젼마다 상이할 수 있으니 확인 후 사용하시길 바랍니다.)

Database를 생성했다면, 해당 데이터베이스를 사용하는 계정을 생성해야 합니다.

또한, 해당 계정이 데이터베이스를 이용할 수 있는 권한을 줘야 합니다.

아래와 같은 명령을 이용해서 사용자 생성과 권한을 줄 수 있습니다.

> CREATE USER 'connectuser'@'%' IDENTIFIED BY 'connect123!@#';

@’%’는 어떤 클라이언트에서든 접근 가능하다는 의미이고, @’localhost’는 해당 컴퓨터에서만 접근 가능하다는 의미입니다.

> GRANT ALL ON connectdb.* TO 'connectuser'@'%';

db이름 뒤의 * 는 모든 권한을 의미합니다. 위 명령을 이용해서 권한을 주겠다는 뜻입니다.

> flush privileges;	

flush privileges는 DBMS에게 적용을 하라는 의미입니다.

해당 명령을 반드시 실행해줘야 합니다.

Git에서는 push와 같은 뜻이라 생각하시면 편합니다.

mysql –h호스트명 –uDB계정명 –p 데이터베이스이름

키워드는 대소문자를 구별하지 않습니다.

데이터를 저장하는 공간 테이블(Table)

테이블 : RDBMS의 기본적 저장구조 한 개 이상의 column과 0개 이상의 row로 구성합니다.

열(Column) : 테이블 상에서의 단일 종류의 데이터를 나타냄. 특정 데이터 타입 및 크기를 가지고 있습니다.

행(Row) : Column들의 값의 조합. 레코드라고 불림. 기본키(PK)에 의해 구분. 기본키는 중복을 허용하지 않으며 없어서는 안 됩니다.

Field : Row와 Column의 교차점으로 Field는 데이터를 포함할 수 있고 없을 때는 NULL 값을 가지고 있습니다.

for example

My Image

버젼을 확인하거나 다양한 수식들의 결과를 확인 할 수 있습니다.

My Image