츄르사려고 코딩하는 코집사입니다.
1. SQL(Sturctured Query Language)
- Database에 있는 정보를 꺼내오거나 삭제, 수정 등을 할 수 있ㄷ로ㅗㄱ 지원하는 언어
- 모든 DBMS(DataBase Management System)에서 사용 가능하다.
- SQL에서 대소문자의 구분은 하지 않는다.
- 예를 들어, Insert, insert, INSERt 다 가능하다.
- 데이터의 대소문자는 구분을 한다.(당연한 소리!)
2. DBMS(DataBase Management System)
- 데이터베이스를 관리해주는 시스템
3. table
- 정보를 담을 수 있는 공간, 표라고 할 수 있음
4. varchar(16)
- 여기서 16은 문자열의 길이를 뜻한다.
5. 스키마
- 데이터베이스의 테이블에 저장될 데이터의 구조와 형식을 정의
6. 제약조건
- auto_increment : 자동으로 증가
- current_timestamp : 현재 시간
- NOT NULL : NULL값을 가지지 못한다.
7. SQL을 이용한 table 생성
CREATE TABLE YONGKUS (
idx int not null auto_increment,
id varchar(16) not null,
name varchar(20),
pwd varchar(16),
email varchar(20),
emaildomain varchar(50),
date timestamp not null default current_timestamp,
primary key (idx)
);
8. DML(Data Manipulation Language)
1) SQL 문 종류
- insert(C) : DB 객체에 데이터 입력
- select(R) : DB 객체에서 데이터 조회
- update(U) : DB 객체에 데이터 수정
- delete(D) : DB 객체에 데이터 삭제
2) INSERT(C)
- INSERT INTO table_name
INSERT INTO table
VALUES(a,b,c,d);
- INSERT INTO table_name(a1, b1, c1, d1)
- 아래와 같이 하면 a1 column에 a가 들어가고, b1 column에 b, c1 column에 c, d1 column에 d가 들어간다.
INSERT INTO table_name(a1, b1, c1, d1)
values(a,b,c,d)
3) 생략이 가능한 필드(field)
- NULL이 허용된 column
- DEFAULT가 설정된 column
- AUTO INCREMENT가 설정된 column
4) UPDATE(U)
- UPDATE table_name WHERE conditions;
UPDATE table_name
SET a1=b, b1=c
WHERE conditions;
//WHERE절이 없으면 모든 데이터가 바뀐다.
//id가 1234인 데이터에서 name은 Yongku로 age는 27로 바꿔라
UPDATE Yongkus
SET name='Yongku', age='27'
WHERE id='1234'
5) DELETE(D)
- DELETE from table_name WHERE conditions;
DELETE from table_name
WHERE conditions;
//이름이 1234인 사람을 지워라
DELETE from Yongkus
WHERE name='1234'
6) SELECT(R)
- SELECT * | { [ ALL | DISTINCT ] column | expression [alias], ...} FROM table_name;
SELECT CLAUSE | 설명 |
* | 테이블에서 모든 열 선택 |
ALL | 테이블에서 선택된 모든 행 반환. ALL이 DEFAULT다 생략가능 |
DISTINCT | 선택된 모든 행에서 중복된 행 제거 |
column | 테이블에서 지정된 열 선택 |
expression | 연산자 및 SQL 함수의 조합으로 사용 |
alias | 별칭 |
- 중복없이 조회
//YONGKUS 테이블에서 부서를 중복없이 조회
SELECT distinct 부서
FROM YONGKUS
- alias 설정
//name 열에는 이름, age에는 나이, value에는 가 격으로 alias 설정
SELECT name 이름, age as 나이, value "가 격"
FROM YONGKUS
7) SELECT 사칙연산
//이름, 나이, 가격, 연봉(value*12)
SELECT name 이름, age 나이, value 가격, value*12 연봉
from YONGKUS;
- NULL이 있을 경우에는 IFNULL(열, 0) 사용 -> 열에 NULL이 있을 경우에는 0으로 대체한다.
8) SELECT 조건문
- SELECT FROM table_name where conditions and | or conditions;
- and는 둘 다 만족
- or은 하나만 만족
- null은 equal 비교를 할 수 없다. 그렇기에 is null / is not null 을 사용해야 한다.
- where에서 부서번호가 1,2,3인 경우 조회하는 query 문
//사원번호가 1,2,3이 있는 데이터 조회
SELECT idx 사원번호
FROM YONGKUS
where idx in (1,2,3);
//사원번호가 1,2,3이 없는 것 조회
SELECT idx 사원번호
FROM YONGKUS
where idx not in (1,2,3);
9) SELECT BETWEEN 문
// value가 1000이상 3000이하인 데이터 조회
SELECT value
FROM YONGKUS
WHERE value between 1000
and 3000;
10) SELECT LIKE 문
- 이름에 a가 포함된 데이터 조회
//%를 사용하여 와일드카드 사용
//%a% a앞에 뭐가 나와도 되고, 뒤에 뭐가 나와도 된다.
//%a a로 끝나는 이름 조회
// a% a로 시작하는 이름 조회
select name 이름
from YONGKUS
where name like '%a%';
11) 와일드카드 %와 _ 차이
- %는 앞에든 뒤에든 몇 개가 나와도 상관없는데, _(언더바)는 글자수에 따라 다르다.
- 이름 중에 elith, cle가 있을 때, e%를 하게 되면 elith가 나오고, __e를 하면 cle가 나온다.
12) SELECT 문 ORDER BY
- 데이터를 오름차순, 내림차순으로 정렬
- DEFAULT는 ASC(오름차순)
- 내림차순은 DESC
//이름, 나이, 가격, 연봉(value*12)
SELECT name 이름, age 나이, value 가격, value*12 연봉
from YONGKUS
order by age asc;
- 아래의 코드는 age로 내림차순 정렬을 하고, 정렬한 상태에서 value를 오름차순(default)로 또 정렬을 한다.
//이름, 나이, 가격, 연봉(value*12)
SELECT name 이름, age 나이, value 가격, value*12 연봉
from YONGKUS
order by age desc value;
9. NULL 연산
1) NOT
TURE | FALSE | NULL |
FALSE | TRUE | NULL |
2) AND
TRUE | FALSE | NULL | |
TRUE | TRUE | FALSE | NULL |
FALSE | FALSE | FALSE | FALSE |
NULL | NULL | FALSE | NULL |
3) OR
TRUE | FALSE | NULL | |
TRUE | TRUE | TRUE | TRUE |
FALSE | TRUE | FALSE | NULL |
NULL | TRUE | NULL | NULL |
10.
'IT > DB' 카테고리의 다른 글
엑셀(Excel)에서 2개 이상의 열을 기준으로 중복값 찾기 (0) | 2022.04.07 |
---|---|
SQL WHERE 1=1과 1=2 사용하는 이유 (0) | 2022.02.10 |
데이터베이스(DB) JOIN(INNER JOIN / LEFT JOIN / RIGHT JOIN / OUTER JOIN) 정리 (0) | 2021.10.25 |
데이터베이스(DB) 서브쿼리(SubQuery) 정리 (1) | 2021.04.06 |
데이터베이스(DB) JOIN 정리 (0) | 2021.04.06 |
MySQL 데이터베이스 정리 (0) | 2021.04.06 |
JDBC(Java DataBase Connectivity) INSERT 기초 예제 (0) | 2021.03.11 |
JDBC(Java DataBase Connectivity) 기초 맛보기 (0) | 2021.03.11 |
최근댓글