관계형 데이터베이스(3)

minah moon·2023년 8월 29일

PHP

목록 보기
43/58
post-thumbnail

앨리어스

테이블 앨리어스는 테이블 이름에 대한 약어와 같으며 쿼리의 텍스트 양을 줄여준다.

테이블 앨리어스는 FROM 또는 JOIN 명령 다음에 생성된다. 그러면 쿼리에서 전체 테이블 이름 대신에 앨리어스를 사용할 수 있다.

SELECT t1.column1, t1.column2, t2.column3
FROM table1 AS t1
JOIN table2 AS t2 ON t1.column4 = t2.column1;

열 앨리어스는 결과 세트의 열 이름을 변경할 수 있게 해준다. 또한 COUNT() 함수의 결과를 담은 열의 이름도 지정할 수 있다.

SELECT column1 AS newname1
FROM table;
SELECT COUNT(*) AS members
FROM members;

CONCAT()

CONCAT()는 두 개 이상의 열에서 값을 가져와 결과 세트의 단일 열로 값을 결합(또는 연결)하는 데 사용된다.

만일 한 열의 값이 NULL이면, 다른 열의 값도 NULL로 처리된다.

SELECT CONCAT(column1, ' ', column2) AS newname
FROM table;

COALESCE()

만약에 열의 값이 NULL이 될 수 있다는 것을 알고 있다면 COALESCE() 함수를 사용하여 다음을 나타낼 수 있다.

  • 그 자리에 값을 사용할 수 있는 다른 열의 이름(이 값이 NULL이 아니면, 대신 사용될 것이다)

  • 지정된 열에 NULL 값이 있을 경우에 사용될 디폴트값

행이 결과 세트에 추가될 때 첫 번째 열의 값이 NULL이라면 두 번째 열의 값을 확인한다. 만약에 대체 열도 NULL이라면 디폴트값이 사용될 것이다.

SELECT COALESCE(column1, column2, default) AS newname 
FROM table;

INSERT INTO

INSERT INTO 명령은 단일 테이블에 데이터를 추가한다.

INSERT INTO table (column1, column2)
VALUES ('value1', 'value2');

UPDATE

UPDATE 명령은 데이터베이스에 있는 데이터를 업데이트하고 싶다고 데이터베이스에 알려준다.

SET 명령을 사용하여 업데이트하려는 열과 해당 열에 대한 새로운 값을 지정한다.

UPDATE table
SET column1 = 'value1', column2 = 'value2'
WHERE column = 'value';

DELETE

DELETE 명령은 테이블에서 하나 이상의 행을 삭제한다.

DELETE FROM table
WHERE column = 'value';

DELETE 명령을 사용하여 데이터베이스의 개별 열의 값을 삭제할 순 없다. 대신에 UPDATE를 사용하여 해당 열의 값을 NULL로 설정해야 한다.


고유성 제약

열의 값이 고유해야 하는데 해당 열에 동일한 값을 가진 행이 있다면, 이를 중복 항목duplicate entry이라고 부른다.

데이터베이스의 행이 어떤 열에서 동일한 값을 갖지 못하도록 하려면, MySQL은 고유성 제약uniqueness constraint을 적용하도록 지시할 수 있다(이것은 고유성을 보장하기 위해 해당 열에서 허용되는 값을 제약하기 때문에 고유성 제약이라 부른다).

고유성 제약은 데이터가 추가되거나 기존 데이터가 업데이트될 때마다 값이 이미 존재하지 않는지 확인하기 위해 다른 모든 행의 해당 열을 데이터베이스가 검사해야 하므로, 필요할 때만 사용해야 한다. 이 작업은 더 많은 처리 능력을 요구하며 데이터베이스 속도도 느려진다.


외래 키 제약

두 테이블 사이에 관계성이 있다면, 외래 키 제약은 외래 키의 값이 다른 테이블의 유효한 기본 키인지 확인한다.






출처 - 존 두켓, <백엔드 프로그래밍을 위한 PHP & MySQL>, Jpub, 2022

0개의 댓글