CREATE TABLE temp_03T (
no INT NOT NULL auto_increment PRIMARY KEY ,
data VARCHAR(20) NULL
);
INSERT INTO temp_03T VALUES ( default, '애플' );
INSERT INTO temp_03T VALUES ( default, '애플' );
INSERT INTO temp_03T VALUES ( default, '애플' );
SELECT * FROM temp_03T;
| no | data |
|---|---|
| 1 | 애플 |
| 2 | 애플 |
| 3 | 애플 |
auto_increment PRIMARY KEY : 자동 일련번호 지정, 입력시에 default 를 이용
DELETE FROM temp_03T WHERE no = 2;
SELECT * FROM temp_03T;
| no | data |
|---|---|
| 1 | 애플 |
| 3 | 애플 |
부여된 일련번호중에 도중에 삭제되는 레코드가 생겨도 비어있는 번호를 채우는 일을 벌어지지 않는다.
레코드와 레코드를 구분하는 기준이 되는 필드
1. NOT NULL - 생략불가
2. NO DUPLICATED - 중복불가
3. NO CHANGE - 변경불가
INSERT INTO temp_03T VALUES ( default, NULL );
SELECT * FROM temp_03T WHERE data = NULL; (X)
SELECT * FROM temp_03T WHERE data IS NULL; (0)
= 아닌 IS 를 쓴다.CREATE TABLE temp_04T (
data VARCHAR(20) NOT NULL,
data2 VARCHAR(20) NULL
);
INSERT INTO temp_04T VALUES ('애플','애플');
INSERT INTO temp_04T VALUES ('애플',NULL); -- OK
INSERT INTO temp_04T VALUES (NULL,'애플'); -- 에러
다른 테이블에서 지정된 PK를 내 쪽에서 참조하여 사용하는 필드
"PK를 가지고 있다는 것은 그 PK를 중심으로
하나의 테이블을 구성하고 있는 경우가 대부분이 된다"
: 엔티티 ( Entity ) 라고 한다.
Entity 의 개념
1. 추상명사에 해당한다
2. 단일한 성격의 PK 를 가지고 있고
3. 2개 이상의 속성으로 표현되어야 한다.
엔티티에 종속되어 엔티티를 표현
"물리적으로 구현시 다 쪽에서 1 쪽의 PK 를 FK로 참조하는 형태로 구현한다."ALTER TABLE User_FT DROP active;
ALTER TABLE User_FT CHANGE pwd passwd CHAR(4);
ALTER TABLE User_FT MODIFY phone CHAR(4);
ALTER TABLE User_FT RENAME User_GT;
-- User_FT 테이블 이름을 User_GT 로 바꿈
SELECT stId, SUBSTR(name,1,2) FROM StudentT;
SELECT stId, LENGTH(name) FROM StudentT;
SELECT stId, REVERSE(name) FROM StudentT;
SELECT stId, CONCAT(name,'***') FROM StudentT;
SELECT CONCAT( name, addr ) FROM StudentT;
SELECT CONCAT( name, ":", addr ) FROM StudentT;
하나의 문장이 동작한 결과물을 이용해 다른 문장이 연속해서 동작하는 문장
SELECT * FROM ScoreT WHERE subId = 'KOR1' and stId
IN ( SELECT stId FROM StudentT WHERE addr LIKE '%역삼%' )
여러 검색 결과를 이용할 때는 IN/ NOT IN
유일한 검색 결과를 이용할 때는 부등호( <=, = , >=)