20220210_SQL 기초 2 ( 특정 데이터 조회, 데이터 수정, 데이터 삭제)

2022. 2. 11.공부/SQL, R

728x90

* WHERE 키워드로 테이블에서 특정  컬럼의 데이터 조회하기

SELECT * FROM 테이블명 WHERE 컬럼명 = '해당 컬럼에서 개발자가 찾을 데이터';

 

SQL의 조회 구문에서테이블의 특정 컬럼을 조회하기 위해서는 WHERE이라는 키워드를 사용한다. 

위와 같은 형식의 조회 구문을 입력할 경우, 특정 column에서 개발자가 찾을 데이터를 가진 row만 출력된다.

 

아래 코드블럭의 조회 구문을 입력하여 users 테이블의 user_name 컬럼에서 '김자바'를 가진 행과

id 컬럼에서 'aaa123'을 가진 행, pw 컬럼에서 'bbbb'를 가진 행을 출력해보았다.

SELECT * FROM users WHERE user_name ='김자바';
SELECT * FROM users WHERE id ='aaa123';
SELECT * FROM users WHERE pw ='bbbb';
SELECT * FROM users WHERE pw='aaaa' AND user_name='쿼리문';

조회 구문에서 WHERE 키워드를 사용할 시, 조건을 여러개 걸 수도 있다.

조건을 여러개 걸 경우 WHERE과 함께 AND, OR 키워드를 쓰면 된다.

위 코드블럭의 경우 AND을 사용하여 pw가 'aaaa'이면서, user_name이 '쿼리문'인 자료를 출력할 수 있다.

 

아래 코드블럭의 경우 OR를 사용하여 id가 'aaaa123'이거나 user_name이 '김자바'인 자료를 출력하였다.

SELECT * FROM users WHERE id='aaa123' OR user_name='김자바';

 

 

* UPDATE 키워드로 테이블 수정하기 

UPDATE 테이블명 SET 컬럼명='변경 내용';

 

테이블의 데이터를 수정하기 위해서는 UPDATE라는 키워드를 사용한다. 

아래의 코드 구문을 입력하여 users 테이블의 pw 컬럼의 모든 데이터를 pppp로 변경하였다.

테이블 특정 컬럼의 모든 데이터를 일괄적으로 변경할 때에는, UPDATE 이외의 별도 구문 입력을 통해 SQL의 안전모드를 비활성화시켜야 한다. SET SQL_SAFE_UPDATES를 이용하여 안전모드를 0으로(비활성화) 바꿔준 후에 테이블을 수정하였다.

SET SQL_SAFE_UPDATES=0; -- 0이면 안전모드 비활성화, 1이면 다시 활성화
UPDATE users SET pw='pppp';

 

일괄 변경 구문과는 달리 해당 컬럼의 특정 데이터를 변경할 때는 WHERE을 걸어준다. 변경 구문에서 WHERE을 사용하여 id 컬럼의 특정 자료 6개를 지정하여 1111, 3333, 4444, 5555..로 바꿔보았다.

UPDATE users SET pw='1111' WHERE id='aaa123';

UPDATE users SET pw='3333' WHERE id='abc1234';

UPDATE users SET pw='4444' WHERE id='bbb123';

UPDATE users SET pw='5555' WHERE id='bbb126';

UPDATE users SET pw='6666' WHERE id='ccc123';

UPDATE users SET pw='7777' WHERE id='qwer123';

 

또, 이런식으로 입력해도 되는데.. 위의 코드구문같은 경우 users 테이블의 id 컬럼이 aaa123인 행을 찾아서 user_name은 음으로, pw는 5로 바꿔주라는 이야기! 변경 구문에서 WHERE로 위치를 지정하여 데이터를 자유롭게(?) 수정할 수 있다.

UPDATE users SET user_name='음', pw='5' WHERE id='aaa123';

 

 

 

* 데이터 삭제

DELETE FROM 테이블명;

 

DELETE FROM 테이블명;을 입력할 경우 테이블 전체가 싹 사라진다.

DELETE 구문도 역시 WHERE과 조합하여 사용한다.

 

WHERE 키워드를 이용하여 users 테이블 id 컬럼에서 aaa123라는 값을 가진 자료를 삭제할 수 있다.

DELETE FROM users WHERE id='aaa123';

DROP TABLE을 사용하여 테이블을 일괄적으로 삭제할 수 있다.

DROP TABLE 테이블명;