Another Brain

17일차(6월 10일)_ MySQL & Oracle 프로그램 설치, 기본 본문

P/SQL

17일차(6월 10일)_ MySQL & Oracle 프로그램 설치, 기본

뉸누나ㄴ나 2021. 6. 10. 12:42

## data(자료)  VS  정보(inoformation)
  >> fact                 >> data 가공
                             >> 의사결정시 사용

##DataBase
>> data 저장소(영속성, presistence => 프로그램이 종료되어도 사라지지 않아야 함.)

-- DBMS(DataBase Management System)
>> 계층형(HDBMS)
>> 네트워크형(NDBMS)
>> 관계형(RDBMS)
>> 객체관계형(ORDBMS)

-- 관계형(RDBMS)
>> Oracle, DB2, MSSQL, MySQL, ....

-- SQL(Structured Query Language)
>> ANSI 표준
>> RDBMS
>> 분류 : DDL, DML(DQL), DCL, TCL
>> DAO(Data Access Object) : Table, View, Sequence, Index, Trigger 등
>> DDL : 객체 생성(create), 변경(alter), 삭제(drop)
>> DML(DQL) : 레코드 추가(insert)-C, 조회(select)-R, 변경(update)-U, 삭제(delete)-D
>> DQL : 조회(select)
>> DCL : 사용자 생성, 변경, 삭제, 권한 부여, 제거 등등 데이터베이스 관리
>> TCL : 트랜젝션 제어(Transaction, 한꺼번에 모두 수행되어야 할 일련의 연산들)

 

 


## MySQL Download
>> Enterprise Edition (라이센스)
>> Community Edition (학습용)

## Oracle Download
>> Enterprise Edition (라이센스)
>> Express Edition (학습용)

>> Version
-- 8i, 9i
-- 10g, 11g(현재 실무)
-- 12c.. 18c

>> root 계정
>> scott 계정

## 프로그램 설치
>> 기본 폴더 : 64bit C:\Program Files\프로그램명
>> 기본 폴더 : 32bit C:\Program Files(x86)\프로그램명

## 프로그램 실행
>> 아이콘 클릭

>> 명령창 > 입력실행.exe / 실행.bat => 환경설정 path 기반 순서대로 검색 실행

>> 오류발생
'aaa.exe'은(는) 내부 또는 외부명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다.
1. 해당 파일이 존재하지 않음
2. path 설정이 안되어있음 => 제어판 > 시스템 > 고급설정 > system 변수 path 추가 => 명령창 재구동

 

 

## MySQL
1. 서버 계정 접속 :
dos > mysql -u 아이디 -p비밀번호 
또는 

dos > mysql -u 아이디 -p
Enter Password : 비밀번호 (보안상 권장)

 

접속 후
mysql>

2. database 생성
mysql > create database mms_db default character set utf8 ;

>> 한글 깨지지 않게 하기 위해 UTF-8 설정


3. 사용할 database 변경(DataBase changed)
mysql > use mms_db;

4. 현재 계정의 테이블 목록 조회
mysql > show tables;

-- 사용자 계정 생성
root 권한 : root 계정 접속

-- 사용자 계정 삭제
mysql > drop user 유저이름@localhost:

-- 사용자 계정 생성
mysql > create user 유저이름@localhost identified by 유저비밀번호;

-- 사용자 권한 부여
mysql > grant all privileges on *.* to 유저이름@localhost;

## MySQL server
1. cui : 명령창 >
2. gui : workbench

>> Connection Name : 보통 유저 네임과 동일하게 함
>> port는 1024까지는 이미 예약되어 있음
>> Username : 유저네임
>> Default Schema : 매번 접속할 데이터를 넣어주면 된다.

>> Test Connection 시; 
Save Password in vault는 비밀번호 기억기능.

Oracle에는 IF EXITS 명령어는 없는 명령어이다.

 


## Oracle 설치

예민한 친구니까 조심해서 설치하기
-- 유의사항 : 계정명 영문, 공백불가
-- C :\ 드라이브 기본폴더 설치
-- 설치 후 오라클 path 자동 추가 : 맨앞에 추가 시켜줌

## Oracle Server 실행
1. cui : 명령창 > sqlplus 아이디/admin007 or Run SQL Command Line 실행
2. gui : SQLDeveloper(oracle 제공), toad(상용), orange(상용)

## SQL*Plus 명령어
-- show all

-- set linesize 숫자 : 라인크기 설정

-- set pagesize 숫자 : 페이지 크기 설정

-- show user : 현재 연결 계정 사용자 아이디 조회

-- cl scr(clear screen) : 콘솔화면 지우기

-- 종료 : exit or quit 

-- discon : 연결해제(sqlplus 종료 아님)

 

-- conn id/pw : 재연결

## Oracle 설치 기본 사용자 계정
-- sys(관리자 계정) 
-- system(관리자 계정) : 설치시 비밀번호 입력
-- hr(테스트 계정, HumanResource)

 : 10g 이후 테스트를 위한 사용자 계정(계정 잠금되어 있어 사용하려면 임의로 계정 해제 해야함)
-- scott/tiger : 8i, 9i(계정 사용가능)

## Oracle 사용자 계정 생성, 변경, 권한 : DCL
-- system 계정 연결

-- 계정 잠금 해제 : hr 계정
SQL > alter user hr account unlock; << hr 계정 잠금 해제

-- 계정 암호 변경
SQL > alter user hr identified by new; << hr 계정의 비밀번호를 new로 바꾼다.

-- 계정 생성
SQL > create user 계정이름 identified by new; 

-- 권한 부여
SQL > grant connect, resource, create view to 계정이름;

>> create view가 없으면 view를 만들 수 없음

-- 계정 삭제
SQL > drop user 계정이름 cascade; (계정으로 만든 테이블들을 모두 삭제해주는 것 csacade)

-- 계정 잠금
SQL > alter user hr account lock;  << hr 계정 잠금

## demo schema
-- 계정이름
>> C:\oraclexe\app\oracle\product\11.2.0\server\rdbms\admin

-- hr 
>> C:\oraclexe\app\oracle\product\11.2.0\server\demo\schema\human_resources

## sql script file 실행방법
-- 절대경로로 지정해서 실행하는 방법 
SQL > start c:\dir\dir\script-file.sql(절대경로)

-- 상대경로로 지정해서 실행하는 방법(현재폴더로 sqlplus 구동한 콘솔창 폴더)
SQL > start script-file.sql(상대경로)
SQL > @script-file.sql(상대경로)

## SQL 명령어
-- 전체 테이블 목록 조회
SQL > select * from tab;

-- 테이블의 구조(schema) 조회
-- 부서 : DEPARTMENTS
-- 직원 : EMPLOYEES

SQL > desc 테이블명;
SQL > desc DEPARTMENTS;
SQL > desc EMPLOYEES;

## SQL 구문
-- 대소문자 구분하지 않음
>> 기본적으로 DB에서 자동으로 대문자 식별자(테이블명, 컬럼명, 제약명 등) 처리
>> 길이 제한 : 30자리
>> 모두대문자_모두대문자
>> 예약어 식별자로 사용불가
-- select, alter, start 등등

## 데이터 타입
-- 숫자
>> 정수 number, number(길이)
>> 실수 number(n(전체길이), m(소수이하길이))

-- 문자열(반드시 길이를 넣어줘야함)
>> 고정문자열 char(길이)
>> 가변문자열 varchar2(길이)

-- 날짜
>> 문자열 : 날짜형식고정, 날짜연산수행하지 않는 경우
>> 날짜타입 : date type 
=> 날짜형식이 가변적인 경우, 날짜 연산을 수행하는 경우
=> 길이 지정하지 않아야 함
=> 날짜정보와 시간정보가 담겨있음

## 데이터 표현
-- 문자, 날짜 : 표현시 : '문자열', '2016-06-10'
-- 숫자 : 1234, 123.5678
-- 별명(ALIAS) : 테이블, 컬럼에 대한 별명지정시 "별명" 

## DML(DQL) : 레코드 C추가(insert), R조회(select), U변경(update), D삭제(delete)

## DQL : 조회(select)

1. 필수형식
SELECT * |(또는을 의미하는 기호'|') 컬럼명1, 컬럼명xxx | 컬럼명 1 "별명", 컬럼명xxx "별명" FROM XXX; 
| 수식 | 함수명() | (SUB-QUERY) FROM 테이블명;

EX) -- 사번, 이름, 급여 컬럼 조회
SQL> SELECT EMPNO, ENAME, SAL FROM EMP;

-- 사번, 이름, 급여 컬럼 조회 별명을 지정해서 조회해보세요.
SQL> SELECT EMPNO "사번", ENAME "이름", SAL "급여" FROM EMP;

-- 컬럼 별명 : 
>> "대소문자 구분"
>> "공백 가능"
>> "특수문자"

>> 별명에 "" 생략 가능(대문자, 공백없고, 특수문자 없는 경우)
ex) SELECT EMPNO EmployeeNO, ENAME Name, SAL Salary FROM EMP;
SELECT EMPNO EMPLOYEENO, ENAME NAME, SAL SALARY FROM EMP;
ORA-00923 코드 번호로 오류를 찾아낼 수 있다.

-- DUAL 
>> 오라클 SELECT 필수형식을 위한 DUMMY 테이블;
>> 연산식 테스트, 함수 테스트 등

2. 전체형식
-- SELECT ~~

FROM 테이블명1 [,테이블명xxx, (SUB-QUERY)]

WHERE 조건식1 [AND | OR | NOT] 조건식xxx

GROUP BY 그룹핑할 대상 컬럼명 [,그룹핑할 대상 컬럼명xxx]

HAVING 그룹핑결과에 대한 조건식

ORDER BY 정렬할컬럼명 정렬방법, 정렬할컬럼명xxx 정렬방법;

-- 정렬항목 : 컬럼명, SELECT 항목에 대한 인덱스번호, 별명, 수식

-- 정렬방법 : 올림차순(ASC, 기본으로 생략도 가능), 내림차순(DESC)

-- 정렬기준 : 
>> 숫자, 날짜 (작은것 => 큰 것 EX) 01234,,,,, 1900,1901,1902)
>> 영문 : ABC...
>> 한글 : 가나다...

 


TIP

## Window CMD 명령어

dir : 현재 폴더의 파일, 폴더목록 조회
cd : 폴더 이동
copy : 파일 복사
move : 파일 이동
type : 텍스트 파일 보기
ipconfig : 내 컴퓨터가 사용하는 IP정보 (보통 공유기 할당 IP)
systeminfo : 내 컴퓨터 모든 정보 (메모리, 프로세서, 하드웨어 등)

 

Query 쿼리 = 쿼리문 = SQL구문

 

## ERROR 1064 (42000): You have an error in your SQL syntax;
: '  ' 안의 내용 오타확인하기

- error 코드로 검색하면 어떤 내용의 오류인지 알 수 있다.

 

## MySQL Workbanch 단축키

Ctrl + Enter : 커서가 위치하는 Query 실행 

 

##  .sql 파일

맨 앞에 rem(Remark)를 적으면 그 줄의 내용은 적용되지 않는다.

 

## DB 관련 자격증
>> 국내
정보처리기사(공공기관 개발) => 기술사

한국데이터산업진흥원 https://www.dataq.or.kr/www/main.do 

: SQLD/SQLP, ADSP/ADP, DAP/DASP... (Oracle/MSSQL)

 

>> 국제
Oracle : OCP, OCM

 

'P > SQL' 카테고리의 다른 글

SQL mission 2  (0) 2021.06.16
21일차(6월 16일)_ TCL, JOIN, 집합연산자, VIWE  (0) 2021.06.16
20일차(6월 15일)_ DDL, DML  (0) 2021.06.15
19일차(6월 14일)_ Group Function  (0) 2021.06.14
18일차(6월 11일)_ Function  (0) 2021.06.11
Comments