SHOW DATABASES;
보여줘라 데이터 베이스를.
USE world;
사용할 데이터 베이스를 지정.
SHOW TABLES;
world 안에 있는 테이블을 보여줘.
SHOW TABLE STATUS;
STATUS => 테이블의 상태 즉, 정보를 보여줘.
DESC city;
city 테이블에 무슨 열이 있는지 보여줌.
- DESCRIBE city;
- DESC city;
SELECT... FROM
SELECT select_expr
[FROM table_references]
[WHERE where_condition]
[GROUP BY {col_name | expr | postion}]
[HAVING where_condition]
[ORDER BY {col_name | expr | position}]
- 요구하는 데이터를 가져오는 구문
- 일반적으로 가장 많이 사용됨
- DB 내 테이블에서 원하는 정보 추출
SELECT * FROM city;
city 테이블에 있는 전체 데이터를 보여줌.
SELECT Name FROM city; // city 테이블 안에 Name 열만
SELECT Name, Population FROM city; // city 테이블 안에 Name이랑 Population 열 둘 다
- SELECT 열 이름
- 테이블에서 필요로 하는 열만 가져옴
- 여러 개의 열을 가져오고 싶을 때는 콤마로 구분
- 열 이름의 순서는 출력하고 싶은 순서대로 배열 가능
SELECT *
FROM city
WHERE Population > 8000000;
- 조회하는 결과에 특정한 조건으로 원하는 데이터만 보고 싶을 때 사용
- SELECT 필드이름 FROM 테이블이름 WHERE 조건식;
- 조건이 없을 경우 테이블의 크기가 클수록 찾는 시간과 노력이 증가
SELECT *
FROM city
WHERE Population < 8000000
AND Population > 7000000;
- 관계 연산자 사용
- OR
- AND
- 조건 연산자 (=, <, >, <=, >=, <>, != 등)
- 관계 연산자 NOT AND OR
- 연산자의 조합으로 데이터를 효율적으로 추출
SELECT *
FROM city
WHERE CountryCode = 'KOR'
AND Population <= 1000000;
// 한국에 있는 인구 100만 이상의 정보를 보여줘
SELECT *
FROM city
WHERE Population BETWEEN 7000000 AND 8000000;
데이터가 숫자로 구성되어 있어 연속적인 값은 BETWEEN...AND 사용 가능
SELECT *
FROM city
WHERE Name IN('Seoul', 'New York', 'Tokyo');
이산적인 값의 조건에서는 IN() 사용 가능
SELECT *
FROM city
WHERE CountryCode LIKE 'KO_'; // KO 뒤에 한 글자만 올 수 있음
SELECT *
FROM city
WHERE Name LIKE 'Tel %' // Tel로 시작하는 도시 이름이 뭐지?
- 문자열의 내용 검색하기 위해 LIKE 연산자 사용
- 문자 뒤에 %-무엇이든(%) 허용
- 한 글자와 매치하기 위해서는 '_' 사용
SELECT *
FROM city
WHERE CountryCode = ( SELECT CountryCode
FROM city
WHERE Name = 'Seoul');
- 서브 쿼리 SubQuery
- 쿼리문 안에 또 쿼리문이 들어있는 것
- 서브 쿼리의 결과가 둘 이상이 되면 에러 발생
SELECT *
FROM city
WHERE Population > ANY ( SELECT Population
FROM city
WHERE District = 'New York');
- 서브쿼리의 여러 개의 결과 중 하나만 만족해도 가능
- SOME은 ANY와 동일한 의미로 사용
- =ANY 구문은 IN과 동일한 의미
SELECT *
FROM city
WHERE Population > ALL ( SELECT Population
FROM city
WHERE District = 'New York');
- ALL 서브쿼리의 여러 개의 결과를 모두 만족 시켜야 함
SELECT *
FROM city
ORDER BY Population DESC;
// 혼합
SELECT *
FROM city
ORDER BY CountryCode ASC, Population DESC;
- ORDER BY 결과가 출력되는 순서를 조절하는 구문
- 기본적으로 오름차순 ASCENDING 정렬
- 내림차순 DESCENDING 으로 정렬
- 열 이름 뒤에 DESC 적어줄 것
- ASC(오름차순)은 default이므로 생략 가능
- 혼합해 사용하는 구문도 가능
SELECT DISTINCT CountryCode
FROM city;
- DISTINCT 중복된 것은 1개씩만 보여주면서 출력
- 테이블의 크기가 클수록 효율적
SELECT *
FROM city
ORDER BY Population DESC
LIMIT 10;
SELECT CountryCode, MAX(Population) AS 'Average'
FROM city
GROUPT BY CountryCode;
- 그룹으로 묶어주는 역할
- 집계 함수(Aggregate Function)를 함께 사용
- AVG(): 평균
- MIN(): 최소값
- MAX(): 최대값
- COUNT(): 행의 개수
- COUNT(DISTINCT): 중복 제외된 행의 개수
- STDEV(): 표준 편차
- VARIANCE(): 분산
- 효율적인 데이터 그룹화(Grouping)
- 읽기 좋게 하기 위해 별칭(Alias) 사용
유튜브 '이수안컴퓨터연구소'
[MySQL 데이터베이스 한 번에 끝내기] 강의
공부용으로 정리 및 기록
https://youtu.be/vgIc4ctNFbc
300x250
'LEARN > SQL' 카테고리의 다른 글
[MySQL] drop table 안 될 때 해결 (0) | 2024.02.15 |
---|---|
[DOCKER] 도커 MySQL DB dmp (0) | 2024.01.12 |
[MySQL] 테이블 여러 개 삭제 (0) | 2023.12.07 |
[ORACLE] DBeaver 에서 UPDATE 시 무한 로딩 오류 (0) | 2023.08.27 |
[ORACLE] 오라클 error: ORA-28000: The account is locked (0) | 2023.08.17 |