Difference between r1.17 and the current
@@ -1,3 +1,6 @@
##=,structured_query_language =,SQL
'''structured query language'''
'''구조화(된) 질의 언어'''
Up:[[database]]
[[query_language]] =,query_language =,query_language . query_language
@@ -12,9 +15,15 @@
[[질의query]] ''-> [[질의,query]]''
[[언어,language]]
Sub:
[[언어,language]]
WtEn:query_language
WpSp:query_language wwwwwwwwww
WpEn:query_language mmmmmmmmmmmm
MKL
[[inverted_index]] =,inverted_index =,inverted_index . inverted_index
{
https://en.wiktionary.org/wiki/inverted_index
}
[[WtEn:query_language]] = https://en.wiktionary.org/wiki/query_language
[[WpSp:Query_language]] = https://simple.wikipedia.org/wiki/Query_language
[[WpEn:Query_language]] = https://en.wikipedia.org/wiki/Query_language
}Sub:
structured query language
구조화(된) 질의 언어
Up:
database
query_language =,query_language =,query_language . query_language
{
질의언어 질의어 ...중에 TBD
구조화(된) 질의 언어
Up:
database
query_language =,query_language =,query_language . query_language
{
질의언어 질의어 ...중에 TBD
Sub:
SQL,structured_query_language - de facto standard ?
QUEL =,QUEL =,QUEL . QUEL { QUEL QUEL QUEL QUEL ... "QUEL"}
SQL,structured_query_language - de facto standard ?
QUEL =,QUEL =,QUEL . QUEL { QUEL QUEL QUEL QUEL ... "QUEL"}
MKL
inverted_index =,inverted_index =,inverted_index . inverted_index
{
https://en.wiktionary.org/wiki/inverted_index
}
inverted_index =,inverted_index =,inverted_index . inverted_index
{
https://en.wiktionary.org/wiki/inverted_index
}
query_language = https://en.wiktionary.org/wiki/query_language
Query_language = https://simple.wikipedia.org/wiki/Query_language
Query_language = https://en.wikipedia.org/wiki/Query_language
}
Query_language = https://simple.wikipedia.org/wiki/Query_language
Query_language = https://en.wikipedia.org/wiki/Query_language
}
************
지금까지
지금까지
2.2.1 속성의 정의 https://terms.naver.com/entry.naver?docId=3431182&cid=58430&categoryId=58430&expCategoryId=58430
까지 정리했고,
까지 정리했고,
다음엔
2.2.2 키의 정의 https://terms.naver.com/entry.naver?docId=3431183&cid=58430&categoryId=58430&expCategoryId=58430
를 정리예정.
************
************
sql문 기능에 따른 구분 ¶
테이블table
테이블 생성 CREATE TABLE
ⓑ 기본키primary_key로 테이블에 하나만 존재 가능
ⓒ 대체키alternate_key로 테이블에 여러개 존재 가능
ⓓ 외래키foreign_key로 테이블에 여러개 존재 가능
ⓔ 데이터 무결성integrity을 위한 제약조건(무결성제약조건integrity_constraint? chk)으로 테이블에 여러 개 존재 가능
테이블 생성 CREATE TABLE
CREATE TABLE 테이블이름 ( ⓐ 속성이름 데이터타입 [NOT NULL] [DEFAULT 기본값] ⓑ [PRIMARY KEY (속성리스트)] ⓒ [UNIQUE (속성리스트)] ⓓ [FOREIGN KEY (속성리스트) REFERENCES 테이블이름(속성리스트)] [ON DELETE 옵션] [ON UPDATE 옵션] ⓔ [CONSTRAINT 이름] [CHECK(조건)] );ⓐ 속성attribute 이름, data_type, 기본적 제약 사항 정의
ⓑ 기본키primary_key로 테이블에 하나만 존재 가능
ⓒ 대체키alternate_key로 테이블에 여러개 존재 가능
ⓓ 외래키foreign_key로 테이블에 여러개 존재 가능
ⓔ 데이터 무결성integrity을 위한 제약조건(무결성제약조건integrity_constraint? chk)으로 테이블에 여러 개 존재 가능
널 값이 필요 없으면 NOT NULL 지정.
기본키primary_key로 지정한 속성attribute은 굳이 NOT NULL을 표기하지 않아도 자동으로 그 속성을 갖지만, 제약조건을 더 명확히 표현하기 위해 표현해도 됨.
기본키primary_key로 지정한 속성attribute은 굳이 NOT NULL을 표기하지 않아도 자동으로 그 속성을 갖지만, 제약조건을 더 명확히 표현하기 위해 표현해도 됨.
속성의 데이터타입data_type
INT, INTEGER | 정수 |
SMALLINT | |
CHAR(n), CHARACTER(n) | 길이 n인 고정 길이 문자열 |
VARCHAR(n), CHARACTER VARYING(n) | 최대 길이 n인 가변 길이 문자열 |
NUMERIC(p, s), DECIMAL(p, s) | 고정소수점 실수 p는 s는TBW |
FLOAT(n) | 길이가 n인 부동소수점 실수 길이가 뭔뜻인지 |
DATETIME, DATE | 년월일 - 날짜 |
TIME | 시분초 - 시각 |
테이블 변경 ALTER TABLE
테이블 제거 DROP TABLE
//////////
{
SQL 자료형
Ref:
컴퓨터 개론: 릴레이션 생성
}
{
Up: SQL,structured_query_language
{
SQL 자료형
CHAR(n) | 길이 n인 고정 길이 문자열 |
VARCHAR(n) | 길이 최대 n인 가변 길이 문자열 |
INT | 정수형 |
FLOAT(n) | n개의 자리수를 갖는 부동소수점형 |
DATE | 날짜형 |
TIME | 시간형 |
Ref:
컴퓨터 개론: 릴레이션 생성
}
{
Up: SQL,structured_query_language
2. CONCAT ¶
CONCAT(expr1, expr2, ...)
붙여준다. - TBW 더 상세히 서술 //concatenation
}
Up: SQL,structured_query_language
tableofcontents
붙여준다. - TBW 더 상세히 서술 //concatenation
}
SQL_구문
{Up: SQL,structured_query_language
tableofcontents
3. ALTER TABLE ¶
ALTER TABLE "테이블명" (MODIFY or ADD) "컬럼명" "변수형" "속성 이름 (ex. NOT NULL , PRIMARY KEY, AUTO_INCREMENT 등등)"
MODIFY => 속성을 변경하고자 때
ADD => 속성을 추가하고자 할때
[2]
MODIFY => 속성을 변경하고자 때
ADD => 속성을 추가하고자 할때
[2]
4. AS ¶
이름을 지정.
ex. SELECT dominoPizza AS Domino FROM food
food 테이블에서 dominoPizza 라는 컬럼의 이름을 Domino 로 지정해 Select 결과를 나타내준다.[3]
ex. SELECT dominoPizza AS Domino FROM food
food 테이블에서 dominoPizza 라는 컬럼의 이름을 Domino 로 지정해 Select 결과를 나타내준다.[3]
6. DELETE ¶
삭제.
ex1.
특정 필드명을 가진 행 삭제
DELETE FROM "테이블명" WHERE "필드명" = "??" ;
(??는 삭제할 필드의 조건)
ex2.
테이블의 행들 전체 삭제
DELETE FROM "테이블명" ;
[4]
ex1.
특정 필드명을 가진 행 삭제
DELETE FROM "테이블명" WHERE "필드명" = "??" ;
(??는 삭제할 필드의 조건)
ex2.
테이블의 행들 전체 삭제
DELETE FROM "테이블명" ;
[4]
8. INSERT ¶
데이터 넣기.
ex1.
INSERT INTO 테이블명(필드1, 필드2, 필드3, ...) VALUES (데이터값1, 데이터값2, 데이터값3, ...)
(선택하지 않은 필드들은 NULL 값이 자동으로 들어감)
ex2.
INSERT INTO 테이블명 VALUES (데이터값1, 데이터값2, 데이터값3, ...)
모든 필드들에 데이터값을 넣기
(데이터 값은 필드 순서대로 해야됨)[5]
ex1.
INSERT INTO 테이블명(필드1, 필드2, 필드3, ...) VALUES (데이터값1, 데이터값2, 데이터값3, ...)
(선택하지 않은 필드들은 NULL 값이 자동으로 들어감)
ex2.
INSERT INTO 테이블명 VALUES (데이터값1, 데이터값2, 데이터값3, ...)
모든 필드들에 데이터값을 넣기
(데이터 값은 필드 순서대로 해야됨)[5]
9. UPDATE ¶
수정(modify)하는 명령.
UPDATE 대상 SET fieldname=value WHERE ...
ex.
UPDATE example SET firstname='Tom', lastname='Smith' WHERE nickname='hax0r'
9.1. 특정 조건을 가진 행 삭제 ¶
UPDATE "테이블명" SET "열" = "변경할 값" WHERE "특정 조건"
ex.
UPDATE instructor SET salary = salary * 1.3 WHERE salary < 500000
교수 테이블에서 월급이 50만원 보다 적은 교수들의 월급을 30% 증가시킨다.
[6]
ex.
UPDATE instructor SET salary = salary * 1.3 WHERE salary < 500000
교수 테이블에서 월급이 50만원 보다 적은 교수들의 월급을 30% 증가시킨다.
[6]
}
10.1. Subquery ¶
subquery 사용 시 테이블이 생성되는데, 계속 사용되면 메모리 문제가 생겨서, WITH 절을 써서 임시 테이블을 만들 수 있다. 남용하면 안좋다.
see https://programming119.tistory.com/36
see https://programming119.tistory.com/36
----
- [1] https://terms.naver.com/entry.naver?docId=2270457&cid=51173&categoryId=51173&expCategoryId=51173 컴퓨터 개론: 릴레이션 변경
- [2] https://programming119.tistory.com/6
- [3] https://programming119.tistory.com/5
- [4] https://programming119.tistory.com/17
- [5] https://programming119.tistory.com/8
- [6] https://programming119.tistory.com/40