본문 바로가기
AWS(산대특)

DAY 12 - MySQL

by dkdlxl 2024. 2. 5.

SQL
: 관계형 데이터베이스 관리 시스템에서 데이터를 관리하기 위해 사용되는 표준 언어
: 데이터베이스 스키마 생성 및 수정, 데이터 추가, 수정, 삭제 및 검색 등의 작업 수행 
: 명령어는 대소문자 구분이 없음,
: ;(세미콜론)을 찍어서 명령어 끝남을 알려줘야 함 

SQL 종류
DDL 
: 데이터 정의어 
: 데이터베이스, 테이블, 인덱스의 스키마를 생성, 변경, 삭제하는 역할\
: CREATE, ALTER, DROP

DML 
: 데이터 조작어 
: 테이블에 저장된 데이터를 실질적으로 처리
: SELECT, INSERT, UPDATE, DELETE
: 데이터의 구조에는 영향을 끼지치 않는다

DCL 
: 데이터베이스에 대한 접근을 관리
: 권한 회수, 부여하는 역할
: GRANT, REVOKE, COMMIT, (ROLLPREAT?)

SQL 장점
표준화 
직관적 : 배우기 쉬운 언어 
강력한 성능 

SQL 기초 - DDL 
CREATE
: 데이터베이스, 테이블, 인덱스를 생성 

DDL (데이터 정의어)
: 데이터베이스, 테이블, 인덱스, 사용자를 정의하는데 사용되는 언어

CREATE : 구조를 생성하는 명령어
CREATE 생성할구조 구조이름 [... 구조 정의]; 

데이터베이스 생성

CREATE DATABASE practice_sql;


특정 데이터베이스 사용 

USE practice_sql;


지정한 스크립트만 실행함 (세미콜론으로 찍은 그 단락만 실행시킴)

 

테이블 생성

CREATE TABLE example_table (
	-- VARCHAR(문자열길이) : 가변길이 문자열(문자를 몇자까지 적을지를 나타냄) / 인덱스 사용 가능 
	String_column VARCHAR(100), 
    -- TEXT : 장문의 문자열 / 인덱스 사용 불가능
	text_column TEXT,
    -- INT : 정수 
    int_column INT,
    -- DOUBLE : 실수
    double_column DOUBLE,
    -- FLOAT : 실수 
    float_column FLOAT,
    -- BOOLEAN : 논리형
    boolean_column BOOLEAN,
    -- DATE : 날짜 
    date_column DATE,
    -- DATETIME : 날짜 및 시간 
    datetime_column DATETIME
);

* boolean_column
: 논리형 형태로 저장하면 tinyint(0 또는 1)으로 저장됨 

 

사용자 생성 

: CREATE USER '사용자명'@'접속IP' IDENTIFIED BY '비밀번호';

CREATE USER 'developer'@'localhost' IDENTIFIED BY 'P!ssw0rd';

 

생성된 사용자 보기

use mysql;
SELECT * FROM user;

 

DROP 

: 데이터 구조를 삭제하는 명령어

 

테이블 삭제

DROP TABLE example_table;

 

데이터베이스 삭제

DROP TABLE example_table;

 

ALTER

: 데이터 구조를 변경하는 명령어 

 

테이블 컬럼 추가

ALTER TABLE example_table ADD added_column INT; # added_column 추가

 

테이블 컬럼 삭제

ALTER TABLE example_table DROP COLUMN added_column; # added_column 삭제

 

테이블 컬럼 타입 수정

ALTER TABLE example_table MODIFY COLUMN string_column VARCHAR(200); # 100 -> 200으로 변경

 

테이블 컬럼 이름 수정

ALTER TABLE example_table CHANGE string_column varchar_column VARCHAR(200); 
# string_column -> varchar_column으로 변경

 

* 관계 DBMS 객체 DBMS 차이점
: 객체지향에는 참조변수를 넣을 수 있기 때문에 하나의 컬럼에다가 여러개의 값을 넣을 수 있음
: 관계 데이터베이스는 하나의 컬럼에다가 한개의 값을 넣을 수 있음 

 

DML (데이터 조작어)

: 테이블에 데이터를 삽입, 조회, 수정, 삭제 할때 사용

INSERT : 테이블에 데이터를 삽입하는 명령어

 

1. 모든 열에 대하여 데이터 삽입

INSERT INTO 테이블명 VALUES (데이터1, 데이터2, ...);
INSERT INTO example_table 
VALUES ('문자열데이터', '텍스트데이터', 99, 3.14, 3.14, true, '2024-02-05', now());


2. 특정 열에 대하여 데이터 삽입 

NSERT INTO 테이블명 (컬럼명1, 컬럼명2, ...)
VALUSE (데이터1, 데이터2, ...);
INSERT INTO example_table (int_column, boolean_column) # 지정한 컬럼의 맞는 값을 넣어야 함 
VALUES (50, false);


SELECT : 테이블에서 데이터를 조회할 때 사용하는 명령어 
1. 모든 데이터 조회 

SELECT * FROM 테이블명
SELECT * FROM example_table;


2. 테이블의 특정 컬럼 데이터 조회

SELECT 컬럼명1, 컬럼명2, ...FROM 테이블명
SELECT int_column, text_column FROM example_table;


 3. 테이블에서 특정 조건에 따른 데이터 조회

SELECT 조회할컬럼... FROM 테이블명 WHERE 조건;
SELECT * FROM example_table WHERE int_column = 50;

 

* sql에서는 같다를 '=' 하나로 사용 

 

UPDATE : 테이블에서 데이터를 수정할 때 사용하는 명령어 

 UPDATE 테이블명 SET 컬럼1 = 데이터1, ...;
 UPDATE example_table SET boolean_column = false;
UPDATE 테이블명 SET 컬럼1 = 데이터1, ... WHERE 조건;
UPDATE example_table SET datetime_column = now() WHERE int_column = 50;


 DELETE : 테이블에서 데이터를 삭제할 때 사용하는 명령어

DELETE FROM 테이블명;
DELETE FROM example_table;
DELETE FROM 테이블명 WHERE 조건;
DELETE FROM example_table WHERE int_column = 50;

 

 TRUNCATE TABLE : DDL 테이블의 구조만 남기고 초기화

TRUNCATE TABLE example_table;

 

 

 

 

'AWS(산대특)' 카테고리의 다른 글

DAY 14 - MysQL  (0) 2024.02.07
DAY 13 - MySQL  (0) 2024.02.06
DAY 11 - GitHub  (0) 2024.02.01
DAY 9 - JAVA  (0) 2024.01.30
DAY 8 - JAVA  (0) 2024.01.29