SQL - 1

더키·2022년 4월 5일
0

SQL

목록 보기
1/1
post-thumbnail

파이썬 교육이 끝나고 이젠 데이터베이스를 다루는 SQL 교육이 시작되었다. 이번에는 SQL에 대해서 써보려고 한다.

SQL(Structured Querry Language)

SQL는 구조적 질의 언어라고도 불리며, 데이터베이스 시스템에서 자료 처리를 위해 사용되는 언어이다. 1970년대 초에 IBM에서 근무하던 도널드 챔벌린과 레이먼드 보이스가 처음 개발하였다고 한다. SQL은 1986년에서야 비로소 ANSI에 의해서 최초로 표준화가 되어 SQL-86이라는 명칭을 갖게 된다. SQL에서 일반적으로 사용되는 데이터베이스는 테이블 형태의 관계형 데이터베이스 (RDBMS)이다.

그중에서 우리는 Oracle사에서 제공하는 MySQL이라는 무료 소프트웨어를 사용하게 되었다.

SQL의 종류

SQL에는 크게 네 종류가 있다.

1. 데이터 정의어 (DLL, Data Definition Language) - 테이블, 뷰 등의 데이터베이스 객체 생성

2. 데이터 조작어 (DML, Data Manipulation Language) - 테이블 데이터를 조회, 입력, 수정, 삭제

3. 데이터 제어어 (DCL, Data Control Language) - 트랜잭션 처리

4. 트랜잭션 제어어 (TCL, Transaction Control Language) - 권한 부여 및 회수

그럼 먼저 데이터 정의어와 데이터 조작어에 대해서 알아보자.

데이터 정의어

CREATE - 데이터베이스 객체 생성
ALTER - 기존 객체 수정
DROP - 기존 객체 삭제
TRUNCATE TABLE - 테이블의 전체 데이터 삭제
RENAME TABLE - 테이블의 이름 변경

데이터 조작어

SELECT - 테이블 내에 존재하는 데이터 조회
INSERT - 테이블에 신규 데이터 입력
UPDATE - 테이블 내에 있는 데이터 수정
DELETE - 테이블 내에 있는 데이터 삭제

MySQL 설치 및 설정

SQL을 Workbench로 설치하고 계정을 생성, 그리고 연습을 위한 파일 또한 받아두었다.

SQL 화면
설치가 끝나고 Schemas Tab을 누르면 이러한 창이 뜬다.

수업에서 배운 것들을 연습해 보았다.

CREATE DATABASE mywork;
DROP DATABASE IF EXISTS mywork;

USE mywork;
CREATE TABLE students (
    student_no VARCHAR(20) NOT NULL PRIMARY KEY,
    student_name VARCHAR(20) NOT NULL,
    grade TINYINT,
    class VARCHAR(20),
    age SMALLINT
    );

DESC students;

데이터베이스 &

CREATE를 이용해 데이터베이스(스키마)와 테이블을 생성. 그리고 테이블 안에 Column을 만들어주었다. 사실 대문자로 쓰여진 SQL은 대/소문자를 구분하지 않기 때문에 소문자로 쓰여도 된다. 하지만, 가독성을 위해서 대문자로 해보았다.

중요한 것은 명령을 끝낸 후에는 ; 를 이용해 명령이 끝났음을 알려주어야한다. 그렇지 않으면 다음 명령과 충돌하며 오류가 발생한다.

SQL의 선언한 변수들중 VARCHAR()은 20바이트의 공간이 배정되었지만, 사실상 이름을 채우고 남은 공간은 다시 반환된다. 학생 이름, 학년, 반, 나이가 같은 경우를 고려해 유일하게 다를 수 있는 PRIMARY KEY로 학번을 지정해주었다.
여기서 NOT NULL이라는 값은 절대로 비워서는 안되는 값이다.

기본키(PRIMARY KEY)

기본키는 모든 값들이 같을 때, 유일하게 구분해줄 수 있는 값을 말한다. 기본키는 테이블에 하나만 가질 수 있으며, Column과 Column을 조합해 만들 수도 있다. 예를 들면 학번, 사원번호 등이 있다.

그리고 마지막으로 테이블이 잘 생성되었는지 DESC 라는 함수로 확인해보았다. 잘 만들어져있다.

이번에는 만들어진 테이블에 값을 넣어보았다.

DESC students;

INSERT INTO `students` VALUES (0001,'김철수', 3, '3반', 19),
                              (0002,'이영희', 3, '5반', 19),
                              (0003,'정판사', 3, '1반', 19);
                              
SELECT * FROM students;

학생의 정보를 집어 넣고, SELECT를 이용해 테이블을 출력해보았다. 잘 들어간 것을 확인할 수 있다. SELECT는 파이썬에서의 PRINT의 역할을 한다. 간략하게 배워보았던 SQL이다.

이번 시간은 정보처리기능사 시험을 준비하며 보았던 Database 언어들이 눈에 띄었고, 쉽게 따라갈 수 있었던 것 같다. 또 어떤 함수를 이용해 응용을 할 수 있을지 기대가 된다.

profile
메디컬 딥러닝 엔지니어

0개의 댓글