DBMS day4
Auto_increment
● table에 값이 추가될 때마다 증가하는 값을 미리 설계할 수 있다.
PK의 자료형이 int라면 설정 가능
create table 테이블명(
컬럼명 int primary key auto_increment,
...
);
create table product(
# auto_increment를 사용하면 숫자가 하나씩 증가
prodnum int primary key auto_increment,
prodname varchar(300) not null,
prodprice int not null,
# regdate 등록시간
regdate datetime
);
● product 테이블에 '구찌 지우개, 구찌 연필', 100000, 100000만 추가
insert into product(prodname, prodprice)
values('구찌 지우개', 100000);
insert into product(prodname, prodprice)
values('구찌 연필', 100000);
● 검색
select * from product;
● table에 값이 추가될 때마다 증가하는 값을 미리 설계할 수 있다.
PK의 자료형이 int라면 설정 가능
create table 테이블명(
컬럼명 int primary key auto_increment,
...
);
create table product(
# auto_increment를 사용하면 숫자가 하나씩 증가
prodnum int primary key auto_increment,
prodname varchar(300) not null,
prodprice int not null,
# regdate 등록시간
regdate datetime
);
● product 테이블에 '구찌 지우개, 구찌 연필', 100000, 100000만 추가
insert into product(prodname, prodprice)
values('구찌 지우개', 100000);
insert into product(prodname, prodprice)
values('구찌 연필', 100000);
● 검색
select * from product;
date, datetime 타입
● date
○ 'YYYY-MM-DD'형태로 삽입
● datetime
○ 'YYYY-MM-DD HH:MI:SS' 형태로 삽입
insert into product(prodname, prodprice, regdate)
values('구찌 공책', 300000, '2022-04-13 19:25:37');
● date
○ 'YYYY-MM-DD'형태로 삽입
● datetime
○ 'YYYY-MM-DD HH:MI:SS' 형태로 삽입
insert into product(prodname, prodprice, regdate)
values('구찌 공책', 300000, '2022-04-13 19:25:37');
현재시간
● now() : 현재시간이 나옴
# 현재시간으로 등록을 나타낼 때
insert into product(prodname, prodprice, regdate)
values('구찌 필통', 250000, now());
like 조건식
● 뒤에 오는 '와일드카드' 문자열과 비교하여 같다면 참, 다르면 거짓
컬럼 like('와일드카드문자열')
와일드 카드
_ : 한글자 ex) '_다솔' : 성은 상관없이 이름이 '다솔'이면 참
% : 모든 것 (%는 0글자도 포함)
ex) '정%' : 이름은 상관없이 성이 '정'이면 참
'%A' : 글자수에 상관없이 끝이 'A'이면 참
'_A' : 두글자 중에 끝이 'A'면 참
'_이_' : 세글자중 가운데가 '이'면 참
'_이%' : 두번째 글자가 '이'면 참
'%이_' : 뒤에서 두번째 글자가 '이'면 참
'__이%' : 세번째 글자가 '이'면 참
'_이_%' : 두번째 글자가 '이'이며 3글자 이상이면 참
# Like 조건식
select * from product where prodname like('%구찌%');
select * from product where prodname like('%필%');
● 뒤에 오는 '와일드카드' 문자열과 비교하여 같다면 참, 다르면 거짓
컬럼 like('와일드카드문자열')
와일드 카드
_ : 한글자 ex) '_다솔' : 성은 상관없이 이름이 '다솔'이면 참 % : 모든 것 (%는 0글자도 포함) ex) '정%' : 이름은 상관없이 성이 '정'이면 참 '%A' : 글자수에 상관없이 끝이 'A'이면 참 '_A' : 두글자 중에 끝이 'A'면 참 '_이_' : 세글자중 가운데가 '이'면 참 '_이%' : 두번째 글자가 '이'면 참 '%이_' : 뒤에서 두번째 글자가 '이'면 참 '__이%' : 세번째 글자가 '이'면 참 '_이_%' : 두번째 글자가 '이'이며 3글자 이상이면 참
# Like 조건식
select * from product where prodname like('%구찌%');
select * from product where prodname like('%필%');
함수
● 단일행 함수
○ 행 하나당 결과를 하나 만들어나내는 함수
○ 문자함수, 숫자함수, 형변환함수, NULL처리 함수
# 단일행 함수
# 문자함수
# 문자열 연결, 문자열 길이
select concat('He', 'llo'), length('flower') from dual;
● 단일행 함수
○ 행 하나당 결과를 하나 만들어나내는 함수
○ 문자함수, 숫자함수, 형변환함수, NULL처리 함수
# 단일행 함수
# 문자함수
# 문자열 연결, 문자열 길이
select concat('He', 'llo'), length('flower') from dual;
# 숫자함수
# 올림, 버림, 반올림
select ceil(3.14), floor(3.14), round(3.141592, 2) from dual;
# 널처리 함수( Null 값을 0 등으로 바꾸고 싶을 때)
select ifnull(regdate, '등록날짜 없음') "등록시간"
from product where prodname = '구찌 지우개';
● 그룹함수
○ 여러 행의 데이터들을 받아서 하나의 결과로 도출해주는 함수
○ 반드시 하나의 값만을 반환한다.
○ NULL 값은 무시된다.
○ group by 설정 없이 일반 컬럼들과 기술될 수 없다.
▶ SUM, MIN, MAX, AVG, COUNT
▷ 행을 세는 것들임
# 그룹함수
use world;
select count(Population) from country;
# ifnull을 안쓰면 null은 count하지 않는다.
# null 값도 세고 싶어서 사용
# '????'는 null대신 숫자가 아닌 아무 값넣어서 데이터 갯수 확인
select count(ifnull(IndepYear, '????')) from country;
select sum(Population), avg(population),
max(population), min(population) from country;
● 단축키 : Ctrl + D : 바로 아래로 복사
# 대륙별 총 인구수
select Continent 대륙, sum(population) "총 인구수"
from country group by Continent;
# 대륙별로 정렬
# 여기서 order by 1, 2는 검색된 결과의 1번째 컬럼, 2번째 컬름을 뜻한다.
# 즉, 그 컬럼들을 기준으로 정렬한다는 뜻이다.
select Continent 대륙, Region 지역, sum(population) "총 인구수"
from country group by Continent, Region order by 1,2 desc;
group by
● ~~별~~
● 그룹함수를 적용시킬 파트(범위)를 나누는 문법
● GROUP BY절의 의미는 그룹 함수를 GROUP BY절에 지정된 컬럼의 값이 같은 행에 대해서 통계 정보를 계산하라는 의미
group by 컬럼1, 컬럼2, ...
→ 컬럼1로 그룹짓고, 그 내부에서 컬럼2로 그룹짓고, ...
select Continent 대륙, Region 지역, sum(population) "총 인구수"
from country group by Continent, Region;
having 조건절
● group by를 통해 그룹을 짓고 구해진 결과가 있을 때 각 그룹에
조건을 부여할 때 사용하는 문법
where절과 having절의 차이
- where절은 각 데이터들에게 적용되는 조건을 설정, 조건식에 그룹함수 사용불가
- having절은 각 그룹에게 적용되는 조건을 설정, 조건식에 그룹함수 사용가능
order by
● 검색 결과를 정렬하는 문법
● SELECT로 데이터를 조회할 때, ORDER BY를 추가하여 지정된 컬럼을 기준으로 정렬
order by 컬럼1 [정렬기준], 컬럼2 [정렬기준], ...
→ 컬럼1 기준으로 정렬, 그 내부에서 컬럼2 기준으로 정렬, ...
[정렬기준]
생략시 오름차순
ASC : 오름차순
DESC : 내림차순
● 오름차순 정렬
SELECT * FROM 테이블 ORDER BY 컬럼1 ASC;
● 오름차순 정렬(ASC 생략)
select * from 테이블 order by 컬럼1;
● 내림차순 정렬
select * from 테이블 order by 컬럼1 DESC;
● 여러 컬럼으로 정렬
select * from 테이블명 order by 컬럼1 [, 컬럼2, 컬럼3, ...];
select문
● select 컬럼1, 컬럼2, ... from 테이블명
● where 조건식 group by 컬럼1, 컬럼2, ...
● having 조건식 order by 컬럼1, 컬럼2, ...
limit
● 검색된 결과의 개수와 위치를 제한하는 문법
● Oracle에는 존재하지 않는다.
select문 limit 정수(n);
→ 검색된 결과 맨 위에서 n개만 추출
select문 limit(n), 정수(m);
→ 검색된 결과의 n번째부터 m개만 추출
# 행 데이터 10개만 조회하기
SELECT title, content, writer FROM board LIMIT 10;
# 11번째 ~ 20번째 행 데이터 조회
SELECT title, content, writer FROM board LIMIT 10, 10;
Author And Source
이 문제에 관하여(DBMS day4), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@dbekdms17/DBMS-day4
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
● ~~별~~
● 그룹함수를 적용시킬 파트(범위)를 나누는 문법
● GROUP BY절의 의미는 그룹 함수를 GROUP BY절에 지정된 컬럼의 값이 같은 행에 대해서 통계 정보를 계산하라는 의미
group by 컬럼1, 컬럼2, ...
→ 컬럼1로 그룹짓고, 그 내부에서 컬럼2로 그룹짓고, ...
select Continent 대륙, Region 지역, sum(population) "총 인구수"
from country group by Continent, Region;
● group by를 통해 그룹을 짓고 구해진 결과가 있을 때 각 그룹에
조건을 부여할 때 사용하는 문법
where절과 having절의 차이
- where절은 각 데이터들에게 적용되는 조건을 설정, 조건식에 그룹함수 사용불가
- having절은 각 그룹에게 적용되는 조건을 설정, 조건식에 그룹함수 사용가능
order by
● 검색 결과를 정렬하는 문법
● SELECT로 데이터를 조회할 때, ORDER BY를 추가하여 지정된 컬럼을 기준으로 정렬
order by 컬럼1 [정렬기준], 컬럼2 [정렬기준], ...
→ 컬럼1 기준으로 정렬, 그 내부에서 컬럼2 기준으로 정렬, ...
[정렬기준]
생략시 오름차순
ASC : 오름차순
DESC : 내림차순
● 오름차순 정렬
SELECT * FROM 테이블 ORDER BY 컬럼1 ASC;
● 오름차순 정렬(ASC 생략)
select * from 테이블 order by 컬럼1;
● 내림차순 정렬
select * from 테이블 order by 컬럼1 DESC;
● 여러 컬럼으로 정렬
select * from 테이블명 order by 컬럼1 [, 컬럼2, 컬럼3, ...];
select문
● select 컬럼1, 컬럼2, ... from 테이블명
● where 조건식 group by 컬럼1, 컬럼2, ...
● having 조건식 order by 컬럼1, 컬럼2, ...
limit
● 검색된 결과의 개수와 위치를 제한하는 문법
● Oracle에는 존재하지 않는다.
select문 limit 정수(n);
→ 검색된 결과 맨 위에서 n개만 추출
select문 limit(n), 정수(m);
→ 검색된 결과의 n번째부터 m개만 추출
# 행 데이터 10개만 조회하기
SELECT title, content, writer FROM board LIMIT 10;
# 11번째 ~ 20번째 행 데이터 조회
SELECT title, content, writer FROM board LIMIT 10, 10;
Author And Source
이 문제에 관하여(DBMS day4), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@dbekdms17/DBMS-day4
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
● 검색 결과를 정렬하는 문법
● SELECT로 데이터를 조회할 때, ORDER BY를 추가하여 지정된 컬럼을 기준으로 정렬
order by 컬럼1 [정렬기준], 컬럼2 [정렬기준], ...
→ 컬럼1 기준으로 정렬, 그 내부에서 컬럼2 기준으로 정렬, ...
[정렬기준]
생략시 오름차순
ASC : 오름차순
DESC : 내림차순
● 오름차순 정렬
SELECT * FROM 테이블 ORDER BY 컬럼1 ASC;
● 오름차순 정렬(ASC 생략)
select * from 테이블 order by 컬럼1;
● 내림차순 정렬
select * from 테이블 order by 컬럼1 DESC;
● 여러 컬럼으로 정렬
select * from 테이블명 order by 컬럼1 [, 컬럼2, 컬럼3, ...];
● select 컬럼1, 컬럼2, ... from 테이블명
● where 조건식 group by 컬럼1, 컬럼2, ...
● having 조건식 order by 컬럼1, 컬럼2, ...
limit
● 검색된 결과의 개수와 위치를 제한하는 문법
● Oracle에는 존재하지 않는다.
select문 limit 정수(n);
→ 검색된 결과 맨 위에서 n개만 추출
select문 limit(n), 정수(m);
→ 검색된 결과의 n번째부터 m개만 추출
# 행 데이터 10개만 조회하기
SELECT title, content, writer FROM board LIMIT 10;
# 11번째 ~ 20번째 행 데이터 조회
SELECT title, content, writer FROM board LIMIT 10, 10;
Author And Source
이 문제에 관하여(DBMS day4), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@dbekdms17/DBMS-day4
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
● 검색된 결과의 개수와 위치를 제한하는 문법
● Oracle에는 존재하지 않는다.
select문 limit 정수(n);
→ 검색된 결과 맨 위에서 n개만 추출
select문 limit(n), 정수(m);
→ 검색된 결과의 n번째부터 m개만 추출
# 행 데이터 10개만 조회하기
SELECT title, content, writer FROM board LIMIT 10;
# 11번째 ~ 20번째 행 데이터 조회
SELECT title, content, writer FROM board LIMIT 10, 10;
Author And Source
이 문제에 관하여(DBMS day4), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dbekdms17/DBMS-day4저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)