SQL,structured_query_language

Up:
database
query_language =,query_language =,query_language . query_language
{
질의언어 질의어 ...중에 TBD

Sub:
SQL,structured_query_language - de facto standard ?
QUEL =,QUEL =,QUEL . QUEL { Foldoc:QUEL WtEn:QUEL Ggl:QUEL Ndict:QUEL ... "QUEL"}


WtEn:query_language
WpSp:query_language wwwwwwwwww
WpEn:query_language mmmmmmmmmmmm
}


************
지금까지


다음엔


를 정리예정.
************


sql문 기능에 따른 구분

테이블table
테이블 생성 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)으로 테이블에 여러 개 존재 가능

SQL에서 속성attribute의 data_type을 지정할 땐
  • 널null 값 허용 여부
  • 기본 값 필요 여부
를 결정해야 한다.

널 값이 필요 없으면 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 자료형
CHAR(n) 길이 n인 고정 길이 문자열
VARCHAR(n)길이 최대 n인 가변 길이 문자열
INT 정수형
FLOAT(n) n개의 자리수를 갖는 부동소수점형
DATE 날짜형
TIME 시간형

Ref:
[https]컴퓨터 개론: 릴레이션 생성
}
{
Up: SQL,structured_query_language


2. CONCAT

CONCAT(expr1, expr2, ...)
붙여준다. - TBW 더 상세히 서술 //concatenation
}
SQL_구문
{
Up: SQL,structured_query_language
tableofcontents

3. ALTER TABLE

기존 릴레이션의 속성attribute을 추가/삭제/변경하는 명령.
형식:
ALTER TABLE 기존릴레이션이름 ADD 속성이름 자료형;

[1]

ALTER TABLE "테이블명" (MODIFY or ADD) "컬럼명" "변수형" "속성 이름 (ex. NOT NULL , PRIMARY KEY, AUTO_INCREMENT 등등)"
MODIFY => 속성을 변경하고자 때
ADD => 속성을 추가하고자 할때
[2]

4. AS

이름을 지정.
ex. SELECT dominoPizza AS Domino FROM food
food 테이블에서 dominoPizza 라는 컬럼의 이름을 Domino 로 지정해 Select 결과를 나타내준다.[3]

5. CREATE TABLE

CREATE TABLE relation이름 ( 속성1 자료형1, 속성2 자료형2, ..., 속성n 자료형n);

끝에 PRIMARY KEY (속성명) 으로 기본키primary_key를 지정 가능.
자료형 뒤에 NOT NULL을 지정 가능.


6. DELETE

삭제.
ex1.
특정 필드명을 가진 행 삭제
DELETE FROM "테이블명" WHERE "필드명" = "??" ;
(??는 삭제할 필드의 조건)
ex2.
테이블의 행들 전체 삭제
DELETE FROM "테이블명" ;
[4]


7. DROP TABLE

relation을 삭제하는 명령.
형식:
DROP TABLE 릴레이션이름;

8. INSERT

데이터 넣기.
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]

}

10. SQL Query

10.1. Subquery


subquery 사용 시 테이블이 생성되는데, 계속 사용되면 메모리 문제가 생겨서, WITH 절을 써서 임시 테이블을 만들 수 있다. 남용하면 안좋다.
see https://programming119.tistory.com/36

11. WHERE clause

조건에 맞는 것만을 ..

12. LIKE clause

'비슷한'. 이거 pattern_matching?? chk

13. FROM clause