자료넣기 insert
-만든 테이블에 자료를 넣을때
INSERT INTO 테이블이름 (컬럼이름1, 컬럼이름2...) VALUES ('값1', '값2'...);
<?
$connect=mysql_connect("localhost", "asdf", "1234"); //mySQL에 접속
$mysql = mysql_select_db ("asdf_db", $connect); //db선택
$query="INSERT INTO student (no, name, year) VALUES (1, '김민철', 1996);";//레코드넣기
mysql_query ($query, $connect); //쿼리문입력
mysql_close($connect); //접속끊기
?>
여기서 주의할 점은
바로 "와 '의 사용인데 다음의 경우
INSERT INTO notice (message) VALUES ('Don't touch'); 와 같은쿼리문은
제대로 실행되지 않는다
이럴때는 '대신에 \'를 넣어주면 된다
INSERT INTO notice (message) VALUES ('Don\'t touch');
이것은 방명록,게시판을 만드는데 꼭 필요한 작업으로
특수문자에 \를 추가하는 addslashes와
\를 제거하는 stripslashes라는 함수를 사용하여 구현할 수 있다.
레코드삭제
DELETE FROM 테이블이름
예. DELETE FROM student 라고 하면 스튜든트테이블을 모조리 지워버린다
여기서 특정 레코드만 지우려면 조건을지정해야 하는데, 그것이 where이다
WHERE 라는 것은
쿼리문이 실행될 레코드를 지정해 주는 것으로 DELETE문이나, UPDATE, SELECT문 등에서
사용되는 조건절이다
실행쿼리문 WHERE 조건
DELETE FROM student WHERE no =1
-> no컬럼이 1인 레코드를 삭제
WHERE의 조건으로는 = 이외에도
>, >=, <,<= 와 같은 비교 연산자가 올수도 있고
추가적으로 <> 라는 연산자가 사용되는데 이것은 != 와 같은 것으로 서로 같지 않다는 것이다
컬럼 BETWEEN '값1' AND '값2'
-값이 허용될 범위를 정해주는 조건문으로,
값1, 값2의 사이에 있는 레코드를 선택하여 쿼리문이 실행하도록 해준다.
예를들어 student테이블의 year컬럼에 해당하는 값이 1996~1998 사이에 있는 레코드를 삭제하려면
DELETE FROM student WHERE year BETWEEN 1996 AND 1998
컬럼 LIKE '%값%'
-LIKE는 주로 검색에 이용되는 것으로 해당 컬럼에 값에 해당하는 문자가 있다면
실행대상에 포함시키는 조건식이다.
예로, student테이블의 name컬럼에 '송'이라는 문자가 있는 컬럼의 내용을 삭제하려면
DELETE FROM student WHERE name LIKE '%송%'
여기서 %는 *의 기능으로, 모든 문자가 올 수있다는 의미인데, 여기서 %송%으로 해주면 '송'이라는 문자 앞뒤에 다른 어떤 모든 문자가 있을 수 있다는 것이 된다
만약 '송'으로 시작하는 레코드만 선택하려면 '송%'와 같이 하며
'송'으로 끝나는 레코드만 선택할면 '%송'으로 해주면 된다
AND와 OR
여러개의 조건을 논리 연산자로 연결하여 사용
실행쿼리문 WHERE 조건1 AND 조건2
->조건1과 2를 모두 만족하는 레코드를 선택하여 실행
실행쿼리문 WHERE (조건1 AND 조건2) OR 조건3
->조건1,2를 모두 만족하거나 조건3을 만족하는 레코드를 선택하여 실행
이때 AND, OR대신에 &&, ||를 사용가능하다
DELETE FROM student WHERE (no=2 AND LIKE '송%') OR year BETWEEN 1996 AND 1997
와 같이 복합적으로 사용도 가능하다
UPDATE
-입력된 내용을 변경
UPDATE 테이블이름 SET 컬럼이름1='값1', 컬럼이름2='값2' ... WHERE 조건
예를들어
UPDATE student SET name='철 수', year='2000' where no=2
-> no가 2인 레코드에서 name컬럼을 한혁으로 year컬럼을 2000으로 변경하라는 구문