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 |