본문 바로가기

IT/SQL

SQL 제약조건 Constraints - 체크 _ Check SQL 제약조건 중 CHECK는 특정 컬럼의 입력 가능한 값의 범위를 지정할 때 사용한다. 만약 어느 한 컬럼에 CHECK 제약조건을 설정한다면, 그 컬럼은 특정한 범위 안에서의 값만 허용한다. 만약 어느 한 테이블에 CHECK 제약조건을 설정한다면, 그 레코드의 다른 컬럼을 기반으로 특정 컬럼의 값을 제한할 수도 있다. ▼ 테이블을 생성할 때 CHECK 제약조건 생성하기 Age라는 컬럼에 18세 이상만 데이터를 넣을 수 있도록 하는 CHECK 제약조건을 가진 Customer라는 테이블을 만들어 보자. MySQL: CREATE TABLE Customer ( ID int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Age int, C.. 더보기
SQL 제약조건 Constraints - 외래키_Foreign key 외래키 (FOREIGN KEY)는 테이블 사이의 관련성이 파괴되는 것을 막기 위해 사용된다. 다시 말해서 어느 한 테이블의 외래키는 다른 테이블의 기본키가 된다. 외래키 (FOREIGN KEY)는 한 테이블에 필드 한 개 또는 그 이상이 될 수 있으며, 관련된 다른 테이블의 기본키(PRIMARY KEY)가 외래기로 지정될 수 있다. 외래키 (Foreign Key)를 가지고 있는 테이블을 자식 테이블 (child table)이라고 부르고, 기본키를 가지고 있는 테이블을 부모 테이블 (parent table)이라고 부른다. 아래 두 개의 테이블을 살펴보자. Customer Table customer_ID name age 1 최영은 31 2 김진수 26 3 강나은 40 Orders Table order_ID .. 더보기
SQL 제약조건 Constraints - Primary key PRIMARY KEY의 가장 큰 특징은 중복값을 갖지 않는다는 점이다. 물론 NULL 값도 갖지 않는다. 쉽게 말해서 테이블 안에 각각의 레코드가 담겨 있는데, 그 각 레코드를 특정하는 키 값을 Primary key라고 보면 된다. 더 쉽게 이야기를 해보자. 요즘에는 인터넷에서 개인 인증하는 방법으로 핸드폰 번호를 많이 이용한다. 11자리 핸드폰 자릿수가 모두 일치하는 사람은 없을 것이다. 대한민국 국민이라는 테이블에서 핸드폰 번호를 PRIMARY KEY로 써서 개인인증에 사용하는 것이다. 물론 실제로는 핸드폰번호, 이름, 생년월일, 성별을 PRIMARY KEY로 쓰고 있지만... PRIMARY KEY는 컬럼 하나로도 지정할 수 있지만, 여러개의 컬럼을 PRIMARY KEY로 설정하고 사용할 수도 있다... 더보기
[sql] 제약조건 constraints - NOT NULL 지금까지 데이터베이스를 만들고, 테이블을 만들고 수정하는 법을 알아봤으니, 이제부터 테이블이나 컬럼을 만들 때 붙는 제약조건들을 하나씩 살펴보도록 하겠다. SQL 제약조건은 테이블 안에 있는 데이터에 특정 규칙을 붙일 때 사용하면서 유용하게 쓸 수 있다. SQL 제약조건은 테이블을 만드는 식인 CREATE TABLE이나 테이블을 수정하는 ALTER TABLE식에서 주로 쓰이게 된다. CREATE TABLE 테이블_이름 ( 컬럼명1 데이터_타입 제약조건, 컬럼명2 데이터_타입 제약조건, 컬럼명3 데이터_타입 제약조건, ... ); 테이블을 만들 때를 예로 들어보면, 컬럼의 데이터 타입을 지정한 후에, 한 칸 띄우고 제약조건을 달게 된다. 어려울 것은 없고 제약조건은 최대한 정확한 정보를 넣기 위한 하나의 .. 더보기
[sql] alter table, 테이블의 컬럼명 변경하기 ALTER TABLE은 참 다양하게 쓰이는데, 지난 포스팅에서 컬럼 추가, 변경, 삭제하는 방법을 알아보았다. 이번에는 ALTER TABLE을 이용해서 컬럼명을 변경하는 방법을 알아보자. ALTER TABLE 테이블명 CHANGE COLUMN 기존_컬럼명 새_컬럼명 데이터_타입 [ FIRST | AFTER 지정_컬럼명 ]; ALTER TABLE 뒤에 변경할 컬럼이 있는 테이블 이름을 적는다. CHANGE COLUMN 뒤에 변경하고 싶은 기존 컬럼명을 적고, 한 칸 띄운 다음에 변경할 새 컬럼명을 넣어준다. 이어서 한 칸 띄어 쓰고 새로운 이름의 컬럼의 데이터 타입을 넣는다. 필요하다면 NOT NULL이나 default 값도 넣어준다. 만약 특정 컬럼 뒤에 오게 하고 싶다면 AFTER 뒤에 그 특정 컬럼명.. 더보기
[sql] alter table, 테이블의 컬럼 정보 수정 및 컬럼 삭제 SQL 테이블 수정 테이블을 수정할 때는 ALTER TABLE이라는 식을 사용한다. 테이블의 이름이나 테이블 안에 있는 여러 필드를 변경한다던지, 컬럼을 더하거나 삭제할 때도 유용하게 사용할 수 있다. ALTER TABLE은 사용 목적에 따라서 ADD, DROP, MODIFY 코멘드랑 항상 함께 쓰이는데 지금부터 하나씩 알아보도록 하자. 테이블에 컬럼 추가하기 - add ALTER TABLE 테이블 이름 ADD 추가할 컬럼명 데이터타입 [ FIRST | AFTER 컬럼명]; ALTER TABLE 뒤에 수정할 테이블 이름을 알려주고, 컬럼을 추가하겠다는 의미의 ADD를 넣어준다. 이어서 추가할 컬럼명과 그 컬럼의 데이터 타입을 넣어준다. 뒤이어 나오는 FIRST 또는 AFTER 코멘트는 옵션이므로 넣어도 .. 더보기
SQL 테이블 삭제하기, 데이터만 삭제하기 drop, delete, truncate SQL 테이블 삭제 DROP TABLE [테이블 이름]; DROP TABLE이라고 말하고 그 뒤에 삭제할 테이블 이름을 넣으면 된다. 예시로 Shippers라는 이름을 가진 테이블을 삭제해보도록 하자. > DROP TABLE Shippers; Query OK, 0 rows affected (0.347 sec) 성공적으로 테이블이 삭제되었다는 Query OK 메시지를 볼 수 있다. ** 테이블을 삭제하기 전에는 항상 조심하자! 테이블 삭제는 그 안에 있는 모든 데이터까지 함께 삭제된다. SQL 테이블은 그대로 두고 데이터만 삭제 위의 DROP TABLE은 데이터는 물론 테이블까지 삭제하는 방법이었다면, 이번에는 테이블은 그대로 두고 데이터만 전부 삭제하는 방법을 알아보자. 두 가지 방법이 있는데 둘에는 차.. 더보기
[SQL] 테이블 만들기-create table SQL 테이블 생성 테이블을 생성하는 방법 역시 간단하다. CREATE TABLE 테이블 이름 ( 컬럼1 데이터타입, 컬럼2 데이터타입, 컬럼3 데이터타입, ... ); CREATE TABLE이라고 말하고 그 뒤에 만들 테이블의 이름을 넣어준다. 괄호를 열고 테이블에 들어갈 컬럼과 그 컬럼의 타입을 기록한다. 컬럼 타입에는 int, varchar, date 등이 있다. 예시로 members라는 이름을 가진 테이블을 만들어 보도록 하자. > CREATE TABLE members ( memberID int, name varchar(255), address varchar(255), phone varchar(20) ); Query OK, 0 rows affected (0.075 sec) > > desc memb.. 더보기