[데분스] Day+2. SQL - Database, Table, INSERT

용솝·2024년 2월 3일
1

SQL

목록 보기
1/8
post-thumbnail

01. Database

  • Database: 공유를 목적으로 하는 데이터의 집합체 (ex. Excel, , JSON, XML 등의 집합도 DB)

  • DMBS: 데이터베이스를 관리해주는 소프트웨어 (ex. MY-SQL, ORACLE DB)

  • 관계형 데이터베이스: 서로 간 관계있는 데이터 테이블들을 모아둔 데이터 저장공간

  • SQL: 데이터베이스에서 데이터 정의, 조작, 제어를 위해 사용하는 언어

  • SQL 구성:
    - DDL(정의, Definition): CREATE, ALTER, DROP 등 테이블과 직접 관련
    - DML(조작, Manipulation): INSERT, UPDATE, DELETE, SELECT 등 주로 데이터 관련
    - DCL(제어, Control): GRANT, REVOKE, COMMIT, ROLLBACK 등 주로 권한/저장 관련


* DCL(Data Control Language) : GRANT ON_TO, REVOKE ON_FROM

-- TABLE 조회, 생성, 삭제
SHOW DATABASES; -- DB 목록 보기
CREATE DATABASE mydb; -- 'mydb' 라는 DB 만들기
DROP DATABASE mydb; -- 'mydb' 라는 DB 삭제하기
-- USER 생성, 삭제
USE mysql; -- 사용자 정보는 mysql 테이블에서 관리함!
CREATE USER 'zero'@'%' IDENTIFIED BY '1234' -- 외부접속 가능한('%') 계정 생성
DROP USER 'zero'@'%' ; -- zero 계정 삭제하기
-- USER 권한 조회, 부여, 회수
SHOW GRANTS FOR 'zero'@'localhost'; -- zero계정의 모든 권한 보기 
GRANT ALL ON mydb.* TO 'zero'@'localhost'; -- mydb 모든 권한 부여
REVOKE ALL ON  mydb.* FROM 'zero'@'localhost'; -- mydb의 모든 권한 회수

-- *** 에러 발생 시 새로고침 ***
FLUSH PRIVILEGES; 

02. Table 생성, 변경, 삭제

* DDL(Data Definition Language) : CREATE, ALTER TABLE, DROP

-- uft-8 + 이모지까지 지원하는 DB 생성
CREATE DATABASE zerobase DEFAULT CHARACTER SET UTF8MB4;

-- 가변형 문자열 컬럼을 가지는 테이블 생성
CREATE TABLE animal (name varchar(16), type varchar(16));
SHOW TABLES; -- 전체 테이블 조회
DESC animal; -- 해당 테이블 속성 조회
-- REANAME
ALTER TABLE animal REANAME person; -- 테이블 이름 변경

-- ADD COLUMN
ALTER TABLE person
	ADD COLUMN agee double; -- agee 컬럼 (double형) 추가

-- MODIFY COLUMN
ALTER TABLE person
	MODIFY COLUMN agee int; -- agee 컬럼 int형으로 변경

-- CHANGE COLUMN
ALTER TABLE person
	CHANGE COLUMN agee age int; -- agee 컬럼 이름, 타입 변경
    
-- DROP COLUMN    
ALTER TABLE person
	DROP COLUMN age; -- age 컬럼 삭제

DROP TABLE person; -- 테이블 삭제

03. INSERT - SELECT, WHERE, UPDATE, DELETE

* DML(Data Manipulation Language) : INSERT INTO, SELECT, UPDATE_SET, DELETE

-- INSERT INTO _ VALUES
INSERT INTO person (id, name, age, sex) -- 컬럼에
	VALUES (1, '이효리', 43, 'F'); -- 해당 값 추가
INSERT INTO person -- 컬럼 정보 생략 가능
	VALUES (2, '이상순' 48, 'M');, 모든 컬럼에 데이터 있어야

-- SELECT
SELECT * FROM person; -- person 데이터 전체 조회
SELECT name, age FROM person; -- name, age 값 조회
SELECT name FROM person
	WHERE sex = 'F'; -- 성별이 여성인 name 값 조회

-- UPDATE _ SET
UPDATE person SET age=23
	WHERE name='이효리';

-- DELETE
DELETE FROM person
	WHERE id=2;

profile
🖐

0개의 댓글