일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Java#JAVA#매개변수
- db#데이터베이스#오라클#sql
- Java#java#메모리영역#클래스로더#가비지컬렉터
- 개발자#it도서#도메인#DDD#ddd
- Java#java#자바#다오#디티오#브이오#dao#dto#vo
- 국비지원JAVA#국비교육JAVA#국비지원자바#국비교육자바#JSP#SERVLET#서블릿#
- Spring#spring#스프링#스프링프레임워크#스프링의존성주입#스프링생성자#스프링기본#국비지원#국비교육#국비지원스프링
- 국비지원#국비교육
- #java#JAVA#프로그래밍#웹개발자
- Spring#spring#스프링#스프링프레임워크#스프링자동주입#스프링생성자#스프링기본#국비지원#국비교육#국비지원스프링
- Resource #
- html#HTML#프론트엔드#개발자#코딩#국비지원#국비교육#국비지원프론트엔드#국비지원HTML#국비지원html#국비프론트엔드
- 국비지원JAVA#국비지원자바#프로그랭#JSP#국비지원JSP#국비교육JSP#웹개발자#코딩
- Java#컴파일러#자바컴파일러#
- 자바#Java#배열예시#연습#기초다지기
- #
- 개발자도서#개발자책#도메인#DDD#도메인주도개발시작하기#개발스터디#
- 프로그래밍
- tibero#티베로#이중화#failvover
- 국비지원자바#국비교육자바#국비지원java#국비교육java#자바스크립트#프론트엔드
- IntelliJ#인텔리제이#인텔리#단축키
- 항해플러스#항해#항해플러스3기#회고
- 자바
- 국비지원#국비교육#국비지원자바#국비교육자바#css#HTML#JAVA
- spring#Spring#RequestBody#ResponseBody
- 쿼리스트링#쿼리문자열#바인딩
- Java#정처기#비트연산자#정보처리기사
- java
- 항해99 #항해플러스 #주니어개발자 #주니어개발자역량강화 #주니어개발자멘토링 #개발자사이드프로젝트 #코딩부트캠프 #코딩부트캠프후기
- 국비지원JAVA
- Today
- Total
개린이 개발노트
국비지원 JAVA(자바) 프로그래밍 (데이터베이스, 오라클,SQL,SQLD,) 본문
UPDATE 수정문
형식 ↓
UPDATE 수정할 테이블이름
SET 수정할 컬럼=수정할데이터,수정할컬럼=수정할데이터(어떤컬럼에서 어떤데이터를)
WHERE 조건식
예제
UPDATE 연습
SET LOC ='SEOUL'
WHERE DNAME='SALES'
DNAME이 SALES인 곳에 컬럼이 LOC인 곳에 있는 SEOUL을 SALES로 바꾸어라
연습테이블에 부서번호가 40번인 부서명을 JAVA 지역을 BUSAN으로 변경하시오.
--여러개 컬럼 바꿀때는 그냥 콤마 찍으면됨.
UPDATE 연습
SET DNAME='JAVA', LOC='BUSAN'
WHERE DEPTNO=40;
UPDATE 연습
SET (DNAME,LOC) = (SELECT DNAME,LOC FROM DEPT WHERE DEPTNO=40)
WHERE DEPTNO=40;
UPDATE 연습
SET DNAME = LOWER(DNAME);
DELETE (레코드 삭제, 데이터 삭제, 내용 지울 때)
DELETE FROM 삭제할 내용이 있는 테이블
WHERE 조건식
예제 연습
DELETE FROM 연습 WHERE DEPTNO=30;
예제연습
연습2테이블에 급여등급이 5등급인데이터를 삭제하시오
SALGRADE테이블도 활용
DELETE FROM 연습2
WHERE EMPNO IN ( SELECT EMPNO
FROM 연습2 INNER JOIN SALGRADE ON SAL BETWEEN LOSAL AND HISAL
WHERE GRADE=5);
-> 결과값이 운좋게 단일행이 나올수 있지만 다중행이 나올수있으므로 연산자 IN 사용
SELECT ,INSERT ,UPDATE ,DELETE -> DML (데이터 조작어)
연습하기
부서번호 부서명 지역
50,ORACLE,BUSAN
60,SQL,ILSAN
70,SELECT,INCHEON
80,DML.SEOUL
INSERT 하기
INSERT INTO EX_DEPT ( DEPTNO, DNAME ,LOC)
VALUES ( 50, 'ORCLE','BUSAN');
INSERT INTO EX_DEPT ( DEPTNO, DNAME ,LOC)
VALUES ( 60, 'SQL','DALLAS');
INSERT INTO EX_DEPT ( DEPTNO, DNAME ,LOC)
VALUES ( 70, 'SELECT ','INCHEON');
INSERT INTO EX_DEPT ( DEPTNO, DNAME ,LOC)
VALUES ( 80, 'DML','SEOUL');
EX_EMP 테이블에서 작업
부서번호 20번인 사람들의 급여평균보다
더 큰 급여를 받는 사람들의 부서번호를 70번으로 변경
UPDATE EX_EMP
SET DEPTNO =70
WHERE SAL > (SELECT AVG(SAL) FROM EX_EMP WHERE DEPTNO=20);
EX_EMP 테이블 이용
부서번호가 30번인 사람들 중에서 입사일이 가장늦은 사람보다
더일찍 입사한 모든 사원들의 급여를 10% 인상시키고
부서번호를 60으로로 변경
UPDATE EX_EMP
SET SAL = SAL*1.1, DEPTNO=60
WHERE HIREDATE < (SELECT MAX(HIREDATE) FROM EX_EMP WHERE DEPTNO =30);
추가수당 없는 사람들을 삭제
DELETE FROM EX_EMP WHERE COMM=0 OR COMM IS NULL;
데이터 정의어
CREATE-> 테이블 생성
DROP-> 테이블 삭제
ALTER->테이블 수정
새로운 테이블 만드는 법
위는 첫번째 방식
직접 만드는 방식
CREATE
CREATE TABLE 테이블명(
컬럼명 데이터타입,
컬럼명 데이터타입,
컬럼명 데이터타입
);
CREATE TABLE 테이블명(
이름 VARCHAR(50),
수학 NUMBER,
영어 NUMBER(5,2) --123.45
);
CHAR->문자(고정길이) CHAR(50) ABC 입력-> 3바이트만먹는문자지만 최종적으로는 50바이트
VARCHAR - 문자 (가변길이) VARCHAR(50) ABC 입력-> 최종크기는 50바이트지만 3바이트에 맞게 조정
VARCHAR -> 최대 2000BYTE
VARCHAR2 최대 4000바이트
NUMBER -> 숫자 (가변길이)
LONG-> 숫자,문자도 가능함 최대 2기가
CLOB->최대 4GB
BFILE-> 파일 저장
테이블 생성규칙
숫자로 시작안함
이름은 30BYTE이하
예약어로 안됨( SELECT, UPDATE 이런걸로 테이블명 지정못함)
ALTER
ALTER TABLE 테이블명
ALTER TABLE 연습2
ADD 과학 NUMBER;
컬럼 추가됨
ALTER TABLE 테이블명
ADD 컬럼명 데이터형식
---컬럼명을 변경
ALTER TABLE 테이블명
RENAME COLUMN 변경 전 컬럼명 TO 변경 후 컬럼명
ALTER TABLE EX_DEPT
RENAME COLUMN TEL TO PHONE;
--데이터타입을 변경
ALTER TABLE 테이블명
MODIFY 변경할컬럼명 변경할데이터타입
ALTER TABLE EX_DEPT
MODIFY DEPTNO NUMBER(5);
LTER TABLE EX_DEPT
MODIFY DNAME VARCHAR(12);
--컬럼을 삭제
ALTER TABLE 테이블명
DROP COLUMN 컬럼명
ALTER TABLE EX_DEPT
DROP COLUMN PHONE;
--테이블 이름 변경
RENAME 변경전테이블명 TO 변경후테이블명
RENAME EX_DEPT TO 부서;
--테이블 데이터를 삭제
TRUNCKATE TABLE 테이블명
DELETE FROM 테이블명
DML 데이터 조작 INSERT , UPDATE ,DELETE -ROLLBACK, COMMIT 가능
데이터 정의어 CREATE, ALTER ,DROP, TRUNCATE -ROLLBACK, COMMIT 이안됨
사원 테이블을 생성
CREATE TABLE 사원 (
사원번호 NUMBER(4),
사원이름 VARCHAR(50),
직책 VARCHAR(50),
상관번호 NUMBER(4),
입사일 DATE,
급여 NUMBER(10),
추가수당 NUMBER(10),
부서번호 NUMBER(4)
);
DESC 사원;
SELECT * FROM 사원;
생성완료
사원테이블에 '비고'컬럼 추가
데이터타입은 가변문자 10BYTE 짜리 추가하기
ALTER TABLE 사원
ADD 비고 VARCHAR(10);
사원테이블에 있는 '비고 ' 컬럼을 '호봉'으로 수정
ALTER TABLE 사원
RENAME COLUMN 비고 TO 호봉;
EMP테이블에 있는 데이터를 사원테이블에 저장
호봉은 NULL로 채움
INSERT INTO 사원
SELECT EMPNO,ENAME,JOB,MGR,HIREDATE,
SAL,COMM,DEPTNO,NULL FROM EMP;
-- 호봉을 NULL로 채워주기위해
SELECT * FROM 사원;
INSERT INTO 사원(사원번호,사원이름,직책,상관번호,입사일,급여,추가수당,부서번호)
SELECT * FROM EMP;
--호봉에는 NULL로 채우기위해 호봉컬럼은 적지않음
SELECT * FROM 사원;
사원테이블에 직책컬럼의 크기를 20으로 수정
ALTER TABLE 사원
MODIFY 직책 VARCHAR2(20);
UPDATE문
사원테이블에
직책이 CLERK 사무원으로 변경
직책이 SALESMAN 판매원으로 변경
직책이 MANAGER 매니저
직책이 PRESIDENT 사장
직책이 ANALYST 분석가
UPDATE 사원
SET 직책='사무원'
WHERE 직책='CLERK';
UPDATE 사원
SET 직책='판매원'
WHERE 직책='SALESMAN';
UPDATE 사원
SET 직책='매니저'
WHERE 직책='MANAGER';
UPDATE 사원
SET 직책='사장'
WHERE 직책='PRESIDENT';
UPDATE 사원
SET 직책='분석가'
WHERE 직책='ANALYST';
추가수당이 없는 직원들은 급여의 10%만큼 주려고함
대신 사장뺴고
AND 연산 곱 개념이고
OR 연산 합 개념
UPDATE 사원
SET 추가수당 = 급여*0.1
WHERE (추가수당 IS NULL OR 추가수당=0) AND 직책!='사장';
사원테이블에 상관번호 컬럼을 삭제
ALTER TABLE 사원
DROP COLUMN 상관번호;
신입사원을 받았음
사원번호:9999
사원이름: 강준석
직책:인턴
입사일: 오늘날짜
급여:500
추가수당:NULL
부서번호:40
호봉:NULL
INSERT INTO 사원
VALUES(9999, '강준석', '인턴' , SYSDATE, 500, NULL ,40 ,NULL);
30번 부서에서 진행중인 프로젝트가 망함
그래서 정리해고하려고함
급여가 1500보다 많이받는 사람은 해고
다른사람들은 부서를 40번 부서로 이동
DELETE FROM 사원
WHERE 부서번호=30 AND 급여>1500;
UPDATE 사원
SET 부서번호=40
WHERE 부서번호=30;
제약조건
데이터에 제약조건을 걸어서 옳지않은 데이터가 입력되는 것을 방지하기 위함
데이터에 무결성을 유지하기 위함
데이터 무결성: 데이터의 정확성, 일관성을 보장하기위한 것.
영역 무결성-컬럼에 저장되는 데이터가 적정데이터인지 확인해주는것
NULL, 조건범위에 해당하는 값 만족하는 데이터
참조 무결성 기본키를 참조하는 외래키에는 기본키에 해당하는 데이터만 저장
개체 무결성- 데이터를 유일하게 식별해주는 기본키는 반드시 값이 있어야하고 NULL도 안되고
중복도 불가능하다.
NOT NULL (NULL 안됨)
CREATE TABLE NULL_TEST(
ID VARCHAR(20) NOT NULL,
PW VARCHAR(20) NOT NULL,
NAME VARCHAR(20)
);
이런식으로 제약 조건을 만듦
CONSTRAINT
CREATE TABLE NULL_TEST2(
ID VARCHAR(20) CONSTRAINT 제약조건 이름 NOT NULL
)
위처럼 CONSTRAINT 사용
테이블이 만들어졌을 때 추가로 제약조건을 만들고 싶을 때
제약조건을 걸떄
CREATE TABLE 테이블이름(
컬럼명 데이터 형식 NOT NULL .-- 오라클이 알아서 제약조건 이름설정함
컬럼명 데이터 형식 CONSTRAINT 제약조건명 NOT NULL
);
제약조건 삭제 (데이터가 있던 말던 그냥 됨)
ALTER TABLE 테이블이름(
DROP CONSTRAINT 제약조건명
);
이미생성된 테이블에 제약조건을 추가 (데이터가 없으면 괜찮지만 , 데이터가 있을 경우에는 제약조건에 위배되는 데이터가있으면 안됨)
ALTER TABLE 테이블명
MODIFY 컬럼명 NOT NULL; -- 제약조건 이름은 오라클이 알아서 해줌
중복 불가능 UNIQUE ( NOT NULL 이 들어가는 곳에 UNUQUE 넣으면됨)
'국비지원(국비교육) 웹 개발자 과정' 카테고리의 다른 글
국비지원 JAVA(자바) 프로그래밍 (뷰(View), 가상테이블,ERDM,ERDCloud, lucidchart ,JSP,servlet(서블릿)) (0) | 2023.01.17 |
---|---|
국비지원 JAVA(자바) 프로그래밍 (데이터베이스, SQL문,제약조건,공공데이터포털,트랜잭션) (0) | 2023.01.16 |
국비지원 JAVA(자바) 프로그래밍 (데이터베이스, 오라클,SQL,SQLD,) (0) | 2023.01.12 |
국비지원 JAVA(자바) 프로그래밍 (데이터베이스, 오라클,SQL,SQLD, 정규화, 정규형) (0) | 2023.01.11 |
국비지원 JAVA(자바) 프로그래밍 (데이터베이스, 오라클,SQL,SELECT) (0) | 2023.01.10 |