MySQL 기본 SQL ( Table )
SQL( Structured Query Language , 구조화 질의어 )
SQL은 관계형 데이터베이스 관리 시스템( RDBMS )의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어이다.
관계형 데이터베이스 관리 시스템에서 자료의 검색과 관리, 데이터베이스 스키마 생성과 수정, 데이터베이스의 객체
접근 조정 관리를 위해 고안 되었다.
데이터베이스 언어 SQL 문법의 종류는 3가지로 구분된다.
ㆍ데이터 정의 언어 ( DDL : Data Definition Language )
ㆍ데이터 조작 언어 ( DML : Data Manipulation Language )
ㆍ데이터 제어 언어 ( DCL : Data Control Language )
【 데이터 정의 언어 : DDL 】
실제 데이터를 조작하지 않고, 정의할때 사용한다. Database관련 주요 SQL이 포함되어있다.
기본적인 DDL
ㆍCREATE ( 데이터베이스 개체 ( 테이블, 인덱스, 조건 등 )의 정의 ,생성 )
ㆍDROP ( 데이터 베이스 객체 삭제 )
ㆍALTER ( 데이터 베이스 개체 변경 )
【 데이터 정의 언어 : DML 】
실제 데이터를 조작할때 사용 Table 관련 주요SQL 포함되어 있다.
기본적인 DML
ㆍSELECT ~ FROM ~ WHERE ( 테이블 데이터 선택 및 검색결과 조회 )
ㆍINSERT INTO ( 행 데이터 또는 테이블 데이터의 삽입 )
ㆍUPDATE ~ SET ( 테이블 내용 업데이트 )
ㆍDELETE ~ FROM ( 테이블에서 특정 행 삭제 )
【 데이터 정의 언어 : DCL 】
권한 부여, 박탈, 연결 등 데이터 동기화나 데이터를 다룰때 사용한다.
기본적인 DCL
ㆍGRANT ( 특정 데이터베이스 사용자들에게 특정 작업에 대한 권한을 부여 )
ㆍREVOKE ( 특정 데이터베이스 사용자들로부터 부여해준 권한을 박탈 )
ㆍSET TRANSACTION ( 트랙잭션 모드 설정 )
ㆍBEGIN ( 트랙잭션 시작 )
ㆍROLLBACK (트랜잭션 취소 )
SQL에는 많은 명령어가 있다. 그 중 SELECT문은 ' 데이터를 선택 ' 하는 명령어로, SQL에서 가장 많이 사용하는 키워드 이다.
SELECT 명령은 아무리 사용해도 데이터가 훼손되거나 변경될 염려가 없으므로 , 데이터베이스를 처음 접하는 단계에서는
SQL에 익숙해 지기 위해서라고 SELECT를 자주 접해보는게 좋다.
【 테이블 생성 】
테이블을 만들떄에는 CREATE TABLE이라는 명령을 사용한다. 괄호 ( )안에 칼럼 이름과 자료형을 입력한다. 칼럼 이름과
자료형 사이에는 공백을 두어 구분하고, 칼럼과 칼럼 사이에는 반점( , )을 사용해서 구분한다.
Query > CREATE TABLE 테이블_이름 (칼럼_이름1 자료형1, 칼럼_이름2 자료형2, ...);

↑ 테이블을 생성할 데이터 베이스를 선택해야 한다.

↑ Hogwarts라는 테이블을 생성했다. 컬럼은 no, student, age를 생성했고 각각 int, text, int 타입으로 설정했다.
# 'Query OK'라는 문구가 나와야 성공적으로 생성된것이다.
# 오류가 발생했다면 입력 오류나 마지막에 쎄미콜론( ; )을 확인
숫자 자료형의 종류
자료형 |
의미 |
대응하는 범위 |
INT |
오른쪽 범위 안에 있는 정수 |
-2147483648 ~ 2147483647 |
TINYINT |
매우 작은 정수 |
-128 ~ 127 |
SMALLINT |
작은 정수 |
-32768 ~ 32767 |
MEDIUMINT |
중간 크기의 전수 |
-8388608 ~ 8388607 |
BIGINT |
큰 정수 |
-9223372036845775808 ~ 9223372036854775807 |
FLOAT |
단정도 부동소수점 수 |
-3.402823466E+38 ~ -1.175494351E-38 |
DOUBLE |
배정도 부동소수점 수 |
-2.2250738585072014E-308 ~ 1.7976931348623157E+308 |
DECIMAL | 고정소수점의 수 | 최대 자릿수, 소수점이하 자릿수 형식으로 최대자릿수는 65 까지이며, 소수점 이하 자릿수는 30까지 지정할 수 있다. 오차는 발생하지 않는다. |
문자 자료형의 종류
자료형 |
의미 |
대응하는 범위 |
CHAR |
고정형 문자열 |
255자까지 |
VARCHAR |
가변형 문자열 |
1 ~ 65532바이트, 문자수의 상한은 이용하는 문자 코드에 따라 다르다. |
TEXT |
긴 문자열 |
65535자 까지 |
LONGTEXT |
매우 긴 문자열 |
4294967295자 까지 |
# char 와 varchar의 차이점(클릭)
【 모든 테이블 표시 】
MySQL에서 데이터베이스의 정보를 표시할때, SHOW 명령을 사용한다.

【 테이블 컬럼 구조 확인 】

【 테이블 삭제 】
Query > DROP TABLE 테이블_이름;
【 테이블에 데이터 추가 .1 】
Query > INSERT INTO 테이블_이름 VALUES( 데이터1, 데이터2, ... );
컬럼을 정해주지 않으면 순서대로 들어간다. 단, 컬럼 갯수에 맞게 VALUES값을 넣어야 한다.

↑ VALUES값에 입력한 순서대로 컬럼에 들어갔다.
【 테이블에 데이터 추가 .2 】
Query > INSERT INTO 테이블_이름( 컬럼_이름1, 컬럼_이름2,.... ) VALUES( 데이터1,데이터2,...);
컬럼을 지정해서 컬럼에 맞는 테이터를 넣을 수 있다.

↑ 컬럼을 지정해서 값을 넣을 수 있다. 이때 지정한 컬럼의 갯수와 데이터의 값의 갯수가 같아야 한다.
【 테이블에 데이터 추가 .3 】
Query > INSERT INTO 테이블_이름 ( 컬럼_이름1, 컬럼_이름2,.. ) VALUES ( 데이터1, 데이터2,... ),(데이터1,데이터2,...)
컬럼의 지정해 해당컬럼에 여러개의 데이터를 넣을 수 있다.
↑ VALUES뒤에 값을 이어서 넣을 수 있다.
【 데이터 표시 】
Query > SELECT 컬럼_이름1,컬럼_이름2,... FROM 테이블_이름;
모든 컬럼이라는 의미의 별표( * )를 이용해 모든 데이터를 표시할 수 도 있다.
↑ SELECT 를 이용해 원하는 컬럼의 데이터를 조회할 수 있다.
↑모든 컬럼을을 의미하는 * 을 이용해서 모든 컬럼데이터를 조회할 수 있다.
【 컬럼 구조 변경 】
컬럼 구조를 변경할 때 ALTER TABLE 명령을 사용한다. 변경내용에 따라 MODIFY,ADD,CHANGE,DROP을 함께 사용한다.
ㆍ컬럼의 정의를 변경할때 : ALTER TABLE ... MODIFY ...
ㆍ컬럼을 추가할때 : ALTER TABLE ... ADD ...
ㆍ컬럼의 이름과 타입를 변경할 때 : ALTER TABLE ... CHANGE ...
ㆍ컬럼을 삭제할 때 : ALTER TABLE ... DROP ...
【 컬럼 구조 변경.1 - 컬럼의 자료형 변경 】
Query > ALTER TABLE 테이블_이름 MODIFY 컬럼_이름 자료형;

↑컬럼의 타입을 변경할 수 있다.
【 컬럼 구조 변경.2 - 컬럼 추가 】
Query > ALTER TABLE 테이블_이름 ADD 칼럼_이름 자료형;

↑테이블 맨 아래로 컬럼을 추가시킬 수 있다.
【 컬럼 구조 변경.3 - 컬럼 이름, 타입 변경 】
Query > ALTER TABLE 테이블_이름 CHANGE 변경_전_컬럼_이름 변경_후_컬럼_이름 변경_후_자료형;

↑컬럼의 이름과, 타입을 변경할 수 있다.
# 타입을 변경하고 싶지 않을때 타입은 전과 동일하게 작성하면 된다.
【 컬럼 구조 변경.4 - 컬럼 삭제 】
SQL에서는 컬럼뿐만 아니라 데이터 베이스나 테이블 등을 삭제할 떄, DROP을 사용한다. DROP을 이용한 조건으로 컬럼을
삭제할 수 있지만 조건이 중복 된다면 삭제하기 까다롭다. 이때 ALTER와 함께 사용한다.
Query > ALTER TABLE 테이블_이름 DROP 컬럼_이름

↑ALTER을 이용해 컬럼을 삭제할 수 있다.