
p.195의 확인 문제 4번 풀고 인증하기

p. 183 [좀 더 알아보기] 손코딩 실행하고 결과화면 인증하기


| 데이터 형식 | 바이트 수 | 숫자 범위 |
|---|---|---|
| TINYINT | 1 | -128 ~ 127 |
| SMALLINT | 2 | -32,768 ~ 32,767 |
| INT | 4 | 약 -21억 ~ +21억 |
| BIGINT | 8 | 약 -900경 ~ + 900경 |
UNSIGNED 예약어
- 범위가 0부터 시작되어 지정
- 크기
- UNSIGNED 붙은 것 = UNSIGNED 안붙은것
- TINYINT(-128~127) = TINYINT UNSIGNED(0~255) = 1바이트
| 데이터 형식 | 바이트 수 |
|---|---|
| CHAR(개수) | 1 ~ 255 |
| VARCHAR(개수) | 1 ~ 16383 |
| 데이터 형식 | 바이트 수 |
|---|---|
| TEXT | 1 ~ 65535 |
| LONGTEXT | 1 ~ 4294967295 |
| 데이터 형식 | 바이트 수 |
|---|---|
| BLOB | 1 ~ 65535 |
| LONGBLOB | 1 ~ 4294967295(최대 4GB) |
| 데이터 형식 | 바이트 수 | 숫자 범위 |
|---|---|---|
| FLOAT | 4 | 소수점 아래 7자리까지 |
| DOUBLE | 8 | 소수점 아래 15자리까지 |
| 데이터 형식 | 바이트 수 | 숫자 범위 | 형식 |
|---|---|---|---|
| DATE | 3 | 날짜만 저장 | YYYY-MM-DD |
| TIME | 3 | 시간만 저장 | HH:MM:SS |
| DATETIME | 8 | 날짜 및 시간 | YYYY-MM-DD HH:MM:SS |
SET @변수이름 = 변수의 값 ; -- 변수 선언 및 값 대입
SELECT @변수이름 ; -- 변수 값 출력
LIMIT에서 변수 사용하는 법
- LIMIT엔 변수 사용 불가 → 문법상 오류
SET @count = 3; SELECT mem_name, height FROM member ORDER BY height LIMIT @count; -- 에러 발생
- 대신 PREPARE & EXECUTE 이용
SET @count = 3; -- 변수 선언 PREPARE mySQL FROM 'SELECT mem_name, height FROM member ORDER BY height LIMIT ?'; -- PREPARE : mySQL 이름으로 준비만 해놓음. -- ? : 현재는 모르지만 나중에 채워진다는 의미. EXECUTE mySQL USING @count; -- EXECUTE로 mySQL 실행 시 USING으로 ?에 변수 값 대입
데이터 형 변환 (type conversion)
- 문자형→정수형, 정수형→문자형
- 종류
- 명시적인 변환 (explicit conversion)
- 암시적인 변환 (implicit conversion)
CAST ( 값 AS 데이터_형식 [ (길이) ] )
CONVERT ( 값, 데이터_형식 [ (길이) ] )
-- 1) CAST 이용
SELECT CAST( AVG(price) AS SIGNED ) '평균 가격' FROM buy;
-- 2) CONVERT 이용
SELECT CONVERT( AVG(price), SIGNED ) '평균 가격' FROM buy;
-- CAST 이용
SELECT CAST( '2022%01%21' AS DATE );
-- CAST 이용
SELECT num,
CONCAT( CAST(price AS CHAR), 'X', CAST(amount AS CHAR), '=' ) '가격X수량',
price*amount '구매액'
FROM buy ;
SELECT '100' + '200';
SELECT CONCAT('100' + '200');
🤝 조인 (join)
- 2개의 테이블을 서로 묶어서 하나의 결과(정보)를 만들어내는 것
- join 종류
- inner join (내부 조인)
- outer join (외부 조인)
- cross join (상호 조인)
- self join (자체 조인)
🫂 일대다(one to many) 관계
- 한쪽 테이블에는 하나의 값만 존재해야 하지만, 연결된 다른 테이블엔 여러 개의 값이 존재할 수 있는 관계
- 주로 기본 키(PK) - 외래 키(FK) 관계 → PK-FK 관계라고도 부름
- 두 테이블 조인을 위해서 테이블이 ❗️일대다 관계(PK-FK 관계)❗️로 연결되어야 함
- DB의 테이블
- 여러 정보를 주제에 따라 분리해 저장하는 것이 효율적
- 분리된 테이블들은 서로 관계(realation) 맺고 있음
SELECT <열 목록>
FROM <첫 번째 테이블>
INNER JOIN <두 번째 테이블>
ON <조인될 조건>
[WHERE 검색 조건]