SQL(1~4)
- Datebase : 여러 사람이 공유하여 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합체
- DBMS(Database Management System) : 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해주고 데이터베이스를 관리해주는 소프트웨어
- 관계형 데이터베이스(RDB) : 서로간에 관계가 있는 데이터 테이블들을 모아둔 데이터 저장공간
SQL 구성
데이터 정의 언어(DDL) : Create, ALTER, DROP 등의 명령어
데이터 조작 언어(DML) : INSERT, UPDATE, DELETE, SELECT 등의 명령어
데이터 제어 언어(DCL) : GRANT, REVOKE, COMMIT, ROLLBACK 등의 명령어
mysql> show databases; 세미콜론(즉시실행)
testdb라는 이름의 데이터베이스 생성 및 확인
CREATE DATABASE testdb;
testdb로 이동
USE testdb;
testdb 삭제
DROP DATABASE testdb;
사용자 정보는 mysql에서 관리하므로 일단 mysql 데이터베이스로 이동 후 조회
use mysql;
SELECT host, user FROM user; (user라는 테이블에서 host와 user정보를 가져올거야.)
현재 pc에서 접속 가능한 사용자(noma, 1234)생성
create user 'noma'@'localhost' identified by '1234';
외부에서 접속 가능한 사용자를 비밀번호와 함께 생성
create user 'username'@'%' identified by 'password;
삭제 예제(localhost, %)
DROP USER 'noma'@'localhost'
DROP USER 'noma'@'%'
- 사용자에게 부여된 모든 권한 목록을 확인
: show grants for 'usename'@'localhost';
참고 - 수정내용이 적용되지 않는 경우 새로고침
: FLUSH PRIVILEGES;
사용자에게 특정 데이터베이스의 모든 권한을 부여
grant all on dbname.* to 'username'@'localhost';
사용자에게 특정 데이터베이스의 모든 권한을 삭제
: revoke all on dbname.* from 'username'@'localhost';
table : 데이터베이스 안에서 실제 데이터가 저장되는 형태이고, 행과 열로 구성된 데이터모음
show tables;
: table 목록 확인 문법
desc tablename;
: table 정보 확인 문법
- ALTER TABLE tablename *테이블 이름 변경
- RENAME new_tablename
alter table tablename *칼럼추가
add column columnname datatype;
alter table person *수정
modify column agee int:
alter table table name *table column 변경 문법
change column old_columnname new_columnname new_datatype;
alter table tablename *컬럼 삭제 예제
drop column columnname;
drop table tablename; *테이블 삭제
zerobase 사용(이동)
use zerobase;
person 테이블 생성(컬럼 정보는 코드참고)
1. create table person
2. (
3. id int, (4번띄우기)
4. name varchar(16),
5. age int,
6. sex char
7.);
Query ok <--떠야 제대로 생성
desc person; (상세정보확인)
입력한 컬럼 이름의 순서와 값의 순서가 일치하도록 주의
- INSERT INTO tablename (column1, column2, ...)
- VALUES (value1, value2, ...);
ex)ID 값이 1인 이효리, 43세, 여자(F) 데이터 추가
1. INSERT INTO person (id, name, age, sex)
2. VALUES (1, '이효리', 43, 'F');
모든 컬럼값을 추가하는 경우에는 다음과 같이 컬럼 이름을 지정하지 않아도 되지만,
입력하는 값의 순서가 테이블의 칼럼 순서와 일치하도록 주의
- INSERT INTO tablename
- VALUES (value1, value2, ...);
ex)ID값이 2인 이상순, 48세, 남자(M) 데이터추가
1. INSERT INTO person
2. VALUES (2, '이상순', 48, 'M');
테이블 내의 특정 칼럼에 대한 데이터를 조회
- SELECT column1, column2, ...
- FROM tablename;
ex)person 테이블 내으 ㅣ이름, 나이, 성별 데이터를 조회
1. SELECT name, age, sex FROM person;
테이블 내의 모든 컬럼에 대한 데이터를 조회
1. SELECT *
2. FROM tablename;
테이블 내에서 조건을 만족하는 데이터조회
- SELECT column1, column2, ...
- FROM tablename
- WHERE condition;
ex)person 테이블에서 성별이 여자인 데이터조회
1. SELECT * FROM person WHERE sex='F';
- UPDATE tablename
- SET column1 = value1, column2= value2, ...
- WHERE condition;
ex) 이효리 나이를 23세로 수정
1. UPDATE person SET age=23 WHERE name='이효리';
1.DELETE FROM tablename
2.WHERE condition;
ex)이상순 데이터 삭제
1. DELETE FROM person WHERE name='이상순';