SQL 기초 개념
1. SEQUEL(Structured English QUEry Language)
-1974년 IBM에서 연구용 DBMS인 SYSTEM R을 위한 언어로 개발됨.
2.SQL(Structured Query Language) : SEQUEL에서 이름이 바뀜.
1)ANSI/ISO가 표준 standard SQL를 지정함.
-SQL-86
-SQL-92
-SQL-99
2)대부분의 DBMS는 SQL-92 표준의 대부분을 지원함,
추후 표준에 지정된 기능을 추가하여 지원함.
3. SQL 분류
1)DDL(Data Definition Language)
-테이블 생성, 변경, 제거하는 기능
2)DML(Data Manipulation Language)
-테이블에 새 데이터를 삽입
-테이블에 저장된 데이터를 수정, 삭제하는 기능 제공
-SELECT : 테이블 데이터를 조회하는 기능 제공
3)DCL(Data Control Language)
-보안을 위해 데이터에 대한 접근 및 사용 권한을 조절하는 기능 제공
4. 용어
관계데이터모델 SQL
Relation --------------> Table
Tuple --------------> Row
Attribute --------------> Column
Relational schema --------------> Table schema
DDL
1. DDL
1)데이터 정의
2)데이터베이스 구조 정의, 변경하는 기능 제공
3)CREATE
-새로운 데이터베이스 오브젝트들을 생성(schema, table, view 등)
4)ALTER
-존재하는 오브젝트의 정의 변경
5)DROP
-존재하는 오브젝트를 데이터베이스에서 삭제
2. CREATE TABLE 테이블 이름(
{속성 이름 데이터 타입[NULL | NOT NULL | UNIQUE | DEFAULT 기본값 | CHCKE 체크조건]}
[PRIMARY KEY 속성이름(들)]
[FOREIGN KEY 속성이름 REFERENCES 테이블이름(속성이름) | ON DELETE {CASCADE}]
);
EX)
CREATE TABLE student(
ID varchar(8) primary key
,name varchar(20) not null
,dept_name varchar(20)
,grade int DEFAULT 0
,forein key(dept_name) reference department
);
3. 데이터 타입
1)CHAR(n)
-길이가 n으로 고정인 문자열
2)VARCHAR(n)
-최대 길이가 n인 가변 길이의 문자열
3)BIGINT
-8 bytes 정수
4)INT or INTEGER
-4 bytes 정수
5)SAMLLINT
-2 bytes 정수
6)NUMBER(p,s)
-고정 소수점 실수
-p : 소수점을 제외한 전체 길이
-s : 소수점 이하 숫자의 길이
-ex)123456.1234 <==== price decimal(10,4)
7)FLOAT(n)
-길이가 n인 부동소수점 실수
8)REAL
-부동소수점 실수
9)DATE
-연,월,일로 표현되는 날짜
10)TIME
-시,분,초로 표현되는 시간
11)TIMESTAMP
-DATE + TIME
12)BLOB
-Binary large objects
13)CLOB
-Character large objects
4. alter table
1)새로운 컬럼 추가
alter table 테이블 이름 add 속성이름 데이터타입
2)기존 컬럼 삭제
alter table 테이블 이름 drop column 속성이름
3)새로운 제약 조건 추가
alter table 테이블 이름 add constraint <constraint_name><constraint>
4)제약조건 삭제
alter table 테이블 이름 drop constraint set_pri_key;
5)Modify : 속성의 기본값을 설정하거나 수정할 때 사용
5. drop table
drop table 테이블 이름
1)테이블 데이터 및 catalog 삭제
2)테이블 구조와 데이터를 모두 삭제하므로 사용할 때 주의해야 함.
3)데이터만 삭제하려면 delete문 사용
DML
1. Insert
1)테이블에 새로운 row를 삽입
2)Syntax
INSERT <table_name>[(<column_name>,...)]VALUES(value,...)
3)example
-INSERT student VALUES('20211110',Kim,'Computer',1);
-INSERT student(id,name,dept_name,grade)VALUES('20211110','Kim','Computer',1);
2. INSERT INTO SELECT
1)다른 테이블에서 질의 결과를 삽입하는 구문
2)Syntax
INSERT <table_name>[(<column_name>,...)]<SELECT clause>
3)example
INSERT INTO student SELECT*FROM new_students;
3. DELETE
1)테이블에서 쿼리에 해당되는 row를 지움.
2)Syntax
DELETE FROM <table_name>[WHERE condition]
3)example
-DELETE FROM student; ==>모든 rows 삭제
-DELETE FROM student WHERE dept_name='Computer'; ==>특정 조건
-DELETE FROM student WHERE dept_name in() ==>여러 개의 조건
4. UPDATE
1)테이블에 저장된 데이터를 변경
2)Syntax
UPDATE <table_name> SET <column_name>=value [WHERE conditio]
3)example
-UPDATE employee set salary = salary * 1.07;
-UPDATE employee set salary = salary * 1.07 WHERE hire_date < '2021-01-01';
-UPDATE employee set salary = salary * 1.07 WHERE dept_name in();
예제
'📒 education archive > 💾DB' 카테고리의 다른 글
[국비학원 기록/DB] SQL 내장 함수(숫자, 문자, 날짜, 시간) (0) | 2021.11.11 |
---|---|
[국비학원 기록/DB] SELECT문, WHERE, NULL, ORDER BY, GROUP BY (0) | 2021.11.11 |
[국비학원 기록/DB] 데이터베이스 개념, DBMS, 관계형 데이터 모델 (0) | 2021.11.10 |
[SQL] 오라클 데이터베이스 공부 기록(6)-인덱스,뷰,시퀀스 (0) | 2021.08.13 |
[SQL] 오라클 데이터베이스 공부 기록(5)-트랜잭션,DDL (0) | 2021.08.13 |