소연이의 메모장

[혼공SQL] 02. 실전용 SQL 미리 맛보기 본문

Programming/MySQL

[혼공SQL] 02. 실전용 SQL 미리 맛보기

xoyeon 2023. 9. 8. 01:49
반응형

맛보기? SQL.. 쓰다..

쿼리를 잘못 입력하면 취소가 안되는 모양이다.

책과 내 sql의 버전 문제인지 ㅠㅠ 에러가 난다. 해결 방법도 python만큼 많지가 않다.


SELECT 열_이름 FROM 테이블_이름 [WHERE 조건]
Ctrl + Shift + Enter를 눌러 SQL 실행 가능

# *를 사용하여 member의 모든 열 출력
select * from member; # 세미콜론(;) 필수!

# 여러 개의 열 이름을 콤마(,)로 분리하여 필요한 열만 추출
select member_name, member_addr from member;

# WHERE를 사용하여 특정 행만 추출
select * from member where member_name = '아이유';

## 쿼리 창에 있는 모든 SQL을 수행하면 결과가 세개
## 하나만 실행하기 위해서는 블록으로 지정한 뒤 실행


1. 인덱스

# 전체 테이블에서 찾기
select * from member where member_name = '아이유';

 

인덱스를 활용하지 않고 데이터를 찾으면 위와 같이 쿼리가 실행된다.

# 인덱스를 활용하여 찾기
Create INDEX idx_member_name ON member(member_name);
/* 에러 발생! Error Code: 1061. Duplicate key name 'idx_member_name'
--> 인덱스 이름을 바꾸면 해결이 된다고 했으나 아래와 같은 에러 발생. 해결 방법 못찾음 ㅠㅠ
0 row(s) affected, 1 warning(s): 1831 Duplicate index 'index_member_name' defined on the table 'shop_db.member'. This is deprecated and will be disallowed in a future release. Records: 0  Duplicates: 0  Warnings: 1
*/

인덱스를 활용하면?.. ㅎ 에러가 난다

 


2. 뷰(가상의 테이블)

create view member_view
as
select * from member;
    
# member_view에 접근하기
select * from member_view;


3. 스토어드 프로시저

select * from member where member_name = '나훈아';
select * from product where product_name = '삼각김밥';

# 스토어드 프로시저 생성하기
DELIMITER // # 구분 문자 : 스토어드 프로시저를 묶어줌
CREATE PROCEDURE myProc()
BEGIN
SELECT * FROM member WHERE member_name = '나훈아';
SELECT * FROM product WHERE product_name = '삼각김밥';
END //
DELIMITER ;

# 생성한 PROCEDURE를 불러오기
CALL myProc (); ### 여기도 에러 발생 ! Error Code: 1305. PROCEDURE shop_db.myProc does not exist

'Programming > MySQL' 카테고리의 다른 글

[MySQL] MySQL Workbench 설치하기  (0) 2023.11.06
[혼공SQL] 03. SQL 기본 문법  (0) 2023.09.26
[혼공SQL] 01. 데이터베이스와 SQL  (0) 2023.09.01