개발의변화
SELECT 문 본문
결과의 정렬 ORDER BY
결과의 값이나 개수에 대해서는 영향을 미치지 않지만, 결과가 출력된느 순서 조절
기본값 ASC, 내림차순 DESC
결과의 개수 제한 LIMIT
출력하는 ㅅ개수ㅅ를 제한,
LIMIT 시작, 개수
LIMIT 3 == LIMIT 0, 3
LIMIT 3,2 => 3번쨰부터 2건만 조회
중복된 데이터 제거 DISTINCT
중복된 데이터를 1개만 남기고 제거
ex) SELECT DISTINCTaddr FROM member
GROUP BY
HAVING
그룹으로 묶어주는 역할
집계 함수는 주로 GROUP BY 절과 함께 쓰이며 데이터를 그룹화해주는 기능
집계 함수 SUM()합계, AVG()평균, MIN()최소, MAX()최대, COUNT()행의 개수, COUNT(DISTINCT)행의 개수를 셉니다
COUNT(*) => NULL 포함
COUNT(열 이름) => NULL 비포함
WHERE절에는 집계함수 비포함
HAVING 절
꼭 GROUP BY절 다음에 나와야 함
지정딘 열의 데이터들을 같은 데이터끼리는 묶어서 결과를 추출 GROUP BY
WHERE 절과 비슷해 보이지만, GROUP BY 절과 함께 사용되는 것이 차이점
DDL
INSERT
INSERT INTO 테이블 [(열1,열2,열3,...)] VALUES (값1,값2,...)
테이블에 데이터를 삽입하는 명령
열의 수에 만큼 VALUES의 값도 각각 3개의 맞게 넣어야함
, UPDATE, DELETE
DML
DCL
TCL
CREATE TABLE hongon2 (
toy_id INT AUTO_INCREMENT PRIMARY KEY,
toy_name CHAR(4),
age INT);
)
ALTER TABLE honogon2 AUTO_INCREMENT=100
INSERT INTO hongon2 VALUES(NULL,'재남',35);
SELECT * FROM hongong2;
SET @@auto_increment_increment = 3;
INSERT INTO 테이블_이름 VALUES(값1, 값2, ...), (값3, 값4, ...), (값5, 값6,..)
UPDATE문에서 WHERE절은 문법상 생략 가능, WHERE절을 생략하면 테이블의 모든 행의 값이 변경됨
UPDATE city_popul
SET city_name = '서울'
DELETE는 행 단위 삭제
DELETE FROM 테이블이름 WHERE 조건;
PK => 기본 키. AUTO_INCREMENT 열은 기본 키로 지정해야 함
INT에 UNSIGNE를 붙이면 0부터 범위가 지정됨
CHAR(고정길이)
VARCHAR(가변길이 문자형)
VARCHAR가 CHAR보다 공간을 효율적으로 운영
MYSQL 내부적으로 성능면에서는 CHAR로 설정하는 것이 조금 더 좋다
숫자로서 의미 1. 더하기/빼기 등의 연산에 의미가 있다
2. 크다/작다 또는 순서에 의미가 있다
대량의 데이터형식
TEXT -> 소설이나 영화 대본과 같은 내용을 저장한다면 필요한 데이터 형식 LONGTEXT 42억
BLOB -> 용어가 등장했는데 BLOB BInary Long Object의 약자로 글자가 아닌 이미지, 동영상의 데이터라고 생각한다
실수형
FLOAT : 4바이트 수, 소수점 아래 7자리 표현
DOUBLE: 8바이트 수, 소수점 아래 15자리 표현
날짜형
DATE 3바이트 수, 날짜만 저장. YYYY-MM-DDgudtlr
TIME 3바이트 수, 시간만 저장, HH:MM:SS 형식으로 사용
DATETIME 8바이트 수, 날짜 및 시간을 저장, YYYY-MM-DD HH:MM:SS 형식으로 사용
변수의 사용!
SET @변수이름 = 변수의 값;
SELECT @변수이름 ;
USE market_db;
SET @myVar1 = 5 ;
SET @myVar2 = 4.25;
SELECT @myVar1;
SELECT @myVar1 + @myVar2;
SET @txt = '가수 이름==> ';
SET @height = 166;
SELECT @text, mem_name FROM member WHERE height > @height ;
CAST ( 값 AS 데이터_형식 [ (길이)] )
CONVERT (값, 데이터의 형식 [(길이)])
SELECT AVG(price) AS '평균 가격' FROM buy;
SELECT CAST(AVG(price) AS SIGNED) '평균 가격' FROM buy;
'데이터베이스' 카테고리의 다른 글
MySQL(IFNULL,WITH) (0) | 2023.09.27 |
---|---|
자바 변수형 (0) | 2023.06.10 |
트랜잭션 (0) | 2023.04.19 |
정규화과정 (0) | 2023.04.18 |
ERD와 정규화 과정 (0) | 2023.04.18 |