-
[SQL] SQL 기초 (CREATE TABLE, INSERT INTO, SELECT, ALTER TABLE, UPDATE, DELETE FROM)SQL & Database 2021. 9. 30. 19:13
Introduction to SQL
-Relational DB에 데이터를 저장하기 위한 프로그래밍 언어
-intergrity: 무결성
-Web frameworks 와 DB 응용프로그램에서 널리 사
Relational Databases
-하나 이상의 테이블로 DB를 구성하는 것이 RDBMS
-DB에 데이터 타입 INTEGER, TEXT, DATE, REAL (실수)
Statesments 구문
CREATE TABLE table_name ( column_1 data_type, column_2 data_type, column_3 data_type );
-Columns 이름과 data type으로 이루어져 있음. 때로는 값으로 들어감
-여기서 CREATE TABLE 하는 부분을 clause 라고 한다.
-- 테이블의 모든 행(row)을 가져온다. SELECT * FROM table; -- 새로운 테이블을 생성한다. CREATE TABLE students ( column_1 data_type, column_2 data_type, ); -- 테이블에 있는 행을 업데이트 한다. UPDATE table SET column_1 = new_value WHERE id = 3;
CREATE
CREATE TABLE celebs ( id INTEGER, name TEXT, age INTEGER ); -- 이미 있는 테이블 이름으로 만들면 에러가 난다.
INSERT
INSERT INTO celebs (id, name, age) VALUES (1, 'Justin Bieber', 22); -- 여러 행을 한번에 INSERT 하는 방법 INSERT INTO table (col1, col2, col3) VALUES (row1_val1, row1_val2, row1_val3), (row2_val1, row2_val2, row2_val3), (row3_val1, row3_val2, row3_val3);
SELECT
SELECT name FROM celebs;
- SELELCT 는 statement가 query라는 것을 나타내는 절 (clause)
- '*'은 모든 column을 나타내는 wildcard
- SELECT는 항상 result set라 하는 새로운 테이블을 return 한다
- 기본적으로 table에 이미 있던 순서대로 나타난다. ORDER BY로 변경 가능
ALTER
ALTER TABLE celebs ADD COLUMN twitter_handle TEXT;
-ALTER TABLE이 change를 만들 수 있게 하는 clause 다.
-NULL은 SQL에서 missing 또는 unknown 데이터를 나타내는 특별한 값
-COLUMN이 새로 추가 되면 일단 null 값이 박힌다.
-새로운 column은 항상 마지막에 붙는다. 중간에 삽입할수 없음.
-하지만 select 할 때 원한는 순서대로 불러 올 수 있음
UPDATE
UPDATE celebs SET twitter_handle = '@mincheol' WHERE id = 4;
-update는 이미 있는 기록을 변경함
-ALTER는 columns을 수정하고 UPDATE는 rows를 수정한다. Row를 update만 할 수 있고 삭제 추가는 못한다.
DELETE
--IS NULL은 null값이 들어 있을 경우 true를 반환한다. DELETE FROM celebs WHERE twitter_handle IS NULL;
-- 이렇게 하면 조건에 걸리는게 많아도 처음 5개만 삭제한다. DELETE FROM table WHERE condition LIMIT 5;
Constraints
CREATE TABLE celebs ( id INTEGER PRIMARY KEY, name TEXT UNIQUE, date_of_birth TEXT NOT NULL, date_of_death TEXT DEFAULT 'Not Applicable' );
-column의 data type을 정한 다음에 추가하는 info.
-특정 restriction에 부합하지 않는 inserted date를 reject함
-Primary key columns은 row를 uniquely identify하기 위해 사용. 이미 있는 값 넣으려 할 때 에러 생김
-Unique columns은 primary key와 비슷. 하지만 여러게 columns가 unique가 될 수 있음
-NOT NULL이 적힌 column은 반드시 값을 가져야함. 값이 없는 것을 넣으면 에러가 남
-DEFAULT column은 값이 없을 경우 자동으로 설정한 값이 들어감
-테이블에 contraints를 넣는 이유: 데이터의 reliability (신뢰성) 과 consistency (일관성), invalid data를 방지하기 위해. Missing data를 방지. Null값이 들어가기 보다는 디폴트로 0이 들어가게 함. Uniqueness를 함. Id나 identifier column은 중복되면 안됨.
정리
CREATE TABLE -- 테이블 생성 INSERT INTO -- 새로운 행 추가 SELECT -- 데이터 검색 ALTER TABLE -- 테이블 변경 UPDATE -- 행 수정 DELETE FROM -- 행 제거
Review
자주 쓰이는 SQL 명령어: DROP TABLE, ANALYZE (Table의 통계 나타냄)
'SQL & Database' 카테고리의 다른 글
[Tibero] 데이터 암호화 (0) 2023.04.07 [SQL] SQL 기초 COUNT(), SUM(), MAX()/MIN(), AVG(), ROUND() (0) 2021.10.27 [SQL] SQL 기초 (SELECT, AS, DISTINCT, WHERE, LIKE, IS NULL, BETWEEN, AND, OR, ORDER BY, LIMIT, CASE) (0) 2021.10.13 [SQL] SQL의 간단한 역사 (0) 2021.09.15