공부/데이터베이스2011. 7. 19. 15:24


SELECT status FROM my_contacts
GROUP BY status
ORDER BY status;

ORDER BY는 항상 맨 마지막에 온다.

문자열 추출
UPDATE my_contacts
SET interests = SUBSTR(interests, LENGTH(interest1)+2); 

 
3개 쿼리는 같은 결과
1)
CREATE TABLE profession
(
    id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    profession varchar(20)
);
INSERT INTO profession (profession)
    SELECT profession FROM my_contacts
    GROUP BY profession
    ORDER BY profession

2)
CREATE TABLE profession AS
    SELECT profession FROM my_contacts
    GROUP BY profession
    ORDER BY profession;
ALTER TABLE profession
ADD COLUMN id INT NOT NULL AUTO_INCREMENT FIRST,
ADD PRIMARY KEY (id);

3)
CREATE TABLE profession
(
    id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    profession varchar(20)
) AS
    SELECT profession FROM my_contacts
    GROUP BY profession
    ORDER BY profession
 
별명(Alias) 사용
열이름을 간단하고 사용하기 쉽게 한다. 

CREATE TABLE profession
(
    id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    profession varchar(20)
);
INSERT INTO profession (profession)
    SELECT profession AS mc_prof FROM my_contacts
    GROUP BY mc_prof
    ORDER BY mc_prof

결과 테이블의 열의 이름이 alias값, 즉 mc_prof로 나온다.
원래 열의 이름은 변하지 않음. 저렇게만 보여주는 것임.

테이블 별명
SELECT profession AS mc_prof
FROM my_contacts AS mc
GROUP BY mc_prof
ORDER BY mc_prof;

AS는 생략 가능하다.

Inner join(내부 조인)
1) Cartesian 조인
한 테이블의 모든 행과 다른 테이블의 모든 행을 짝지워 반환한다.

SELECT t.boy, b.boy
FROM toys AS t
CROSS JOIN
boys AS b;

다음 쿼리도 같은 결과
SELECT toys.toy, boys.boy
FROM toys, boys;

2) equijoin(동등 조인)
같은지를 테스트하는 내부 조인
SELECT boys.boy, toys.toy
FROM boys
   INNER JOIN
   
toys
ON boys.toy_id = toys.toy_id;

3) non-equijoin(비동등 조인)
내부 조인이 같지 않은지를 테스트.
SELECT boys.boy, toys.toy
FROM boys
    INNER JOIN
    toys
ON boys.toy_id <> toys.toy_id
ORDER BY boys.boy

4) natural join (자연조인)
두 테이블에 같은 이름의 열이 있을 때
SELECT boys.boy, toys.toy
FROM boys
    NATURAL JOIN
    toys;
 

'공부 > 데이터베이스' 카테고리의 다른 글

2장 introduction to Database Design  (0) 2011.08.06
9. 서브 쿼리 (subqueries)  (0) 2011.07.19
7. 테이블이 여러개인 데이터베이스 설계  (0) 2011.07.17
6. 고급 SELECT문  (0) 2011.07.17
5장 ALTER  (0) 2011.07.16


Posted by skyjumps