database/MYSQL

MYSQL // 쿼리문 SELECT

부엉이사장 2022. 7. 7. 07:09

sqlite로 이미 쿼리문을 조금 익혀서 앱을 만들어봤지만, 

전문적인 데이터베이스인 MYSQL사용법을 익히기 위해 시작해보았다.

 

//쿼리문 입력

워크벤치에서 암호를 입력하고 클릭해서 접속한다.

query에 쿼리를 입력한다.

 

#1 SHOW DATABASES // CREATE DATABASE

이걸치면 현재 서버에 있는 데이터베이스들을 보여준다.

CREATE DATABASE study_db default CHARACTER SET UTF8;

이걸 치면 데이터베이스를 만들어준다. 

이렇게 난 study_db와 world데이터베이스를 만들어주었다.

 

 

 

#2 테이블

CREATE TABLE city
(
_id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(32) NOT NULL,
belong VARCHAR(12) DEFAULT 'FOO',
phone VARCHAR(12)
) ENGINE = INNODB;
DESCRIBE city

이렇게 테이블 생성해주고 컬럼별 특성도 정확히 정해줘야한다.

 

이렇게 테이블보여달라하면 아까 만든 테이블이 있네용.

테이블 상태 보여줘~

 

테이블 자세히알려줘~ describe는 DESC로 요약해서 쓸수 있음.

 

 

 

 

 

# SELECT 

난 데이터베이스가 비어있어서.. 걍 샘플 데이터베이스를 가져왔다

employees 데이터베이스 가져왔다. 크긴큼

모든 데이터 보여줘~ *

원하는것(first_name컬럼)만~ 

두개~

 

 

 

 

- WHERE 관계연산자

남자만 보여줘~

스트링은 따옴표쳐줘야함.. 

and

남자이고 first name 이 georgi인 사람만 보여줘~

이런거 쓸 수 있대.

 

between쓸수도 잇음

where in 은 난 문자열 들은건줄 알았는데 일치하는거임

and로 연결하지않고 where in으로 걍 저거 세개 있는거 다 찾아줌.

 

 

# like

 

문자열로 찾는건 like를 쓴다.

언더바개수가 위치에 오는 아무글자라는 뜻임.

글자수까지 일치해야함

글자수 상관없이 저뒤에 암거나 붙는거 다찾는거는 %를 씀

 

 

#서브쿼리

서브쿼리먼저

이름이 파트리시오이고 성이 브릿지랜드인 사람의 성별을 가져와서//

메인쿼리

그 성별과 일치한 사람을 다 찾아서 보여줘.

*중요한건 서브쿼리 결과가 두개이상이면 안됨. 데이터베이스가 커서 하나인거 찾는데 좀 어려웠음.

메인쿼리의 gender부분과 서브쿼리의 select부분이 같아야한다.

 

 

서브쿼리 any

이번 코드에서의 서브쿼리는 여러결과가 나온다.

이중 고용번호 아무거나보다 고용번호가 큰 사람 누구나 보여줘. 이게 any

서브쿼리 고용번호의 최솟값보다 큰 자료만 보여줄것임.

 

all은 모든 조건 다 맞춰줘야함. 즉 서브쿼리문의 고용번호 최댓값보다 큰걸 찾아주겠지.

 

 

 

# order by

내림차순

asc는 오름차순. 오름차순은 생략해도알아서 나옴

 

.where 과 혼용해서 쓸수도 있음.

 

 

 

 

#distinct 중복제거

first_name에서 중복제거하고 다 보여줘

 

 

 

 

# limit 

10개만 보여줘~

 

 

 

#group by

first name별로 묶어서 보여주는데 고용번호가 가장 큰것의 first name으로 보여줘.

max말고 min avg등등있음.

 

as로 컬렴명 맘에드는걸로 바꿔서 보여주기도함

 

 

 

#count 개수

행 몇개야~ first name의 갯수로 했는데 모든 row가 다 first name이 있으니 걍 모든행임

select count(*) from employees 로 해도 같은 값이 나옴.

이름이 georogi인사람이 몇명이야~

 

성별별로 고용번호의 평균을 보여줘

 

전체로우 수

고용번호 평균

이름별로 고용번호 가장 높은것들중에 50000이상인것만 보여줘

 

join 

rollup

 

여러가지 있지만 이정도까지만해도 데이터베이스 관리 가능할것같음.

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

MYSQL // row쿼리 사용하는 연동하기.  (0) 2022.08.30
MYSQL // sequelize 사용하기 (기본 요약)  (0) 2022.08.30
MYSQL // 복습  (0) 2022.08.29
MYSQL // CRUD 작업  (0) 2022.07.09
MYSQL // 테이블 생성 및 워크벤치  (0) 2022.07.08