1. DATABASE
DB
- 데이터를 다양한 방법으로 관리할 수 있도록 하는 저장소
- 여러 사람이 공유하여 사용할 목적으로, 통합하여 관리되는 데이터의 집합
- 자료 항목의 중복을 없애고, 자료를 구조화 하여 저장해서 검색과 겡신의 효율을 높임
DBMS ( Database Mangement System )
- 데이터 베이스를 관리하기 위한 프로그램이다.
- 종류는 다양하며 MySQL, Oracle, PostgreSQL, SQLite ...
SQL ( Structed Query Language )
- DB에 데이터를 요청하는 언어로 인간과 데이터 베이스간의 언어 체계
- SQL 문법은 단순하고 배우기 쉽고 ANSI, ISO 표준이 존재함
- 각 DBMS마다 개별적인 방언(언어체계)를 가지지만, 핵심 문법은 유사하다.
MySQL
- 오픈 소스의 RDBMS로 가장 많이 사용되는 DBMS 중 하나이다.
- Clinet단에서는 workbench를 통해서 서버와 연결해 서로 데이터를 주고받는다.
- 원래는 다른 하드웨어 상에 서버와 클라이언트가 존재하지만, 실습에서는 같은 PC를 통해 진행함.
DB의 주요 구성 요소
Database에서 구분되는 주요 구성 요소는 아래와 같다.
Schema | 주로 application 마다 1개씩 , 다수도 가능 |
Table | 각 application의 세부 기능 마다 정의 |
Column | 각 기능에 필요한 요소들 |
Row | 데이터 1건 (Record) |
DB의 데이터 타입
칼럼에 어떠한 형태의 자료를 저장할지를 미리 결정한 것
(1) 숫자(Numeric) - 정수형, 실수형
(2) 문자(Character) - 고정 문자형, 변동 문자형
(3) 날짜/시간(Date/Time) - 날짜형, 시간형, 날짜시간형
https://dev.mysql.com/doc/refman/8.0/data-types.html
테이블 생성
CREATE TABLE table_name
{
column_name1 data_type1 options,
column_naem2 data_type2 options,
..
}
워크벤치를 통해 명령어를 따로 입력할 필요 없이 UI를 이용해서 간편하게 테이블을 만들 수 있다.
생성 시 옵션 정보
PK | 테이블 당 1개만 존재하고, 유니크한 값으로 Not null 이어야 한다. |
NN | Not null 형태를 반드시 지켜야 함 |
AI | 0부터 시작해서 숫자가 증가함 |
UQ | 유니크 한 값 ( null값도 가능) |
UN | unsigned |
Default | 디폴트 값 |
2. SQL의 명령어
1. INSERT : 데이터 추가
기존 테이블에 새로운 Row를 추가한다. 이 때 row와 colume의 수가 일치해야함.
column을 생략하면 테이블에 모든 column에 대해서 데이터를 추가하는 것으로 받아들임
여러줄의 작성이 가능하고 세미클론을 통해서 명령어의 단위를 분할한다.
INSERT INTO table_name ( column1, column2, column3 , ... )
VALUES (value1, value2, value3, ...);
2. SELECT : 데이터 조회
SELECT column1, column2, ...
FROM table_name;
해당하는 테이블에서 SELECT로 선택되어진 열에 대해서 콘솔창에 출력을 하게 된다.
SELECT문에 Astrisk를 사용하여 전체 컬럼 조회가 가능하다 ( SELECT * )
3. 데이터 필터링
(1) WHERE
- 원하는 조건으로 데이터(ROW)를 필터링 한다.
- selcet문 외에 다른 문법에서도 함께 사용가능하다.
SELECT colum1, colum2, ...
FROM table_name
WHERE condition;
이 떄 조건의 예시로는 WHERE뒤 문장이 다른 언어들의 문법과 마찬가지로 True/False값을 도출해 사용된다.
SELECT *
FROM Customors
WHERE order_num = 20007;
(2) 비교 연산자
WHERE 절에서는 비교 연산자들을 통해서 값의 True/False를 통해 데이터의 선택적 조회가 가능하다.
같음 | = | 같지 않음 | <> |
큼 | > | 작음 | < |
크거나 같음 | >= | 작거나 같음 | <= |
SELECT *
FROM Customors
WHERE order_num > 20007;
(3) AND
주어진 모든 조건을 모두 만족시키는 데이터를 조회하는 필터링 연산자 (동시 만족)
이름이 Han이면서, Ulsan에 거주하는 고객을 조회하는 경우는 다음과 같다.
SELECT *
FROM Customers
WHERE cust_name = 'HAN' AND cust_state = 'Ulsan'
(4) OR
주어진 조건 중 하나 이상 만족하는 경우 모든 데이터를 조회하는 필터링 연산자
거주지역이 부산이거나, 울산인 고객의 정보를 모두 조회하는 경우는 다음과 같다.
SELECT *
FROM shop.Customers
WHERE cust_state = 'Ulsan' OR cust_state = 'Busan';
- 코드프레소 Java 웹 개발 체험단 활동 중
- 코드프레소 웹개발 트랙의 "처음 시작하는 SQL 프로그래밍" 내용입니다.
- 코드프레소 URL: https://www.codepresso.kr/
'EXTERNAL ACTIVITY > Code Presso -웹개발 트랙 체험단-' 카테고리의 다른 글
<코드 프레소 웹 개발 트랙> 처음 시작하는 SQL 프로그래밍 [3] (0) | 2022.02.22 |
---|---|
<코드 프레소 웹 개발 트랙> 처음 시작하는 SQL 프로그래밍 [2] (0) | 2022.02.22 |
. (0) | 2022.01.23 |
<코드 프레소 웹개발 트랙> SW 유지보수성 향상을 위한 Clean Code [2] (0) | 2022.01.22 |
<코드 프레소 웹개발 트랙> SW 유지보수성 향상을 위한 Clean Code (0) | 2022.01.22 |