백문이 불여일견이라고, 강의를 아무리 집중해서 보고, 다른 사람의 자료를 보더라도 손으로 쓰는 거만큼 머리에 남는게 없더라.
이것만은 짚고가자 하는 필수 SQL 문법 재정리하기!!
관련 노트 : 학습 과제 2 오답노트_비공개
SQL 작성 순서
SELECT - FROM - WHERE - GROUP BY - HAVING - ORDER BY - LIMIT
SQL 실행 순서
FROM - WHERE - GROUP BY - HAVING - SELECT - ORDER BY - LIMIT
mysql -u 유저네임 -p [데이터베이스]
mysql -h "엔드포인트" -P 3306 -u 유저네임 -p비밀번호 데이터베이스
CHAR
또는 CHARACTER
: 고정 길이 문자열을 나타내는 데이터 타입( 지정된 길이만큼의 문자열을 저장)
VARCHAR
또는 CHARACTER VARYING
: 가변 길이 문자열을 나타내는 데이터 타입 (최대 길이가 정해져 있으나 실제 데이터의 길이에 따라 유동적으로 조정됨)
TEXT
: 긴 문자열을 나타내는 데이터 타입. 가변 길이의 문자열을 저장할 수 있음.
INTEGER
: 정수 값을 나타내는 데이터 타입 (일반적으로 32비트 혹은 64비트로 표현)
REAL
또는 FLOAT
: 실수 값
DOUBLE
: 보다 높은 정밀도 제공
DECIMAL
또는 NUMERIC
: 고정 소수점 숫자를 나타내는 데이터 타입, 정확한 소수 자리를 유지하기 위해 사용
DATE
: 날짜 값을 나타내는 데이터 타입
TIME
: 시간 값을 나타내는 데이터 타입
TIMESTAMP
: 날짜와 시간을 나타내는 데이터 타입
BOOLEAN
: 참(True) 또는 거짓(False) 값을 나타내는 데이터 타입
create TABLE 테이블_이름 (열1_이름 type 그_외_옵션, 열2_이름 type 그_외_옵션)
# 예시 1
create table gas_brand (id int AUTO_INCREMENT,name varchar(16),primary key (id))
# 예시 2
create table gas_brand (id int AUTO_INCREMENT primary key,name varchar(16))
# 예시 1
insert into 테이블_이름 (열_이름1, 열_이름2) values ('데이터 내용1_string','데이터 내용2_string','데이터 내용3_string')
## (열_이름1, 열_이름2)은 전체 열 입력이 아닌 일부 열일 경우 작성하고, 전체 열 입력일 경우 안적어도 됨
# 예시 2
insert into gas_brand values (데이터 내용1_int, 데이터 내용2_int,데이터 내용3_int)
desc 테이블_이름
select * from 테이블_이름
import mysql.connector
conn=mysql.connector.connect(
host = "엔드포인트",
port = 포트 넘버,
user = '유저 이름',
password = "비밀번호",
database="데이터베이스 이름"
)
#즉, conn : 유저 정보가 담겨 있음
cur=conn.cursor(buffered=True)
#conn에는 유저 정보
cur.execute("명령")
#명령이 길 경우 1,
sql = "insert into 테이블_이름 (데이터_제목) values ('데이터 내용1_string','데이터 내용2_string','데이터 내용3_string')"
cur.execute(sql)
#명령이 길 경우 2,(줄나눠도 인식시키는 방법)
sql = "INSERT INTO gas_station (a, b, c, d, e, f, g, h, i, j, k)" +\
"VALUES(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)"
cur.execute(sql,(A,B,C,D,E,F,G,H,I,J,K))
conn.commit()
In [5]: cursor.fetchone()
Out[5]: ('16.06.03', 97000, 98600, 96900, 98000, 321405)
In [6]: cursor.fetchone()
Out[6]: ('16.06.02', 99000, 99300, 96300, 97500, 556790)
In [7]: cursor.fetchone()
In [8]:
In [9]: cursor.fetchall()
Out[9]:
[('16.06.03', 97000, 98600, 96900, 98000, 321405),
('16.06.02', 99000, 99300, 96300, 97500, 556790)]
📚SQL 문법 정리
3) 데이터베이스로부터 데이터 읽기
COMMIT (SQL)
[SQL 24] 제약조건 - PK(Primary Key), FK(Foreign Key)
SQL 외래 키에 대한 이해
[SQL]작성 및 실행 순서를 이해하면 좋은 점