지구정복

[SQL] 11/27 | 데이터베이스 개념, mariaDB설치, 기본명령어(show, use, desc), select문(alias, 연산, distinct, where, 날짜비교, 아스키코드비교) 본문

데이터 엔지니어링 정복/SQL

[SQL] 11/27 | 데이터베이스 개념, mariaDB설치, 기본명령어(show, use, desc), select문(alias, 연산, distinct, where, 날짜비교, 아스키코드비교)

eeaarrtthh 2020. 11. 30. 00:53
728x90
반응형

주로 사용하는 데이터베이스는 오라클, MySQL 서버 등이 있다.

 

데이터베이스는 데이터를 지속적으로 관리하고, 보호하는 것이 목적이다.

 

DBMS는 데이터를 안정적으로 보관할 수 있는 다양한 기능을 제공한다.( EX: 백업 기능)

 

DBMS - 관리자(DBA)의 기본덕목은 '백업'

대형 DB - IBM DB2(유닉스) / 오라클 / MS MSSQL
중형 DB - 오라클 MySQL / MariaDB(오픈소스)
소형 DB - mSQL / sqlite


데이터베이스를 배운다는 것은 두 가지이다.
1. SQL(Structured Query Lang.) 
2. 관리방법 - DB튜닝(최적화)

 

 

 

1.2 테이블과 레코드

RDBMS에서 데이터 를 저장하는 장소를 테이블(table) 이라고 한다.

테이블은 어떤 데이터를 저장하며 그 데이터의 길이는 최대 몇 글자인지 등의 정보를 갖고 있는데,

이처럼 테이블의 구조와 관련된 정보를 테이블 스키마(Schema)라고 부른다.

즉, 테이블 컬럼(행)의 정의이다.
테이블의 구조는 각각의 정보를 저장하는 칼럼과 칼럼 타입 그리고 각 칼럼의 길이로 구성된다.

 

 

 

maria DB 설치하기

먼저 윈도우 최신 업데이트하기

 

mariadb.org/download/

 

Download MariaDB Server - MariaDB.org

REST API MariaDB Repositories Release Schedule Reporting Bugs […]

mariadb.org

위 사이트에서 아래와 같은 속성으로 다운로드한다. (윈도우 64비트 기준)

 

넥스트 누르다가 저장소 지정하고 아래화면나오면 아래와 같이 체크한다.

패스워드는 마스터관리자 즉 사용자의 비밀번호이므로 까먹지 않도록한다.

필자는 !123456

다음은 서비스 이름을 설정하는 곳 

포트 사용중이면 다른 값으로 줘도 된다. 필자도 사용중이어서 3307로 함.

 

기본적으로 데이터베이스는 운영체제와 연결되어있어서 자동적으로 실행이되고 자동적으로 꺼진다.

이를 확인하려면 작업관리자 또는 서비스에서 mariadb 서비스항목을 찾아본다.

수동적으로 하려면 서비스창에서 오른쪽클릭해서 일시중지 또는 시작하면 된다.

 

 

클라이언트   ---SQL--->  운영체제에서 실행되고있는 데이터베이스 서버

 

이러한 구조를 클라이언트 서버 구조라고 한다. C/S

 

클라이언트는 데이터베이스 서버를 동작시키는 주체로서 mariaDB, 자바프로그램 등이 된다.

 

이제 mariadb를 실행시켜보자. 시작프로그램에 아래 프로그램을 실행한다.

 

아래 환경값이 있어야된다.

 

아래와 같이 명령어를 입력한다.

-u는 유저, root는 사용자

그리고 아까 설정한 비밀번호 입력

 

또 mariadb에 접속하는 방법은 시작프로그램에서 아래 프로그램을 실행한다.

이 프로그램은 곧바로 root계정으로 접속할 수 있도록 해준다.

바로 비밀번호 입력하라는 창이 뜬다.

 

또 다른 방법은 HeidiSQL을 실행하고 신규를 눌러서 아무이름을 만들고 사용자는 root, 비밀번호는 root의 비밀번호를 입력하면 접속이 가능하다.

아래와 같이 접속이 완료된다.

 

일단은 연습을위해 프롬프트 창으로 접속해서 공부를 할 것이다.

 

 

데이터베이스의 구조는

 

데이터베이스

    테이블

        레코드/컬럼

    테이블

 

의 구조를 가진다. 대소문자는 신경쓰지 않는다.

세미클론을 써주어야 실행이되고 쓰지 않으면 줄바꿈이 된다.

-데이터베이스 명령어

1. 데이터베이스 목록보기

 

2. 특정 데이터베이스 사용하기 및 특정 데이터베이스의 테이블 목록 보기

 

3. 특정 테이블 정보보기(약어 desc)

 

 

-SQL문 사용하기

SQL

DML - Data Manipulation Lang. 조작
	select	- 데이터 검색
	insert	- 데이터 삽입
	update	- 데이터 수정
	delete	- 데이터 삭제

DDL - Data Definition Lang. 정의
	Create	- 생성
	Alter	- 수정
	Drop	- 삭제
	Rename	- 이름변경
	Truncate	- 삭제

DCL - Data Control Lang. 제어

TCL - Transaction(Lock) Control Lang. 

 

이제 sql문을 조작하기 위해 테이블을 만들고 샘플데이터를 삽입한다.

붙여넣기 안될 때는 아래 사진처럼 콘솔창에서 오른쪽클릭하고 아래처럼 따라한다.

샘플데이터는 아래 파일을 참고

3.부서_사원_mariadb용_2010년.sql
0.00MB

 

샘플데이터의 emP, dept, salgrade 테이블의 insert문을 모두 복사해서 붙여넣기

 

이제 테이블이 제대로 만들어졌는지 확인한다.

 

 

SELECT

SELECT *
FROM DEPT;


SELECT 컬럼명
FROM 테이블명;

 

-ALIAS 별칭

컬럼명 AS 별칭

 

-산술연산

-NULL

NULL 은 0과 다르다. 피연산자로 들어가면 결과는 무조건 NULL이다.

 

 

-중복데이터 제거

DISTINCT 사용하면 SELECT 결과에서 중복되는 데이터를 하나만 출력한다.

 

 

-검색 행 제한 - WHERE

SELECT 컬럼명
FROM 테이블명
WHERE 컬럼 비교연산자 값 AND/OR 컬럼 비교연산자 값



비교연산자: =, !=, >=, <=, <
논리연산자: AND, OR, !

부서번호가 20번인 부서이름 출력

 

급여가 1000이상 사원에 대한 사원번호, 사원이름, 급여, 부서번호를 출력하라

 

사원이름이 KING인 사원에 대한 사원번호, 사원이름, 부서번호를 출력하라.

 

입사일이 2011-09-08인 사원에 대한 사원번호, 사원이름, 부서번호를 출력하라.

 

사원이름이 B이상으로 시작하는 사원에 대한 사원번호, 사원이름, 부서번호, 입사일자를 출력하라.

(아스키 코드로 비교한다.)

 

급여가 1000이상이고 2000이하인 사원에 대한 사원번호, 사원이름, 급여, 부서번호를 출력하라.

 

2011년에 입사한 사원의 사원번호, 사원이름, 입사일자, 부서번호를 출력하라.

728x90
반응형
Comments