일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- HTML
- 웹페이지 만들기
- 기계학습
- 파이썬
- PHP 웹페이지 만들기
- hackerrank
- 드림핵
- Sookmyung Information Security Study
- SWEA
- CSS
- XSS Game
- The Loard of BOF
- 숙명여자대학교 정보보안 동아리
- Javascript
- c++
- C언어
- 숙명여자대학교 정보보안동아리
- siss
- 풀이
- lob
- c
- BOJ Python
- 생활코딩
- 머신러닝
- 자료구조 복습
- hackctf
- Python
- BOJ
- 백준
- WarGame
- Today
- Total
혜랑's STORY
[생활코딩] : MySQL 본문
# 공부할 때 사용한 자료
https://opentutorials.org/course/3161/19531
#MySQL 실행하기(MySQL 서버 접속)
cmd 창을 실행시킨 뒤, mysql.exe 파일이 들어있는 경로로 이동한다. 그 뒤, 다음과 같이 mysql -uroot -p를 입력하고 초기에 설정한 비밀번호를 입력하면 다음과 같이 실습을 진행할 환경이 모두 만들어 진 것이다.
# MySQL의 구조
# 스키마의 사용
- 스키마(schema)란?
스키마(schema)란, 데이터베이스에 저장되는 데이터 구조와 제약 조건을 정의한 것이다. 예를 들어 고객과 관련된 데이터인 고객번호, 이름, 나이, 주소를 저장한다고 가정햔다. 고객번호는 정수로, 이름은 최대 10자의 문자열로, 나이는 정수로, 주소는 최대 20자의 문자열만 허용하기로 했다면 이 모든 정해진 내용이 스키마다.
정의된 스키마에 따라 데이터베이스에 실제로 저장된 값은 인스턴스(instance)라고 한다.
- 데이터베이스 만들기
CREATE DATABASE opentutorials;
이 문법의 뜻은 'opentitorials'라는 이름의 데이터베이스를 만들어낸다는 뜻이다. 실제 실습한 결과는 이렇다.
- 데이터베이스 확인하기
SHOW DATABASES;
데이터베이스의 종류를 알아보기 위한 문법이다. 실제 실습한 결과 앞서 만들어 두었던 데이터베이스와 초기에 만들어져 있는 데이터베이스들이 존재하는 것을 확인할 수 있다.
- 데이터베이스 사용
USE opentutorials;
opentutorials라는 데이터베이스를 사용하겠다는 명령어이다. 실습 결과는 이렇다.
# SQL과 테이블 구조
- SQL(Structured Query Language)이란?
SQL이란, 관계 데이터베이스를 위한 표준 질의어로 많이 사용되는 언어이다. SQL은 기능에 따라 데이터 정의어(DDL), 데이터 조작어(DML), 데이터 제어(DCL)로 나뉜다.
- 데이터 정의어 : 테이블을 생성하고 변경, 제거하는 기능을 제공한다.
- 데이터 조작어 : 테이블에 새 데이터를 삽입하거나, 테이블에 저장된 데이터를 수정, 삭제, 검색하는 기능을 제공한다.
- 데이터 제어 : 보안을 위해 데이터에 대한 접근 및 사용 권한을 사용자별로 부여하거나 취소하는 기능을 제공하는 언어이다. 주로, 데이터베이스 관리자가 사용함.
- 테이블의 구조와 용어
# 테이블의 생성
- 실습을 통해 만들고자 하는 내용
- 테이블의 생성
CREATE TABLE 테이블_이름(
-> 속성_이름 데이터_타입 [NOT NULL] [DEFALUT 기본_값]
-> [PRIMARY KEY (속성_리스트)]
-> [UNIQUE (속성_리스트)]
-> [FOREIGN (속성_리스트) REFERENCES 테이블_이름(속성_리스트)] [ON DELETE 옵션] [ON UPDATE 옵션]
-> [CONSTRAINT 이름] [CHECK (조건)]
);
CREATE TABLE 문의 기본 형식에서 첫 번째 줄은 테이블을 구성하는 각 속성의 이름과 데이터 타입, 기본적인 제약 사항을 정의하는 것이다. 두 번째 줄은 기본키로 테이블에 하나만 존재할 수 있다. 세 번째 줄은 대체키로 테이블에서 여러 개 존재할 수 있다. 네 번째 줄은 외래키로 테이블에 여러개 존재할 수 있다. 다섯번째는 데이터 무결성을 위한 제약조건으로 테이블에 여러개 존재할 수 있다. 그리고 [ ]로 표시한 항목은 생략이 가능하다.
이를 생각하며 생활코딩의 실습을 따라해 보았다.
- 데이터 타입
테이블 생성에서 사용되는 데이터 타입에 대하여 더 자세한 내용을 정리해 보았다.
데이터 타입 | 의미 |
INT 또는 INTEGER | 정수 |
SMALLINT | INT보다 작은 정수 |
CHAR(n) 또는 CHARACTER(n) | 길이가 n인 고정 길이의 문자열 |
VARCHAR(n) 또는 CHARACTER VARYING(n) | 최대 길이가 n인 가변 길이의 문자열 |
NUMERIC(p, s) 또는 DECIMAL(p, s) | p는 소수점을 제외한 전체 숫자의 길이고, s는 소수점 이하 숫자의 길이 |
FLOAT(n) | 길이가 n인 부동 소수점 실수 |
REAL | 부동 소수점 실수 |
DATE | 연, 월, 일로 표현되는 날짜 |
TIME | 시, 분, 초로 표현되는 시간 |
DATETIME | 날짜와 시간 |
- 키의 정의
- 기본키(PRIMARY KEY) : 기본키가 없어도 테이블을 정의할 수 있지만 각 투플을 식별할 수 있는 기본키는 가능한 선택하는 것이 좋다.
- 대체키(UNIQUE) : 대체키는 기본키와 같이 각 투플을 유일하게 식병하는 특성이 있다. 기본키로 지정된 속성과 달리 널 값을 가질 수 있다.
- 외래키(FOREIGN KEY) : 외래키를 지정할 때는 어떤 테이블의 무슨 속성을 참조하는지 REFERENCES 키워드 다음에 명확히 제시해야 한다.
# CRUD
- CRUD는 대부분의 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능인 Createe(생성), Read(읽기), Update(갱신), Delete(삭제)를 묶어서 일컫는 말이다.
# INSERT
- 구조 확인하기
- 데이터 삽입
테이블에 투플을 직접 삽입하는 INSERT 문의 기본 형식은 다음과 같다.
INSERT INTO 테이블_이름[(속성_리스트)] VALUES (속성값_리스트);
따라서 다음과 같은 실습을 할 수 있다.
# SELECT
- 데이터 검색
기본 검색을 위한 SELECT 문의 기본 형식은 다음과 같다.
SELECT [ALL | DISTINCT] 속성_리스트 FROM 테이블_리스트;
이때, 테이블에 존재하는 모든 속성을 검색하기 위해 속성의 이름을 전부 나열하지 않고 *를 사용할 수 있다. 실습 결과는 다음과 같다.
조건을 만족하는 데이터만 검색하는 SELECT 문의 기본 형식은 다음과 같다.
SELECT [ALL | DISTINCT] 속성_리스트 FROM 테이블_리스트 [WHERE 조건];
WHERE 키워드와 함께 아래의 비교 연산자와 논리 연산자를 이용한 검색 조건을 제시함으로써 조건을 만족하는 데이터를 검색할 수 있다.
연산자 | 의미 |
= | 같다. |
<> | 다르다 |
< | 작다. |
> | 크다. |
<= | 작거나 같다. |
>= | 크거나 같다. |
연산자 | 의미 |
AND | 모든 조건을 만족해야 검색한다. |
OR | 여러 조건 중 한 가지만 만족해도 검색한다. |
NOT | 조건을 만족하지 않는 것만 검색한다. |
실습 결과는 다음과 같다.
- 데이터 정렬
SELECT [ALL | DISTINCT] 속성_리스트 FROM 테이블_리스트 [WHERE 조건] [ORDER BY 속성_리스트 [ASC | DESC]];
ORDER BY 키워드와 함께 정렬 기준이 되는 속성을 지정하고, 오름차순 정렬이면 ASC, 내림차순 정렬이면 DESC로 표현한다. 특별히 지정하지 않으면 오름차순으로 기본 정렬한다. 실습 결과는 다음과 같다.
# UPDATE
테이블에 저장된 데이터를 수정하기 위해 필요한 SQL 명령어는 UPDATE다. UPDATE 문의 기본 형식은 다음과 같다.
UPDATE 테이블_이름 SET 속성_이름1=값1, 속성_이름2=값2, ... [WHERE 조건];
실습 결과는 다음과 같다.
WHERE 절을 생략하면 테이블에 존재하는 모든 투플을 대상으로 하여 SET 절에서 지정한 대로 속성 값을 수정한다. 따라서 WHERE 문을 꼭 지정해 주어야 한다.
#DELETE
테이블에 저장된 데이터를 삭제하기 위해 필요한 DELETE 문의 기본 형식은 다음과 같다.
DELETE FROM 테이블_이름 [WHERE 조건];
DELETE 문은 WHERE 절에 제시한 조건을 만족하는 투플만 삭제한다. WHERE 절을 생략하면 테이블에 존재하는 모든 투플을 삭제하여 빈 테이블이 되어 버리니 주의하여야 한다. 실습 결과는 다음과 같다.
'2021 SISS 21기 활동 > 겨울방학 WEB Project' 카테고리의 다른 글
[개발] 글 삭제, 사진 첨부 기능 (1) | 2021.02.18 |
---|---|
[개발] 글 작성, 수정 기능 (0) | 2021.02.04 |
[개발] 기본 화면 만들기(HTML, CSS) (0) | 2021.02.04 |
[생활코딩] : PHP 강의 (0) | 2021.01.15 |