(Structured Query Language)DBMS에게 질의하는 명령어Database + Management System데이터를 중복하는 것보다 데이터를 중복을 없애는 방법으로 결함을 줄인다.데이터 중복을 위해 줄이다보니 찢어논 테이블을 참조하는 방식으로 구현 (
좀더 큰단위는 얘가 함기본적인 어디민은 가능\-- 데이터 이번엔 사용 안할거임.데이터베이스에는 테이블스페이스에서 DBMS가 테이블을 관리하는구나~인덱스도 있구나~테이블 스페이스를 스키마라고 하기도함테이블 스페이스 생성권한부여
CREATE / ALTER / DROP속성과 공간 (테이블구조) 정의INSERT / SELECT / UPDATE / DELETE - CRUD제일 중요함GRANT / REVOKE
홑따옴표4000바이트 까지 사용가능STANDARD32767바이트 EXTENTED고정길이검색 빠름()BYTE 임 3썻을때 3BYTE인데 한글은 1BYTE가 아님; 이렇겐 가능하지만 이게 바람직 3BYTE안쓰고 경우에 따라 2BYTE쓸수있음가변길이()는 최대값검색 속도
1-2. Numeric 1-3. Date 1-4. TIMESTAMP
ALTER TABLE MEMBER MODIFY ID NVARCHAR2(20);ALTER TABLE MEMBER DROP COLUMN AGE;ALTER TABLE MEMBER ADD EMAIL VARCHAR2(200);
COMMENT의 경우 예약어라 테이블 생성이 불가하지만 ""로 테이블명을 지으면 가능하다.
업무 실행단위 / 논리 명령단위 / 개념상의 단위COMMIT전에 있는 실행된 쿼리들은 LOCK이 걸린다이전 COMMIT상태로 돌아감
WHERE 절 써야함
어떻게든 뽑아 볼수 있어야 함\+, -, \*, /주의할 사항컬럼명도 바뀌어버린다SELECT HIT+1 HIT FROM NOTICE;이렇게 하면 됨SELECT 1+'3' FROM DUAL -->4?문자열 덧셈이 아니라 정수 덧셈됨SELECT 1||'3' FROM DUA
=, !=, ^=, <>, >, <, >=, <=, IS NULL, IS NOT NULL같지않다 !=, <> 등=,<IS NULL,IS NOT NULL
NOT,AND, OR ,BETWEEN, IN 0,1,2 NOTICE에서 뽑고싶다. OR AND BETWEEN OR ,IN NOT IN
임의의 문자가 들어와도됨이렇게 쓰면 오류 박%가 이름인 걸 찾음LIKE 연산자를 꼭 써야한다.박으로 시작하고 뒤에는 아무거나 들어와도 됨언더바 사용하면 됨
https://www.regexlib.com/cheat sheet 패턴 해석SELECT \* FROM NOTICE WHERE TITLE LIKE '%-%-%';-- 1-1-1패턴 출력해주세요\[]를 쓰면 하나의 문자를 대편함01016789 - 0-90-9010
1-5 까지는 잘 나옴SELECT \* FROM TABLE WHERE ROWNUM BETWEEN 1 AND 5;근데 6-10 까지는 안나옴?SELECT \* FROM TABLE WHERE ROWNUM BETWEEN 6 AND 10;비교 대상이 ROWNUM이기때문에 맞음
SELECT DISTINCT AGE MEMBERSELECT DISTINCT AGE FROM MEMBER