데이터 입력
INSERT INTO 테이블이름 ( 필드명1, 필드명2 ... ) VALUES (필드값1, 핃드값2 ...) ;
INSERT INTO 테이블이름 VALUES (필드값1, 필드값2...) ;
데이터 삭제
DELETE FROM 테이블이름 [WHRER 조건] ;
데이터 수정
UPDATE 테이블이름 SET 필드명=필드값 [WHERE 조건] ;
UPDATE 테이블이름 SET 필드명=산술식 [WHERE 조건] ;
데이터 검색
1. 기본 사용
SELECT [destinct] 검색할 필드명 FROM 테이블 이름 [ WHERE 검색 조건]
[ ORDER BY 필드명 [asc or desc] ] [GROUP BY 필드명] [HAVING 검색조건] ;
2. 사용예제
▷ 기본적 검색
SELECT name FROM member WHERE age="20" ;
* member 테이블에서 age가 20인 데이터의 name을 출력한다.
SELECT * FROM member ;
* member 테이블의 모든 데이터를 출력한다.
▷ 결과 레코드의 중복 제거
SELECT distinct name FROM member ;
* member 테이블의 name의 모든 중복된 행을 제거하고 출력.
* Null 값은 모두 중복된 값으로 인식하기 때문에 주의!
▷ 조건 검색
SELECT name FROM member WHRRE age >= 20 AND gender = "남자" ;
* member 테이블에서 age가 20 이상이고 gender가 남자인 name 데이터 출력.
* WHERE 절에는 비교연산자 ( >, >=, <, <=, = )와 논리연산자 ( and, or, not ) 사용 가능.
▷ 검색 결과 정렬
SELECT name FROM member ORDER BY age desc ;
* member 테이블의 name 데이터를 age 값에 따라 내림차순으로 출력.
* asc : 오름차순(기본값) , desc : 내림차순
▷ 검색 결과에 대한 산술 계산 및 문자열 처리
SELECT name, '님 안녕하세요.' FROM member ;
* member 테이블의 name에 "님 안녕하세요" 문자열을 붙여서 출력. -> 예 : name="홍길동"일 때, 홍길동님 인녕하세요 출력.
* SELECT 문 뒤에 콤마(,)를 사용해서 계속 검색할 데이터를 붙일 수 있다.
SELECT name, age+1 FROM member WHERE age="20" ;
* member 테이블의 age가 20인 name과 원래 age 값에 1을 더한 데이터를 출력.
▷ GROUP FUNCTiON (그룹함수)이용
SELECT count(*) FROM member WHERE age="20" ;
* member 테이블에서 age가 20인 레코드 결과를 출력.
* count(필드명) : 조건은 만족하는 레코드 개수.
sum(필드명) : 해당 필드의 합
avg(필드명) : 해당 필드의 평균 값
min(필드명) : 해당 필드의 최소 값
max(필드명) : 해당 필드의 최대 값.
▷ GROUP BY 이용
SELECT name max(age), min(age), avg(age) FROM member GROUP BY gender ;
* member 테이블의 name과 각각 age의 최소값, 최대값, 평균값을 gender별로 출력한다.
▷ HAVING 이용
SELECT name max(age), min(age), avg(age) FROM member GROUP BY gender HAVING gender="남자" ;
* member 테이블에서 name과 각 각 age의 최소값, 최대값, 평균값을 gender별로 gender가 남자인 결과 값만 출력.
* HAVING은 GROUP BY에ㅓ 지정한 필드에 대한 검색 조건문.
▷ between , in, not in, 이용
SELECT name FROM member WHERE age between 20 ans 25 ;
* member 테이블에서 age가 20에서 25인 name을 출력.
* age >= 20 ans age <=25 와 같다.
SELECT name FROM member WHERE age in ('20', '25');
* member 테이블에서 age가 20, 25인 name을 출력.
SELECT name FROM WHERE age not in('20' ,'25') ;
* member 테이블에서 age가 20, 25를 제외한 name 출력.
▷ like 이용
SELECT name FROM member WHERE name like '%길%' ;
* member 테이블에서 name 값 중 가운데 글자가 '길'인 name 출력.
* '%길' 이면 길로 끝나는 레코드, '홍%'이면 홀으로 시작하는 레코드를 출력.
▷ null 값을 이용
SELECT name FROM member WHERE age is null ;
* member 테이블에서 age 값이 Null (값이 없는) name 출력
'DataBase' 카테고리의 다른 글
SQL Server와 PostgreSQL에서 문자열 비교 차이점 (0) | 2023.08.03 |
---|---|
기초 : 테이블 (0) | 2016.11.09 |
기초 : 데이터베이스 (0) | 2016.11.09 |
기초 : 정규화 Normalization, 이상 Anomaly (0) | 2016.10.30 |
데이터베이스 : 정의, 구조, 무결성 (0) | 2016.10.30 |