STUDY/database

[MySQL] 데이터 조회(1)

까미이모 2023. 11. 27. 16:20

SELECT statement

SELECT attribute(s)
FROM table(s)
[WHERE condition(s)];
SELECT employee.id, employee.name, position
FROM project, employee
WHERE project.id = 2002 and project.leader_id = employee.id;

-- 서로다른 테이블이지만 attribute name이 같을 경우 테이블이름을 같이 써준다.

 

AS 사용하기

  • AS는 테이블이나 attribute에 별칭(alias)을 붙일때 사용
  • AS는 생략 가능
SELECT E.id AS leader_id, E.name AS leader_name, position
FROM project AS P, employee AS E
WHERE P.id = 2002 and P.leader_id = E.id;

 

DISTINCT 사용하기

  • DISTINCT는 select 결과에서 중복되는 tuples은 제외하고 싶을 때 사용한다
SELECT DISTINCT P.id, P.name
FROM employee AS E, works_on AS W, project AS P
WHERE E.position = 'DSGN' and 
		E.id = W.empl_id and W.proj_id = P.id;

 

LIKE 사용하기

-- 이름이 N으로 시작하거나 N으로 끝나는 직원
SELECT name 
FROM employee
WHERE name LIKE 'N%' or name LIKE '%N';

--  J로 시작하면서 총 네글자 
SELECT name 
FROM employee
WHERE name LIKE 'J___';

 

escape 문자와 함께 LIKE 사용하기

%, _ 처럼 특정한 의미를 나타내는 문자를 문자그대로로 사용할 때는 앞에 \를 붙여 사용한다.

-- %로 시작하거나 _로 끝나는 프로젝트 이름 찾고싶다면?
SELECT name
FROM project WHERE name LIKE '\\%%' or name LIKE '%\\_';

 

*(asterisk) 사용하기

  • *(asterisk)는 선택된 tuples의 모든 attributes를 보여주고 싶을 때 사용한다

 

SELECT without WHERE

  • 테이블에 있는 모든 tuples을 반환한다

'STUDY > database' 카테고리의 다른 글

[MySQL]데이터 조회(3) NULL  (0) 2023.11.27
[MySQL] 데이터 조회(2) subquery  (0) 2023.11.27
[MySQL] 데이터 추가, 수정, 삭제  (0) 2023.11.23
[DB] constrains(제약사항) 설정  (0) 2023.11.21
DB구축 예시  (1) 2023.11.21