Oracle SQL

Oracle SQL #8 DML, DDL, TCL
* DML : Data Manipulation Language insert : 테이블에 새로운 레코드 추가 명령어 update : 테이블에 기존 레코드 변경 명령어 delete : 테이블에 기존 레코드 삭제 명령어 * DDL : Data Definition Language create : 객체(테이블, 인덱스, 사용자..)를 생성 명령어 alter : 객체(테이블, 인덱스, 사용자..)를 변경 명령어 drop : 객체(테이블, 인덱스, 사용자..)를 제거 명령어 * TCL : Transaction Control Language commit : 물리적으로 DML 명령 실행 완료. rollback : DML 명령 실행 취소. -- ddl_test 테이블 생성하기 create table ddl_test( no..

Oracle SQL #7 Subquery (단일행, 다중행)
* Subquery - select 구문 내부에 select 구문이 존재 단일행 서브쿼리 : 서브쿼리의 결과가 1개인 겨우. 사용가능 연산자 : =, >, 3000; - select ename, sal from emp where sal > (select sal from emp where ename = 'SCOTT'); ex) 이름, 학년, 학과번호를 조회하는데 홍길동과 같은 학년의 정보를 조회하기. select name, grade, deptno1 from student where grade = (select grade from student where name ='홍길동'); - 홍길동,김진욱 학생과 같은 학년의 이름, 학년, 학과번호 출력 - 컬럼이 하나면 = 를 사용하면 되지만 조건이 여러개면 in..

Oracle SQL #6 Join
[ DB의 꽃 J O I N ] * join : 두개의 테이블을 연결하는 기능 카티션곱, cross join : 물리적으로 두개를 조인 두개 테이블의 레코드의 곱만큼 레코드 건수가 발생됨. select count(*) from emp; -- 14 select count(*) from dept; -- 4 select count(*) from emp, dept; -- 14 * 4 = 56 - 두개테이블에 같은 이름의 컬럼은 테이블 이름을 붙여 주어야한다. select ename, emp.deptno, dept.deptno from emp, dept; - 테이블에 Alias(별명)를 주어서 간단하게 표현할 수 있다. -- 오라클 방식 select ename, e.deptno, d.deptno from emp ..

Oracle SQL #5 그룹함수(group by), sum, avg, max, min, having
* 그룹 함수 : 레코드를 그룹화 group by 컬럼 : 컬럼을 기준으로 레코드를 그룹화 함. group by 구문이 없는 경우는 모든 레코드를 한개의 그룹으로 그릅화. 그룹함수와 컬럼을 함꼐 조회하기 위해서는 반드시 해당 컬럼을 group by 에서 설정해야함 count(컬럼명) : 컬럼의 값이 null이 아닌 레코드의 건수 리턴 count(*) : 모든 컬럼을 기준으로 건수 리턴 count(*) : 컬럼의 값이 null이 아닌 레코드의 건수 ex) 각 학년의 학생 수 조회 select grade, count(*) from student group by grade; - sum() : 합계 select sum(pay) from professor; // 교수들의 전체 급여 합계 출력하기 - avg() :..

Oracle SQL #4 문자 관련 함수,수 관련 함수, 날짜함수, 형변환 함수, 기타 함수
* 대소문자 변환함수 - initcap : 첫번째 문자만 대문자. 나머지는 소문자 - upper : 모든 문자를 대문자로 변경 - lower : 모든 문자를 소문자로 변경 ex) 학과번호가 101학과 학생의 이름 id 출력하기, 단 id는 첫문자만 대문자, 대문자, 소문자로 출력하기 select name,id,initcap(id), upper(id), lower(id) from student where deptno1 = 101; ex) emp 테이블에서 사원이름이 smith인 사원의 이름, 급여,부서코드 조회. smith 이름은 대소문자에 상관없이 조회 select ename, sal, deptno from emp where ename = 'SMITH'; select ename, sal, deptno f..

Oracle SQL #3 Order by, union, Union all
* order by - order by 칼럼 (asc 생략가능) : 조회된 행(레코드 row)을 기준에 맞도록 정렬(sort) - order by 칼럼 desc => 데이터가 큰 값부터 정렬 - order by 구문은 select 구문의 마지막에 작성. ex) 1학년 학생의 이름, 키를 출력 . 키 가 작 은 순 으로.. -> 오름차순정렬 select name, height from student where grade = 1 order by height; // order by height asc; 가능 - 컬럼 순서번호로 조회 ex) 컬럼의 순서 name, height 이기때문에 order by 2는 height의 정렬이다. select name, height from student where grade..

Oracle SQL #2 desc, distinct, between, like, in, not like, not in, is null, in not null
* desc 테이블명 : table 구조 조회 desc student;// 학생테이블의 정보 조회 * distinct : 중복 제거하여 조회하기. 한번만 사용. select distinct deptno from professor; - where 응용 . 학생중에 생일이 75년 이후에 태어난 학생의 이름, 학년, 생일 출력 select name, grade, birthday from student where birthday >= '1976/01/01'; * between연산자 - 컬럼명 between a and b : 컬럼의 값이 A와 A이상 B이하 인 경우 (매우 많이 사용됨) - between응용 101 번 학과의 학생 중 몸무게 50이상 80 이하인 학생의 이름, 몸무게, 학과코드(deptno1) 조..

Oracle SQL #1 설치 및 기본 조회(Select, where), 임시컬럼, 별명주기, 기본 연산자
초기 설치 및 기본 설정 - Oracle SQl Express - SQLdev(SQL Developer Tool) - Java SE 16 1. 초기 설정을 위해 SQL Developer 실행 후 SYSTEM/1234 사용자 접속 (SYSTEM은 관리자) create 명령어를 사용하여 일반 사용자 생성 create user @@ identified by @@@; 사용자 id : @@ 비밀번호 : @@@ 2.. grant 명령어로 권한 설정하기 grant connect, resource to @@ with admin option; 3.. 사용자로 로그인하여 교육을 위해 작성 된 test_datasql.sql 파일의 명령어 실행 * DATABASE란 . - 필요한 자료를 정리를 잘해서 꺼내는 것 . - 행 =..