DBMS - NOT NULL, IFNULL, auto_increment, LIKE, AND, OR, 칼럼 이름, 칼럼 순서 변경

RYU·2025년 4월 12일

DBMS

목록 보기
5/9

  • 이전에 배웠던 걸 토대로 적용하였다.

  • 아이디에 값을 안 줘도 생성이 된다.
  • 근데 id값은 각 데이터들을 구분하기 위한 별칭같은 것이기 때문에 NULL을 허용하지 않게 바꿔야 한다.

id칼럼 not null로 변경(modify)

ALTER TABLE article MODIFY COLUMN id(데이터 명) INT(데이터 타입) NOT NULL;	
# 실행시키면 warning이 뜨지만 적용된다. warning이 뜨는 이유는 id값이 null이었기 때문이다.

  • null 값이 안되게 변경하였기 때문에 null -> 0으로 변경되었다.

id 값 유니크(unique) 적용

  • id 값에 고유 키를 주기 위해서
ALTER TABLE article ADD PRIMARY KEY(id);

을 했지만 현재 id 값이 다 0이기 때문에 오류가 발생한다.
id 모두 값을 변경해준 뒤 다시 적용을 하게 되면 성공하게 된다.

id 칼럼에 auto_increment

  • 행을 추가할 때마다 id값도 계속 추가해야하는 번거로움이 생겨 자동으로 증가할 수 있게 auto_increment를 사용하면 행 추가할때 id 값을 부여하지 않아도 된다.
ALTER TABLE article MODIFY COLUMN id INT NOT NULL AUTO_INCREMENT;

나머지 칼럼 모두 not null 적용(modify)

ALTER TABLE article MODIFY regDate DATETIME NOT NULL;
ALTER TABLE article MODIFY title VARCHAR(100) NOT NULL;
ALTER TABLE article MODIFY regDate VARCHAR(100) NOT NULL;

id 칼럼에 unsigned 속성 추가(modify)

unsigned : 음수를 포함하지 않고 양수만 사용할 수 있게 한다.

ALTER TABLE article MODIFY COLUMN id INT UNSIGNED NOT NULL AUTO_INCREMENT;

writer 칼럼 추가(add)

ALTER TABLE article ADD COLUMN writer VARCHAR(100) NOT NULL AFTER title;

writer를 nickname으로 변경(change)

ALTER TABLE article CHANGE oldName newName TYPE 조건;
ALTER TABLE article CHANGE writer nickname VARCHAR(100) AFTER `body`;

hit 칼럼 추가(add) 후 삭제(drop)

ALTER TABLE article ADD COLUMN hit INT UNSIGNED NOT NULL AFTER nickname;
ALTER TABLE article DROP COLUMN hit;

hit 다시 추가 후 닉네임에 이름 넣기

UPDATE article
SET nickname = '무명'
WHERE nickname = '';

데이터 4개 추가

INSERT INTO article
SET regDate= NOW(),
title = '제목3',
`body` = '내용3',
nickname = '홍길순',
hit = 10;

INSERT INTO article
SET regDate= NOW(),
title = '제목4',
`body` = '내용4',
nickname = '홍길동',
hit = 55;

INSERT INTO article
SET regDate= NOW(),
title = '제목5',
`body` = '내용5',
nickname = '홍길동',
hit = 10;

INSERT INTO article
SET regDate= NOW(),
title = '제목6',
`body` = '내용6',
nickname = '임꺽정',
hit = 100;

조회수가 가장 많은 게시물 3개 보여주기

SELECT * FROM article
ORDER BY hit DESC
LIMIT 3;

  • ORDER BY : 결과가 출력되는 순서를 정렬
    • DESC : 내림차순
    • ASC : 오름차순

작성자명이 '홍길'로 시작하는 게시물만 보여주기

SELECT * FROM article
WHERE nickname LIKE '홍길%';

  • LIKE :특정 문자 검색
    • 'a%' : 'a'로 시작하는 문자
    • '%a' : 'a'로 끝나는 문자
    • '%a%' : 'a'문자가 포함된 값 모두 조회

조회수 보여주기

SELECT * FROM article
WHERE hit >= 10 AND hit <= 55;

SELECT * FROM article
WHERE nickname != '무명' AND hit <= 50;

SELECT * FROM article
WHERE nickname <> '무명' AND hit <= 50;
  • != == <>

SELECT * FROM article
WHERE nickname = '무명' OR hit >= 50;


IFNULL

  • 컬럼 데이터가 NULL인 경우 대체 값으로 치환해준다.
SELECT IFNULL("컬럼명", "대체 값")
FROM 테이블명;

0개의 댓글