데이터 저장 단위
열(Column, Attribute)
행(Row, Record)
DBMS : 클라이언트가 요청한 내용을 데이터 베이스에 처리(삽입/삭제/수정/조회). SQL을 통해서 처리.
DB : 저장장치
데이터베이스와 관련된 작업만 할 수 있는 언어
DML(Data Manipulation Language) : 데이터 관리. 데이터 삽입/수정/삭제/선택
- 데이터 조작
DDL(Data Definition Language) : 데이터베이스와 관련되는 객체들을 생성, 삭제, 수정
- Create, Alter, Drop, Truncate(테이블에 있는 데이터 싹 삭제)
DCL(Data Control Language) : 사용자의 권한에 접근 제어
- 사용자에게 권한을 주거나 없애는 언어.
(깨알정보 IP : 나라, Port번호 : 항구)
CREATE TABLE 테이블이름
( 컬럼이름 datatype [제약조건][,컬럼이름 datatype . . .]
[,제약조건]
)
데이블명, 컬럼명 규칙
– 영문자, 숫자, _ 만 가능하다.
– 첫 글자는 반드시 영문자여야 한다.
데이터베이스에 생성된 테이블들 조회
– show tables;
-- localhost : 로컬로 접속할 수 있는 계정 create user 'playdata'@'localhost' identified by '1111';-- 원격 접속 사용자 계정 create user 'playdata'@'%' identified by '1111';-- 등록된 사용자 계정 조회. select user, host from mysql.user;
-- 생성한 계정에 권한 부여 (모든 권한 ==> 관리자 계정.) grant all privileges on *.* to 'playdata'@'localhost'; grant all privileges on *.* to 'playdata'@'%'; -- grant 부여할 권한 on Database.테이블 to 계정. *.*는 모든이라는 뜻-- database 생성 create database testdb;-- database들 조회 show databases;
-- 특정 데이터베이스를 사용 use testdb; -- database이름.테이블이름 로 해야되는데 -> use를 하면 database이름을 생략 가능./* create table 이름( 컬럼이름1 데이터타입 제약조건, 컬럼이름2 데이터타입 제약조건, 컬럼이름3 데이터타입 제약조건, 컬럼이름4 데이터타입 제약조건 ) */ use testdb; -- 테이블 : member, 속성 : id, password, name, point, email, gender, age, join_date create table member ( id varchar(10) primary key, password varchar(10) not null, name varchar(50) not null, point int default 1000, -- 값을 넣지 않으면 1000을 기본값으로 넣는다. not null (x) -> null을 허용하는 컬럼.(nullable) email varchar(100) unique, gender char(1) check(gender in ('M', 'F')), age int check(age > 0), join_date timestamp not null default current_timestamp -- 값을 넣는 sql이 실행되는 시점의 일시를 넣는다. );-- 테이블 조회 show tables;
-- 테이블의 컬럼들 조회 desc member;
-- 테이블 삭제. create로 만든거는 drop으로 삭제한다. 보통 만든 테이블 위에 이 명령어를 위치시킨다. drop table if exists member;show tables;
-- 테이블을 삭제했으므로 테이블 생성을 다시 해줌. -- 데이터를 추가 (insert문 - 행추가) -- 전체 컬럼에 다 값을 넣을 경우 컬럼명은 생략 가능. -- 문자열 : ''로 감싼다. -- 일시 : ''로 감싼다. '년-월-일 시:분:초' insert into member values ('id-1', 'abc111', '이순신', 2000, 'a@a.com', 'M', 20, '2000-10-02 10:10:20');insert into member (id, password, name, join_date) values ('id-2', '11111', '유관순', '2001-01-02 15:22:33');select * from member;