erd
https://choiseungyoun.github.io/posts/what-is-erd/
구조적 쿼리 언어(SQL)는 관계형 데이터베이스에 정보를 저장하고 처리하기 위한 프로그래밍 언어입니다. 관계형 데이터베이스는 정보를 표 형식으로 저장하며, 행과 열은 다양한 데이터 속성과 데이터 값 간의 다양한 관계를 나타냅니다. SQL 문을 사용하여 데이터베이스에서 정보를 저장, 업데이트, 제거, 검색 및 검색할 수 있습니다. 데이터베이스 성능을 유지 관리하고 최적화하는 데 SQL을 사용할 수도 있습니다.
SQL은 어떻게 작동하나요?
구조적 쿼리 언어(SQL) 구현에는 데이터베이스 쿼리를 처리하고 결과를 반환하는 서버 시스템이 필요합니다. SQL 프로세스는 다음을 포함한 여러 소프트웨어 구성 요소를 거칩니다.
오라클?
오라클(Oracle Corporation)은 미국 텍사스에 본사를 둔 매출 규모 세계 2위의 소프트웨어 회사이다. 이 회사의 대표적인 제품인 데이터베이스 제품, 오라클 RDBMS는 세계 최고의 점유율을 차지하고 있다. 2014년 오라클은 마이크로소프트에 이어 소득 기준으로 2번째로 큰 소프트웨어 제조사였다.[1] 2009년 4월 20일, 오라클은 자사가 세계 4대 컴퓨터 서버 업체인 미국 썬 마이크로시스템즈를 74억 달러(약 10조 원)에 인수했다는 것을 발표했다.[2]
주석문은 --를 이용한다.
....필요없어
DCL 데이터 제어어
사용자를 생성하고 권한을 부여, 삭제하는 명령어
미리 데이터베이스에 세팅 되어있어야 하는 부분이라 맨 처음 해야한다.
처음엔 시스템 아이디를 가지는 DVA라는 권한을 줌.
DDL(데이터정의어)
자료를 저장하기 전에 설정하는 구조적인 것. 테이블 생성가거나 하는거.
소문자 바뀌는 부분
GRANT CONNECT, RESOURCE, DBA TO DS204; -- 접근 리소스사용, dba권한 부여
지울때는
REVOKE CONNECT, RESOURCE, DBA FROM DS204; -- 권한 제거
DROP USER DS204 CASCADE; --사용자삭제
ALTER USER DS204 ACCOUNT UNLOCK; --암호 3번 오류에 따른 락 풀기
-- 절대실행X
CREATE TABLE membertbl(
오라클은 VARCHAR2, SQL은 VARCHAR로 쓰고 가변 가능할때 사용한다.
CHAR은 불변길이다. CHAR(3) 'A' != 'A' 고 'A' != 'A '다. A뒤에 공백이 두개 들어간다.
userid VARCHAR2(50),
userage NUMBER(3),
userdate DATE,
CONSTRAINT membertbl_pk PRIMARY KEY(userid), --기본키
CONSTRAINT membertbl_gender CHECK(usergender IN('M','F')) --성별 //둘중 하나만!
CONSTRAINT membertbl_gender CHECK(usergender IN('M','F'))
--성별 //둘중 하나만! //어느쪽도 아니면 입력x
ALTER TABLE membertbl ADD usermail VARCHAR2(100);
DROP TABLE membertbl CASCADE CONSTRAINTS; --제약조건을 포함한 테이블 삭제
CONSTRAINT memberaddrtbl_fk FOREIGN KEY(userid) REFERENCES membertbl(userid)
-- FOREIGN KEY() 외래키 / REFERENCES 참조 어디의()
CONSTRAINT membertbl_pk PRIMARY KEY(userid), --기본키
CONSTRAINT membertbl_gender CHECK(usergender IN('M','F')) --성별 //둘중 하나만!
-- 회원 테이블 membertbl
CREATE TABLE membertbl(
userid VARCHAR2(50), -- VARCHAR2 = String //몇자인가:50자
userpw VARCHAR2(200), -- 암호화 되므로 200자 //aaa라고 비번을 넣으면 fndjkwoijoi3u14h3i5...로
username VARCHAR2(15), -- 2바이트(= 한 15자 ) //한글은 길어서
userage NUMBER(3), -- NUMBER = Integer //100세 넘어가는 사람 잘 없으니 3자리
userphone VARCHAR2(15), --'010-0000-0000' //-가 들어있어서 문자열로 취급
usergender VARCHAR2(1), -- M or F
userdate DATE, --가입일자 DATE 연월일
-- 위에 것들 중 고유한 것을 기본키로 잡는다
-- 연락처나 아이디나 이메일 등등
-- 제약조건 걸기 (아래)
CONSTRAINT membertbl_pk PRIMARY KEY(userid), --기본키
CONSTRAINT membertbl_gender CHECK(usergender IN('M','F')) --성별 //둘중 하나만!
);
--세미클론 있는거 하나씩 실행(세미콜론 영향안에 커서 올리고 컨트롤+엔터)
-- 테이블 만든 후 컬럼추가하기 : ADD, MODIFY, DROP를 이용할 수 있다.
-- // 사실 이런 일은 프로젝트 도중에 일어나선 안되는 일(프로젝트 설계상 문제)
ALTER TABLE membertbl ADD usermail VARCHAR2(100);
-- 테이블 삭제
DROP TABLE membertbl CASCADE CONSTRAINTS; --제약조건을 포함한 테이블 삭제
-------------------------------------------------------------------
-- 회원 주소 테이블 memberaddrtbl
CREATE TABLE memberaddrtbl(
userno NUMBER, --int //기본키. 바꿀수 없다
useraddr VARCHAR2(100), --str
userpostcode NUMBER(5), --int
userdate TIMESTAMP, -- TIMESTAMP :연월일시
userid VARCHAR2(50), --str //외래키. 어디서 갖고와야함(어디서?) //userid에만 주소를 넣을 것이다
CONSTRAINT memberaddrtbl_pk PRIMARY KEY(userno), --기본키는 userno를 쓸거다
CONSTRAINT memberaddrtbl_fk FOREIGN KEY(userid) REFERENCES membertbl(userid)
-- FOREIGN KEY() 외래키 / REFERENCES 참조 어디의()
);