Learn & Record
[코리아IT아카데미] SQL 문법 MariaDB 데이터베이스, DBMS 종류, SQL, SELECT, 실습, AS, 계산식 본문
[코리아IT아카데미] SQL 문법 MariaDB 데이터베이스, DBMS 종류, SQL, SELECT, 실습, AS, 계산식
Walker_ 2024. 1. 31. 13:441. Database (데이터베이스)
- 컴퓨터에 파일을 저장하는 방법
- 1. 파일 2. 데이터베이스
- 데이터가 적은 경우, 파일이 데이터베이스 보다 빠름
- 데이터가 많은 경우, 데이터베이스가 속도 빠름
2. DBMS 종류
- 1) Oracle
- 가장 먼저 상업용 발표된 데이터베이스, 완성도와 시장 점유율 높음
- 모든 측면에서 탁월한 데이터 베이스.
- 단점 : 가격이 비싸고 배우기 어려움
- 2) SQL Server
- UI가 깔끔하고 다양한 툴이 제공되어 데이터베이스 처음 배울 때 적합
- 단점 : 마이크로소프트에서 만들었다보니, Window OS에서만 사용 가능
- 3) MySQL
- 오픈소스 무료여서 누구나 자유롭게 사용, 다양한 운영체제 지원, 학습용 적합
- 상업용 DBMS에 비해 기능이 떨어지지만, PHP와 궁합이 잘 맞아 웹 게시판 용도 많이 활용
- 2008년에 썬이 MySQL 인수, 2010년에 오라클이 썬 인수, 현재 오라클 소유
- 4) MariaDB
- MySQL의 변형판, 오라클이 MySQL을 보유한데다 오픈 소스에 호의적이지 않음
- 사용자들이 MySQL의 미래에 불안해 하자 원 개발자가 MySQL 소스를 가져와 MariaDB 개발
- 소스가 같다 보니 MySQL과 기능적으로 거의 동일
- 요즘은 MariaDB가 먼저 개발되고 MySQL에 적용돼서 오히려 더 최신 기능 제공
- 기부로 유지되는 무료정책, 기존 MySQL > MariaDB로 교체 추세
- GUI 툴 HeidiSQL 지원
- 5) SQLite
- 파일이 작고 빠르며 독립적
- 신뢰성이 높으며 완전한 기능을 갖춘 SQL 데이터베이스 엔진을 구현하는 C언어 라이브러리
- 대부분의 휴대폰과 컴퓨터에 내장되어 있음
3. 데이터베이스
-1) 데이터베이스
- 저장소에 구분되는 가장 큰 단위로 백업, 복구 등의 기준이 되기도 함
-2) 테이블
- 행과 열로 이루어진 데이터의 집합
-3) SQL
- 데이터와 테이블을 활용하기 위한 구조화된 질의 언어.
문법종류 | 설명 | 명령어 |
데이터 정의어 DDL | 생성, 삭제, 변경 | CREATE(생성) ALTER(수정) DROP(삭제) TRUNCATE(초기화 |
데이터 조작어 DML | 조회, 추가, 삭제, 수정 | INSERT(생성) UPDATE(수정) DELETE(삭제) SELECT(조회) |
데이터 제어어 DCL | 사용 권한을 관리하는데 사용 | GRANT(권한할당) REVOKE(권한해제) |
트랜잭션 제어어 TCL | 작업 단위별로 제어하는데 사용 | COMMIT(실행) ROLLBACK(복구) |
- 관련 자격증 SQLD 자격증
4. SQL 실습
USE `sample`;
CREATE TABLE tCity
(
NAME CHAR(10) PRIMARY KEY,
area INT NULL,
popu INT NULL,
metro CHAR(10) NOT NULL,
region CHAR(6) NOT NULL
);
INSERT INTO tcity VALUES ('서울', 605,974,'y','경기');
INSERT INTO tcity VALUES ('부산', 765,342,'y','경상');
INSERT INTO tcity VALUES ('오산', 42,21,'n','경기');
INSERT INTO tcity VALUES ('청주', 940,83,'n','충청');
INSERT INTO tcity VALUES ('전주', 205,65,'n','전라');
INSERT INTO tcity VALUES ('순천', 910,27,'n','전라');
INSERT INTO tcity VALUES ('춘천', 1116,27,'n','강원');
INSERT INTO tcity VALUES ('홍천', 1819,7,'n','강원');
SELECT * FROM tcity;
CREATE TABLE tStaff
(
name CHAR(15) PRIMARY KEY,
depart CHAR(10) NOT NULL,
gender CHAR(3) NOT NULL,
joindate DATE NOT NULL,
grade CHAR(10) NOT NULL,
salary INT NOT NULL,
score DECIMAL(5,2) NULL
);
INSERT INTO tStaff VALUES ('김유신','총무부','남','2000-2-3','이사',420,88.8);
INSERT INTO tStaff VALUES ('유관순','영업부','여','2009-3-1','과장',380,NULL);
INSERT INTO tStaff VALUES ('안중근','인사과','남','2012-5-5','대리',256,76.5);
INSERT INTO tStaff VALUES ('윤봉길','영업부','남','2015-8-15','과장',350,71.25);
INSERT INTO tStaff VALUES ('강감찬','영업부','남','2018-10-9','사원',320,56.0);
INSERT INTO tStaff VALUES ('정몽주','총무부','남','2010-9-16','대리',370,89.5);
INSERT INTO tStaff VALUES ('허난설헌','인사과','여','2020-1-5','사원',285,44.5);
INSERT INTO tStaff VALUES ('신사임당','영업부','여','2013-6-19','부장',400,92.0);
INSERT INTO tStaff VALUES ('성삼문','영업부','남','2014-6-8','대리',285,87.75);
INSERT INTO tStaff VALUES ('논개','인사과','여','2010-9-16','대리',340,46.2);
INSERT INTO tStaff VALUES ('황진이','인사과','여','2012-5-5','사원',275,52.5);
INSERT INTO tStaff VALUES ('이율곡','총무부','남','2016-3-8','과장',385,65.4);
INSERT INTO tStaff VALUES ('이사부','총무부','남','2000-2-3','대리',375,50);
INSERT INTO tStaff VALUES ('안창호','영업부','남','2015-8-15','사원',370,74.2);
INSERT INTO tStaff VALUES ('을지문덕','영업부','남','2019-6-29','사원',330,NULL);
INSERT INTO tStaff VALUES ('정약용','총무부','남','2020-3-14','과장',380,69.8);
INSERT INTO tStaff VALUES ('홍길동','인사과','남','2019-8-8','차장',380,77.7);
INSERT INTO tStaff VALUES ('대조영','총무부','남','2020-7-7','차장',290,49.9);
INSERT INTO tStaff VALUES ('장보고','인사과','남','2005-4-1','부장',440,58.3);
INSERT INTO tStaff VALUES ('선덕여왕','인사과','여','2017-8-3','사원',315,45.1);
SELECT * FROM tStaff;
5. 기본형식
- 1) SELECT
- 테이블의 데이터를 읽어 출력하는 조회하는 동작
- SELECT문은 SQL 명령 중 사용 빈도가 압도적으로 높음
- 동작은 단순하지만 옵션이 굉장히 많음
- SELECT 필드목록 FROM 테이블명 (* 기호 = 모든)
- SELECT 필드목록 FROM 테이블명 [ WHERE 조건 ] [ ORDER BY 정렬기준 ]
- 2) 필드목록
- SELECT * 명령은 테이블 전체를 출력할 때 편리.
- 필드목록의 *는 모든 필드를 의미하며 all 또는 모두라고도 읽음
- 이름을 몰라도 조회가 가능해서 간편하지만, 데이터가 많으면 느려지고 장황
- 3) 별명 AS
- 필드명 AS "별명"
- 필드명과 별명 사이에 전치사 AS를 넣음. 공백이나 특수 문자를 표현 할 수 있어 " "로 감싸되 평이하면 생략 가능
- 4) 연습문제
SELECT NAME AS "도시", popu AS "인구(만명)", region AS "지역" FROM tcity;
- 5) 계산값의 출력
- 필드 목록에 계산식을 사용하면 테이블에 저장된 값을 가공하여 출력
SELECT NAME, popu * 10000 AS "인구(명)" FROM tcity;
- 계산식을 사용하면 테이블에 없는 정보도 만들어서 표현 가능
SELECT NAME, AREA, popu, popu * 10000 / AREA AS "인구밀도" FROM tcity;
- 테이블과 상관없는 단순한 계산식도 출력 가능
SELECT 60 * 60 * 24 AS "하루" FROM DUAL;
'Dev > SQL' 카테고리의 다른 글
SQL 문법 MariaDB (COUNT, 집계함수, SUM, AVG, MIN, MAX, GROUP BY, HAVING, 연습문제) (2) | 2024.02.05 |
---|---|
[코리아IT아카데미] SQL 문법 MariaDB (ORDER BY, 데이터베이스 백업, DISTINCT, ALL, LIMIT, OFFSET FETCH) (2) | 2024.02.02 |
[코리아IT아카데미] SQL 문법 MariaDB (비교연산자, 논리연산자, LIKE, IN, IS, BETWEEN) (2) | 2024.02.01 |
[코리아IT아카데미] MariaDB HeidiSQL 설치 & 실행 (0) | 2024.01.26 |
[코리아IT아카데미] MariaDB 설치 (0) | 2024.01.26 |