일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 따옴표 삭제
- csv
- github token
- 단축키
- MySQL
- DataGrip
- PHPStorm
- cmd
- jupyter
- 데이터베이스
- 깃 토큰
- Python
- clone
- 오류
- 에러
- OrCAD 다운로드
- run sql script
- github clone
- error
- import data
- vscode
- visualstudio code
- database
- 파이썬
- error 해결
- 클론
- localhost
- php
- Visual Studio Code
- console창
- Today
- Total
개발 노트
8/2 DCL, DDL, DML, Oracle SQL Developer, SELECT, 합성연산자 ||, 데이터타입 CHAR, VARCHAR2, WHERE 본문
8/2 DCL, DDL, DML, Oracle SQL Developer, SELECT, 합성연산자 ||, 데이터타입 CHAR, VARCHAR2, WHERE
hayoung.dev 2022. 8. 2. 17:06(실습용 데이터베이스 생성 sql 파일)
1. Oracle 설치를 한 후 developer를 설치해야 함.
비밀번호 : oracle
[DCL, DDL, DML (꼭 외우기, 중요)]
DDL
- Data Definition Language (데이터 정의어)
- 데이터 베이스의 스키마를 정의하고, 명시된 문장이 입력되어 지면 DBMS가 스키마에대한 명세를 시스템 카탈로그에 저장
- Create table / Alter table
DML
- Data Manipulation Language (데이터 조작어)
- 데이터 베이스의 원하는 데이터를 수정하고, 삽입하고, 삭제하는 언어
- Select / Insert / Delete / Update
DCL
- Data Control Language (데이터 제어어)
- 데이타베이스의규정이나기법을 정의하고 제어하는언어
- 권한 부여/취소, 보안, 병행수행 제어
- Grant / Revoke
[cmd창에서 oracle 접속 방법]
>sqlplus system/oracle // 로그인아이디/비밀번호
2. Oracle SQL Developer 실행 > 왼쪽 위 초록색 플러스 누름 > name, 사용자 이름, 비밀번호 입력 후 테스트 > 상태 : 성공 이 떠야 함. > 접속 클릭
3. 직접 scott 계정 만들기
-- 계정명 : scott, 비밀번호 : tiger
CREATE user scott IDENTIFIED by tiger;
-- DBA 권한을 scott에게 부여
GRANT DBA to scott;
출력 결과
*우클릭 > 행 번호 토글 하면 행 번호 생김.
4. admin 계정은 system(비밀번호 oracle), 일반 계정은 scott(비밀번호 tiger)
5. 세로줄이 컬럼명
가로 한 줄이 row
이 안의 각각의 데이터들을
한 번에 모아둔 것이 스키마
nullabe : null값 가능, 불가능
6. comments : 논리적인 구조를 설정할 때 추가
우클릭 > 편집 > 설명란에 한글로 작성
하단의 코드와 같은 역할이다.
COMMENT ON COLUMN "SCOTT"."DEPT"."DEPTNO" IS '부서번호';
COMMENT ON COLUMN "SCOTT"."DEPT"."DNAME" IS '부서명';
COMMENT ON COLUMN "SCOTT"."DEPT"."LOC" IS '부서위치';
7. DESC 테이블명 : 테이블의 스키마 내용을 보여줌
DESC dept;
출력 결과
*테이블의 sql 여기에 있음
8. DEPT 전부 선택
SELECT * FROM dept;
출력 결과
9.원하는 컬럼만 선택해서 나옴
SELECT deptno, loc FROM dept;
출력 결과
10. Department 테이블로부터 TBL(Table약자) deptno, dname만 조회
SELECT deptno, dname FROM department;
출력 결과
[SQL 명령문의 표준 형식]
- sql은 대소문자를 구별하지 않는다. 하지만 키워드는 주로 대문자로 사용하고 테이블명과 칼럼 이름은 소문자로 작성하는 것을 권장한다.
- 개념모델링에서는 애트리뷰트라고 부르는 것을 테이블을 만들면(물리모델링으로 만들면) 컬럼이라고 바꿔부름.
11. Model에서 왼쪽의 p가 primary key(이 테이블의 열쇠)를 뜻함.
테이블 우클릭 > 편집 > 열쇠모양이 있으면 primary key이다.
primary key는 중복할 수 없는 유일한 값이어야 함.
12. as 를 붙이거나 한 칸 띄고 별명을 만들 수 있다
SELECT deptno AS dno, dname "부서번호" FROM Department;
출력 결과
13. Student 테이블 > 우클릭 > 편집 > 설명추가
14. 합성 연산자 ||
학생 테이블에서 학번과 이름 칼럼을 연결하여 “Student”라는 별명으로 하나의 칼럼처럼 연결하여 출력
SELECT studno, name FROM Student;
SELECT studno, name, studno || name "studentContent" FROM student;
첫째 줄 출력 결과
둘째 줄 출력 결과
[데이터 타입]
- 데이터베이스에 저장되는 데이터는 문자, 숫자, 날짜, 이미지 등과 같은 다양한 형식으로 표현
- 실무에서 칼럼에 대한 데이터 타입이나 길이의 결정은 데이타베이스 설계 단계에서 신중하게 고려해야하는 중요한 사항
- 데이터베이스 설계 단계에서 잘못 선정된 데이터 타입은 응용 프로그램 개발을 어렵게 하거나 성능을 저하시키는 요인이 됨
[오라클에서 지원하는 데이터 타입의 종류]
이 중 실무에서는 varchar, number, date를 많이 쓴다.
[CHAR와 VARCHAR2의 차이점] 면접에 자주 나옴. 중요. 하단 전부 외우기.
CHAR(size) :
size 크기의 고정 길이의 문자열을 저장하는 문자 데이터 타입. 지정된 길이보다 짧은 데이터가 입력되는 경우, 나머지 공간은 공백으로 채워짐. 공백은 메모리낭비가 됨. 그래서 거의 쓰지 않음.
최대크기 : 2,000 바이트
최소크기 : 1 바이트
VARCHAR2(size) :
size 크기의 가변 길이의 문자열을 저장하는 문자 데이터 타입. 지정된 길이보다 짧은 문자열이 입력되면 뒷부분은 NULL로 처리되어 저장공간을 낭비하지 않음.
최대크기 : 4,000 바이트
최소크기 : 1 바이트
15. 과제1
학생의 몸무게를 pound로 환산하고 칼럼 이름을 ‘weight_pound’ 라는 별명으로 출력.
1kg은 2.2pound
SELECT name, weight, weight*2.2 as "WEIGHT_POUND" FROM student;
출력 결과
16. 길이가 동일하고 타입이 다른 칼럼을 가진 테이블 생성
CREATE TABLE ex_type (c char(10), v varchar2(10))
INSERT INTO ex_type
Values('sql','sql');
출력 결과 : 테이블로 들어가서 확인해보면 첫번째는 빈칸이 있고 두번째는 빈칸이 없다.
17. 커밋을 해야 저장됨
commit;
18. WHERE은 조건문 달 때 사용
-- 1. c와 sql이 같은 것 출력
SELECT * FROM ex_type WHERE c='sql';
-- 2. v와 sql이 같은 것 출력
SELECT * FROM ex_type WHERE v='sql';
-- 3. v와 c가 같은 것 출력
SELECT * FROM ex_type WHERE c=v;
출력 결과 1, 2
출력결과 3 : 해당하는 값이 없다. (다음시간에 배울 예정