SQL은 데이터베이스에서 데이터를 조작하고 관리하기 위해 사용하는 표준화된 언어임.
SQL을 사용해 데이터베이스에 쿼리를 전송하고 결과를 받아올 수 있음.
- DML(조작언어), DDL(정의 언어), DCL(제어 언어)로 나뉨
- SELECT (검색)
- WHERE (필터링)
- INSERT (삽입)
- UPDATE (갱신)
- DELETE (삭제)
- ORDER BY (정렬)
SELECT * FROM 테이블명
SELECT * FROM 테이블명 WHERE 조건칼럼 = "값1"
INSERT INTO 테이블명 (칼럼1, 칼럼2) VALUES ("값1", "값2")
UPDATE 테이블명 SET 변경할칼럼2 = "값2" WHERE 조건칼럼1 = "값"
DELETE FROM 테이블명 WHERE 조건칼럼 = "값1"
SELECT * FROM 테이블명 ORDER BY 정렬칼럼 ASC
- 오픈 소스 관계형 데이터 베이스 관리 시스템 중 가장 널리 사용됨
- 데이터를 테이블의 형태로 저장함
- column과 row로 구성되어 있음
$servername = "localhost";
$username = "사용자이름";
$password = "비밀번호";
$database = "데이터베이스이름";
$conn = new mysqli($servername, $username, $password, $database);
if ($conn->connect_error) {
die("연결 실패: " . $conn->connect_error);
}
$conn->close();
$sql = "SELECT * FROM 테이블명";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "필드1: " . $row["필드1"] . ", 필드2: " . $row["필드2"] . "<br>";
}
} else {
echo "결과 없음";
}
- 데이터 베이스 트랜잭션은 데이터 베이스 작업을 논리적으로 그룹화함
- 트랜잭션은 데이터 베이스 작업의 실행 단위로 여러 개의 쿼리를 하나의 논리적인 작업으로 그룹화 가능
- 원자성
- 일관성
- 격리성
- 지속성
MySQLi 확장을 사용하는 경우:
php $conn->begin_transaction();
PDO 확장을 사용하는 경우: php $conn->beginTransaction();
트랜잭션 내에서 데이터베이스 작업을 수행합니다. SELECT, INSERT, UPDATE, DELETE 등의 쿼리를 실행할 수 있습니다.
모든 작업이 성공적으로 완료되면 트랜잭션을 커밋하여 변경 사항을 영구적으로 저장합니다.
MySQLi 확장을 사용하는 경우: php $conn->commit();
PDO 확장을 사용하는 경우: php $conn->commit();
작업 중 하나라도 실패하면 트랜잭션을 롤백하여 이전 상태로 복구합니다.
MySQLi 확장을 사용하는 경우: php $conn->rollback();
PDO 확장을 사용하는 경우: php $conn->rollBack();