<SQL기본>
**왼쪽 스키마 쪽에 내가 사용할 DB 확인
1. SELECT문
1) 원하는 데이터를 가져와 주는 기본적인 <SELECT ... FROM>
데이터 베이스 내의 테이블에서 원하는 정보를 추출하는 명령
SELECT문은 다양한 옵션으로 많이 사용되는 형태로 요약한 구조
SELECT 열_이름
FROM 테이블_이름
WHERE 조건
GROUP BY
HAVING
ORDER BY
- USE 구문
USE 데이터베이스_이름;
이렇게 지정해 놓은 후에는 특별히 다시 USE문을 사용하거나 다른 DB를 사용하겠다고 명시하지 않는 이상
모든 SQL문은 '데이터베이스_이름' 에서 수행됨.
*있고 없고를 떠나서 실행은 되지만 그 안에 있는 쿼리 실행 안 됨

- Output 부분
1) 초록색 아이콘 : 정상적으로 쿼리가 실행된 상태를 나타냄 . 오류인 경우 빨간색 아이콘 나타남
2) #1 : 실행한 쿼리의 순번을 나타냄 . 실행한 궈키락 여러개라면 1,2,3, ... 순서로 증가함
3) Action : 실행된 쿼리문이 나옴
4) Message : SELECT문은 조회된 행의 갯수가 나옴. 오류인경우 오류 번호 및 오류 메시지가 나타남
5) Duration/Fetch : Duration은 SQL문이 실행 되는데 걸린 시간 (초) , Fetch는 데이터를 테이블에서
가져오는데 걸린 시간(초) 표시됨
원래 테이블의 전체이름은 '데이터베이스_이름.테이블_이름' 형식으로 표현됨
(shopdb;로 되어있더라도 다른테이블 확인가능 '데이터베이스_이름.테이블_이름' 형식 으로)
여려개의 열을 가져오고 싶으면 콤마(,)로 구분하면 됨. 또한 열 이름의 순서는 사용자 마음대로 바꿔도 스키마 쪽에 내가 사용할 DB 확인
1. SELECT문
1) 원하는 데이터를 가져와 주는 기본적인 <SELECT ... FROM>
데이터 베이스 내의 테이블에서 원하는 정보를 추출하는 명령
SELECT문은 다양한 옵션으로 많이 사용되는 형태로 요약한 구조
SELECT 열_이름
FROM 테이블_이름
WHERE 조건
GROUP BY
HAVING
ORDER BY
- USE 구문
USE 데이터베이스_이름;
이렇게 지정해 놓은 후에는 특별히 다시 USE문을 사용하거나 다른 DB를 사용하겠다고 명시하지 않는 이상
모든 SQL문은 '데이터베이스_이름' 에서 수행됨.
*있고 없고를 떠나서 실행은 되지만 그 안에 있는 쿼리 실행 안 됨

- Output 부분
1) 초록색 아이콘 : 정상적으로 쿼리가 실행된 상태를 나타냄 . 오류인 경우 빨간색 아이콘 나타남
2) #1 : 실행한 쿼리의 순번을 나타냄 . 실행한 궈키락 여러개라면 1,2,3, ... 순서로 증가함
3) Action : 실행된 쿼리문이 나옴
4) Message : SELECT문은 조회된 행의 갯수가 나옴. 오류인경우 오류 번호 및 오류 메시지가 나타남
5) Duration/Fetch : Duration은 SQL문이 실행 되는데 걸린 시간 (초) , Fetch는 데이터를 테이블에서
가져오는데 걸린 시간(초) 표시됨
원래 테이블의 전체이름은 '데이터베이스_이름.테이블_이름' 형식으로 표현됨
(shopdb;로 되어있더라도 다른테이블 확인가능 '데이터베이스_이름.테이블_이름' 형식 으로)
여려개의 열을 가져오고 싶으면 콤마(,)로 구분하면 됨. 또한 열 이름의 순서는 사용자 마음대로 바꿔도 됨
SELECT first_name, last_name, gender from employees;
SELECT first_name, gender,last_name from employees;
실습1) 데이터베이스 이름, 테이블 이름, 필드 이름이 정확히 기억나지 않거나 또는 각 이름의 철자가 확실하지 않을 떄
찾아서 조회하는 방법을 실습. 지금 조회하고자 하는 내용이 employees 데이터 베이스에 있는
employees 테이블의 first_name 및 gender열이라고 가정




________________
열 이름의 별칭 : 열 이름을 별도의 별칭으로 지정할 수 있음
열 이름 뒤에 AS 별칭 형식으로 붙임
하지만 , 별칭의 중간에 공백이 있따면 꼭 작음 따옴표('')로 별칭을 감싸줘야 함,
또, AS는 붙이거나 생략 가능.
권장하기로는 별칭을 붙일 경우에도 되도록 작음 따옴표('') 안에 별칭을 사용하기를 권장함
예) SELECT first_name AS 이름, gender 성별, hire_date '회사 입사일' from employees;

primary key ; 기본키 (중복값 나올 수 없음) > 기본키 선택된 곳은 무조건 not null일 필요함
<데이터 타입>
1) int
종류의 크기 비교
tinyint< samllint < int < bigint
tinyint의 크기 : 0 ~ 255 > 용량이 1바이트
smallint의 크기 : -32,768 ~ 32,7767 > 용랑이 2바이트
int의 크기 : 용량이 4바이트
bigint의 크기 : 룡량이 8바이
2) char , varchar 차이
char와 varchar는 영문자를 기준으로 1byte 할당. 영문자를 입력할 계획이라면 이것을 선택
NChar와 NVarchar는 유니코드를 기준으로 2byte 할당함. 한글을 입력할 계획이라면 이것을 선택
MySQL 8.0dms char 와 varchar 모두 UTF-8 코드 사용
UTF-8코드는 영문/숫자/기호를 입력하면 내부적으로 1바이트를 할당, 한글/중국어/일본어 등을 입력하면
내부적으로 3byte 할당되므로 특별히 NChar와 NVarchar 사용할 필요가 없음
결론적으로 char(10)으로 설정하면 영문이든 한글이든 10글자까지 입력할 수 있으며,
내부적으로는 MySQL이 공간을 할당하므로 사용자는 특별히 신경쓸 필요는 없음
>결론 char 사용하자
- 데이터베이스 개체의 이름 규칙 : 데이터베이스(=스키마) 개체의 이름을 식별자라고함
데이터베이스 개체 : 데이터베이스, 테이블, 인덱스 , 열, 뷰, 트리거 , 스토어드 프로시저 등과 같은 객체들을 의미
알파벳 a~z, A~Z, 0~9 , $, _ 를 사용할 수 있음 하지만 기본 설정은 영문 대문자나 소문자 어떤것을 사용해도 소문자로 생성
-개체 이름은 최대 64글자로 제한됨
-예약어 사용하면 안 됨 , 예로 CREATE TABLE select ... 안 됨 > select는 예약어
-개체 이름은 원칙적으로 중간에 공백이 이으면 안되지만 , 중간에 공백을 꼭 사용하려면 백택(``)으로 묶기
예로 CREATE TABLE 'My Table' ... 가능
-개체에 이름을 줄 때는 되도록 알기 쉽게 주는 것이 좋고, 너무 길게 주는 것보다는 짧으면서ㅗ도 이름만으로도
어떤 것인지 파악할 수 있는 것이 바람직함
다음은 나쁜 예)
CREATE TABLE abc 어떤 테이블인지 의미파악할 수 없음
CREATE TABLE sales ('Price of Priduct' int, ...) > 열 이름의 의미 파악은 쉽게 되지만 너무 길다
-Linux에서는 데이터베이스 이름과 테이블 이름은 모두 소문자로 사용해야함
그러므로 Windows와 Linux 모두 동일한 코드 사용하려면 개체 이름을 모두 소문자로 사용하는 것이 더 편리함
(대부분 db는 Linux 에 설치되어있음)
*쿼리 저장할때 한글폴더 사용 하지말고 따로 영문이름폴더사용해서 저장
'MySQL' 카테고리의 다른 글
| MySQL_Connection 창 (0) | 2024.09.10 |
|---|---|
| MySQL_비교연산자, 논리연산자 (0) | 2024.09.09 |
| MySQL_MySQL (0) | 2024.09.09 |
| MySQL_NoSQL (0) | 2024.09.09 |
| MySQL SELECT. 02 문법 (2) | 2024.09.09 |