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
유일한 검색 결과를 이용할 때는 부등호( <=, = , >=)