여러분은 지난 수업에서 SQL 설치를 MYSQL 워크벤치로 완료했을 것이다.
SQL에 들어가기 앞서 여러분께 사전지식을 알려드리려고한다.
먼저 데이터베이스라는 용어를 알아야한다. 데이터베이스는 데이터의 집합인데 규칙적으로 쉽게 접근하고 다루고 관리하도록 구성되어있다.그리고 그런 데이터베이스들은 테이블들로 이루어져있는데 서로 값들이 연관되어져있다. 여기서 테이블은 엑셀의 시트처럼 특정한 이용하기위해 필요한 공통의 데이터를 담고있고 표현하는 방식은 행과 열로 이루어져있다. 행은 각각 개인의 정보를 담고있고 열은 정보의 분류를 담고있다.
추후에 예시를 통해 알아보도록하자.

테이블을 나타낸것이다.

엑셀의 시트를 데이블로 예시를 든 모습
데이터베이스는 테이블들을 여러개 모아놓은 것이다.
SQL은 Structed query language의 약자이다. 그리고 SQL은 데이터베이스에 접근하고 다루기위해 만들어진 언어이다. DBMS는 데이터베이스를 관리 운영하는 역할을 한다.
그리고 우리가 사용한 MYSQL은 그런 SQL을 사용하도록 만들어진 프로그램이다
SQL은 데이터를 데이터베이스로 부터 가져오고 저장하고 수정하고 삭제하기 위해 사용한다.
데이터베이스는 데이터를 효율적이고 체계화하기 위해 여러 제약조건을 지정할 수 있다.
데이터의 무결성을 지키기 위한 제한된 조건이다.
데이터 입력시 조건에 만족할 수 있는 데이터를 입력할 수 있도록 제약한다.
쉽게 말해 데이터를 무조건 삽입 수정하는 게 아니라 조건을 만족시켜야지 명령을 수행한다.
프라이머리 키(기본키)는 그 데이터만의 고유한 속성을 이용해서 구분짓기 위한 키이다
- 각 행의 유일해야한다.
- 비어있는 값, 즉 널 값이면 안된다.
- 각 테이블은 프라이머리 키를 하나만 가지고 있다.

위의 예시는 뉴스기사를 데이터베이스에 저장시킨것이다.
잘보면 pr옆에 황금색 키가 있는데 이것이 primary key이다.
상황에 맞게 잘 써야하다.
뉴스기사번호는 다른값과 구분하기 위해서 고유하고 중복될 수 없으므로 위와 같이 primary key로 지정했다.
명령어는 2강을 본후 보기를 바란다.
create table [테이블명](
[칼럼 명] [데이터 타입] primary key [제약조건 추가]...,
....
)
테이블을 초기에 생성할때 primary key를 추가할때
Alter table [테이블 명] add primary key(칼럼 명)
Alter table [테이블 명] add constraint [기본키명] primary key(칼럼 명)
테이블 생성 후 alter로 primary key를 추가할때
이렇게 2가지 경우가 있다.
두 테이블 사이의 관계를 선언한다. 하나의 칼럼을 다른 테이블과 엮으므로써 의존하게된다.
데이터의 무결성을 보장한다.
명령어는 2강을 본후 보기를 바란다.
create table [테이블명](
[칼럼 명] [데이터 타입] [제약조건 추가]...,
....
foreign key(칼럼명) references 참조테이블(컬럼명)
);
테이블을 초기에 생성할때 foreign key를 추가할때
Alter table [테이블 명] add foreign key(칼럼 명) references [테이블명](칼럼 명)
테이블 생성 후 alter로 foreign key를 추가할때
이렇게 2가지 경우가 있다.
중복되지 않은 유일 한 값을 입력해야하는 조건이다.
primary key랑 비슷해 보이지 만 null값을 허용한다는 차이점이 있다.
명령어는 2강을 본후 보기를 바란다.
create table [테이블명](
[칼럼 명] [데이터 타입] unique [제약조건 추가]...,
....
)
테이블을 초기에 생성할때 unique key를 추가할때
Alter table [테이블 명] add unique key([칼럼 명])
테이블 생성 후 alter로 unique key를 추가할때
이렇게 2가지 경우가 있다.
여러개의 컬럼을 다중으로 unique key로 설정할때는
alter table [테이블 명] add unique key([칼럼 명],[칼럼 명],...)여러개의 칼럼이 pair로 묶여있어서 그 값이 모두 같은 경우 만 아니면 삽입이 허용된다.
입력되는 데이터를 점검하는 기능
예를 들어 음수 불허용, 이메일 확인 등등 이 있다.
create table [테이블명](
[칼럼 명] [데이터 타입] check([조건 절]) [제약조건 추가]...,
....
)
테이블을 초기에 생성할때 check를 추가할때
Alter table [테이블 명] add check([칼럼 명](조건 절))
테이블 생성 후 alter로 check를 추가할때
이렇게 2가지 경우가 있다.
create table [테이블명](
[칼럼 명] [데이터 타입] default '[값]' [제약조건 추가]...,
....
)
테이블을 초기에 생성할때 default를 추가할때
Alter table [테이블 명] alter column [칼럼 명] set default '[값]'
테이블 생성 후 alter로 default를 추가할때
이렇게 2가지 경우가 있다.