Database_SQL_CRUD
CRUD
테이블 생성 및 삭제
- CREATE TABLE
- 데이터베이스에서 테이블 생성
CREATE TABLE classmates (id INTEGER PRIMARY KEY, name TEXT);
- DROP TABLE
- 데이터베이스에서 테이블 제거
DROP TABLE classmates;
테이블 생성 실습해보기
- 다음과 같은 스키마를 가지고 있는 classmates 테이블을 만들고 스키마를 확인해보세요.
column | datatype |
---|---|
name | TEXT |
age | INT |
address | TEXT |
-- PK 작성시에는 무조건 integer로 해야함 .
CREATE TABLE classmates (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
age INT NOT NULL,
adress TEXT
);
INSERT
- 테이블에 단일 행 삽입
- 모든 열에 데이터가 있는 경우 column을 명시하지 않아도됨
- SQLite는 따로 PRIMARY KEY 속성의 컬럼을 작성하지 않으면 값이 자동으로 증가하는 PK 옵션을 가진 rowid 컬럼을 정의
#각 value에 맞는 column들을 명시적으로 작성
INSERT INTO classmates (
name,age,adress)
values ('홍길동', 30, '서울');
#모든 벨류 작성
INSERT INTO classmates
VALUES
('홍길동',30,'서울');
- 여러개 행 삽입
INSERT INTO classmates
VALUES
('홍길동',30,'서울'),
('김철수', 30, '대전'),
('이라라', 26, '광주'),
('박대박', 29, '구미'),
('최고다', 28, '부산');
SELECT statement
- SELECT
- "query data from a table"
- 테이블에서 데이터를 조회
- SELECT 문은 SQLite에서 가장 복잡한 문이면 다양한 절(clause)와 함께 사용
- ORDER BY, DISTINCT, WHERE, LIMIT, GROUP BY ...
SELECT와 함께 사용하는 clause
LIMIT
- "constrain the number of rows returned by a query"
- 쿼리에서 반환되는 행 수를 제한
- 특정 행부터 시작해서 조회하기 위해 OFFSET
WHERE
- "specify the search condition for rows returned by the query"
- 쿼리에서 반환된 행에 대한 특정 검색 조건을 지정
SELECT DISTINCT
- "remove duplicate rows in the result set"
- 조회 결과에서 중복 행을 제거
- DISTINCT 절은 SELECT 키워드 바로 뒤에 작성해야 함
- 나이를 중복 없이 조회
select DISTINCT age from classmates ;
- ID와 컬럼만 조회
SELECT rowid, name FROM
classmate;
- ID와 컬럼 1개만 조회
SELECT rowid, name FROM
classmate LIMIT 1 ;
- 특정 부분에서 원하는 수 만큼 데이터 조회하기(5개 컬럼 중 3번째 조회하기)
SELECT rowid, name FROM
classmates LIMIT 1 OFFSET 2;
OFFSET
-
동일 오브젝트 안에서 오브젝트 처음부터 주어진 요소나 지점까지의 변위차(위치 변화량)을 나타내는 정수형
-
예시
- 문자열 'abcdef'에서 문자 'c'는 시작점 'a'에서 2의 OFFSET을 지님
-
6번째 행부터 10개 행을 조회
SELECT * FROM MY_TABLE LIMIT 10 OFFSET 5;
WHERE
- 특정 데이터(조건) 조회하기
SELECT rowid,name FROM classmates
WHERE address = '서울' ;
DELETE statement
-
"remove rows from a table"
-
테이블에서 행을 제거
-
조건을 통해 특정 레코드 삭제하기
- 어떤 기준으로 데이터를 삭제하면 좋을까?
- 중복 불가능(UNIQUE)값인 rowid를 기준으로 삭제 !
-
id가 5인 레코드를 삭제해보기
DELETE FROM classmates WHERE rowid=5;
AUTOINCREMENT
- Column attribute
- SQLite가 사용되지 않은 값이나 이전에 삭제된 행의 값을 재사용하는 것을 방지
CREATE TABLE 테이블이름 (
id INTEGER PRIMARY KEY AUTOINCREMENT,
...
)
UPDATE
-
"update data of existing rows in the table"
-
기존 행의 데이터를 수정
-
SET clause에서 테이블의 각 열에 대해 새로운 값을 설정
-
classmates 테이블에 id가 5인 레코드를 수정하기. 이름을 홍길동으로, 주소를 제주도로 바꿔주세요!
UPDATE classmates
set name = '홍길동',
address = '제주도'
WHERE rowid = 5;
CRUD 정리하기
구문 | 예시 | |
---|---|---|
C | INSERT | INSERT INTO 테이블이름 (컬럼1, 컬럼2, ...) VALUES (값1, 값2); |
R | SELECT | SELECT * FROM 테이블이름 WHERE 조건; |
U | UPDATE | UPDATE 테이블이름 SET 컬럼1=값1, 컬럼2=값2 WHERE 조건; |
D | DELETE | DELETE FROM 테이블이름 WHERE 조건; |
Author And Source
이 문제에 관하여(Database_SQL_CRUD), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@holawan/DatabaseSQLCRUD저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)