본문 바로가기
sql

[SQL 실무 팁] Mysql 문법 이것만 기억하자

by 주니코니 2023. 7. 12.

[용어]

NOT NULL : null값 없게 하기

 

CHAR : 파이썬에서의 string, 고정된 값

<-> VARCHAR : variable character라 해서, 메모리 아낄 수 있음

 

DATE : DATETIME의 DB용량이 더 크고 느리(4바이트)

TIP DB 크기 설정을 딱 맞게 해야한다!

 

INT의 범위

1.4비트 : -21억~21억

2.SMALLINT 2비트 : -32768~32767

3.BIGINT 8비트 : ~900경~900경

4. TINYINT 1비트 : -128~127

TIP 그래서 아깝더라도 4비트 추천

TIP UNSIGNED 

음수값 빼서 0에서 그만큼 늘어남

ex 0~6만

 

데이터 몇건이냐 할 때 행 개수가 기준

INSERT INTO member_tbl VALUES('Dang','당탕이', '경기 부천 중동'); #한줄 쏘옥 넣기

 

CREATE DATABASE shop_db;

USE shop_db;
CREATE TABLE member_tbl (
	member_id CHAR(10) PRIMARY KEY,
	member_name CHAR(5) NOT NULL, 
    member_addr VARCHAR(100)
);

CREATE TABLE product_tbl (
	product_name CHAR(5) PRIMARY KEY,
	product_cost INT NOT NULL, 
    product_date DATE,
    product_com CHAR (5),
    product_cnt SMALLINT UNSIGNED
);
INSERT INTO member_tbl VALUES('Dang','당탕이', '경기 부천 중동'); 
INSERT INTO member_tbl VALUES('Gee','지운이', '경기 부천 중동'); 

INSERT INTO product_tbl VALUES(
'컴퓨터',10, '2021-1-1','삼성',17); 
UPDATE product_tbl SET product_cost = 11 
 WHERE product_name = '컴퓨터' ;
DELETE FROM product_tbl WHERE product_name = '컴퓨터'; 

SELECT * FROM member_tbl WHERE member_id = 'Dang';

 

한글&영어(사용하는 프로그램의 차이 有)

create table mem_tbl(
mem_id char(10) primary key,
mem_name char(5) not null,
mem_addr varchar(50) #mysql은 한글과 영어 같이  취급. sql server 다르게 취급(한글은 두자리 차지-> mem_name char(2.5)가 됨. 'n'차 한다면 문제 해결.  

#다음과 같이 수정 가능
create table mem_tbl(
mem_id char(10) primary key,
mem_name nchar(5) not null,
mem_addr nvarchar(50)

한글(외국어), 입력시에도  N 붙여주기 

insert into memb_tbl values(
'DANG',N'딩딩이',N'서울 서대문구');