BKJang / do-you-know-backend

πŸ–₯ This repository contains contents about overall knowledge of backend

Home Page:https://bkjang.github.io/do-you-know-backend

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SQL

BKJang opened this issue Β· comments

SQL

SQL은 데이터λ₯Ό 보닀 μ‰½κ²Œ κ²€μƒ‰ν•˜κ³  μΆ”κ°€, μ‚­μ œ, μˆ˜μ • 같은 μ‘°μž‘μ„ ν•  수 μžˆλ„λ‘ κ³ μ•ˆλœ 컴퓨터 언어이며 κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ 데이터λ₯Ό μ‘°μž‘ν•˜κ³  μΏΌλ¦¬ν•˜λŠ” ν‘œμ€€ μˆ˜λ‹¨μ΄λ‹€.

DML(Data Manipulation Language)

  • 데이터λ₯Ό μ‘°μž‘ν•˜κΈ° μœ„ν•΄ μ‚¬μš©ν•œλ‹€.
  • INSERT, UPDATE, DELETE, SELECT

SELECT

select empno, name, job from employee order by name;

INSERT

insert into ν…Œμ΄λΈ”λͺ…(ν•„λ“œ1, ν•„λ“œ2, ν•„λ“œ3, ν•„λ“œ4, … ) 
values ( ν•„λ“œ1의 κ°’, ν•„λ“œ2의 κ°’, ν•„λ“œ3의 κ°’, ν•„λ“œ4의 κ°’, … )
insert into ROLE (role_id, description)
values ( 200, 'CEO');

UPDATE

update  ν…Œμ΄λΈ”λͺ…
set  ν•„λ“œ1=ν•„λ“œ1μ˜κ°’, ν•„λ“œ2=ν•„λ“œ2μ˜κ°’, ν•„λ“œ3=ν•„λ“œ3μ˜κ°’, …
where 쑰건식
update ROLE
set description = 'CTO'
where role_id = 200;

DELETE

delete
from  ν…Œμ΄λΈ”λͺ…
where  쑰건식
delete
from ROLE
where role_id = 200;

DDL(Data Definition Language)

  • λ°μ΄ν„°λ² μ΄μŠ€μ˜ μŠ€ν‚€λ§ˆλ₯Ό μ •μ˜ν•˜κ±°λ‚˜ μ‘°μž‘ν•˜κΈ° μœ„ν•΄ μ‚¬μš©
  • CREATE, DROP, ALTER

CREATE

create table ν…Œμ΄λΈ”λͺ…( 
  ν•„λ“œλͺ…1 νƒ€μž… [NULL | NOT NULL][DEFAULT ][AUTO_INCREMENT], 
  ν•„λ“œλͺ…2 νƒ€μž… [NULL | NOT NULL][DEFAULT ][AUTO_INCREMENT], 
  ν•„λ“œλͺ…3 νƒ€μž… [NULL | NOT NULL][DEFAULT ][AUTO_INCREMENT], 
  ........... 
  PRIMARY KEY(ν•„λ“œλͺ…) 
);
create table EMPLOYEE2(   
  empno      INTEGER NOT NULL PRIMARY KEY,  
  name       VARCHAR(10),   
  job        VARCHAR(9),   
  boss       INTEGER,   
  hiredate   VARCHAR(12),   
  salary     DECIMAL(7, 2),   
  comm       DECIMAL(7, 2),   
  deptno     INTEGER
);

ALTER

alter table ν…Œμ΄λΈ”λͺ…
add  ν•„λ“œλͺ… νƒ€μž… [NULL | NOT NULL][DEFAULT ][AUTO_INCREMENT];
alter table EMPLOYEE2
add birthdate varchar(12);

DROP

drop table ν…Œμ΄λΈ”μ΄λ¦„;
drop table EMPLOYEE2;

DCL(Data Control Language)

  • 데이터λ₯Ό μ œμ–΄ν•˜κΈ° μœ„ν•΄ μ‚¬μš©ν•œλ‹€.
  • κΆŒν•œμ„ κ΄€λ¦¬ν•˜κ³ , ν…Œμ΄ν„°μ˜ λ³΄μ•ˆ, 무결성 등을 μ •μ˜ν•œλ‹€.
  • GRANT, REVOKE

μ‚¬μš©μž 생성 및 κΆŒν•œ λΆ€μ—¬

  • db이름 λ’€μ˜ * λŠ” λͺ¨λ“  κΆŒν•œμ„ μ˜λ―Έν•œλ‹€.
  • @’%β€™λŠ” μ–΄λ–€ ν΄λΌμ΄μ–ΈνŠΈμ—μ„œλ“  μ ‘κ·Ό κ°€λŠ₯ν•˜λ‹€λŠ” 의미이고, @’localhostβ€™λŠ” ν•΄λ‹Ή μ»΄ν“¨ν„°μ—μ„œλ§Œ μ ‘κ·Ό κ°€λŠ₯ν•˜λ‹€λŠ” μ˜λ―Έλ‹€.
  • flush privilegesλŠ” DBMSμ—κ²Œ μ μš©μ„ ν•˜λΌλŠ” μ˜λ―Έλ‹€.
grant all privileges on db이름.* to 계정이름@'%' identified by οΌ‡μ•”ν˜Έβ€™;
grant all privileges on db이름.* to 계정이름@'localhost' identified by οΌ‡μ•”ν˜Έβ€™;
flush privileges;