밍키의 마법세상
DB(MySQL) - 기본 명령어 본문
- MySQL 접속
mysql -u (계정 이름) -p비밀번호
- 데이터베이스 확인
SHOW DATABASES;
- 테이블 확인
SHOW TABLES;
- 현재 데이터베이스 확인
SELECT database();
- 테이블 내용 확인
desc tb1;
- 데이터베이스 선택
use db1;
- 테이블 만들기
CREATE TABLE tb1(
이름 자료형,
이름 자료형);
- 테이블 정보 모두보기
SELECT * FROM tb1;
- tb1에서 name만 보기
SELECT name FROM tb1
- 일반적 삽입
INSERT INTO tb1 VALUES('A101', '강호동', 40)
- 데이터 순서 필요 없는 삽입
INSERT INTO tb2(num, name, age)
VALUES('A102', '김구라', 28),
('A103', '김희철', 20),
('A104', '문근영', 23),
('A105', '박나래', 35);
- 데이터 순서 맞추는 삽입 ( 제일 편함)
INSERT INTO tb2 VALUES
(데이터1, 데이터2, 데이터3..),
(데이터1, 데이터2, 데이터3..),
(데이터1, 데이터2, 데이터3..),
(데이터1, 데이터2, 데이터3..),
..;
- 테이블 복사
CREATE TABLE tb1A SELECT * FROM tb1;
- 칼럼 정의 변경
ALTER TABLE 테이블 이름 MODIFY 칼럼이름 자료형(크기)
- 칼럼 위치 변경
EX) ALTER TABLE tb1C MODIFY birth DATETIME FIRST;
- 칼럼 추가
ALTER TABLE 테이블 이름 ADD 칼럼이름 자료형 (순서)
EX) ALTER TABLE tb1D ADD birth DATETIME FIRST;
EX) ALTER TABLE tb1E ADD birth DATETIME AFTER num;
- 칼럼 이름과 정의 변경
ALTER TABLE 테이블 이름 CHANGE 변경전이름 변경후이름 자료형;
EX) ALTER TABLE tb1C CHANGE birth birthdate DATE;
데이터베이스 삭제
DROP DATABASE 데이터베이스 이름
테이블 삭제
DROP TABLE 테이블 이름
- 칼럼 삭제
ALTER TABLE 테이블 이름 DROP 칼럼 이름
- 기본키 생성
CREATE TABLE 테이블 이름 (
칼럼이름 자료형 PRIMARY KEY,
..
);
- 연속 번호 기능
CREATE TABLE 테이블 이름(
칼럼이름 자료형 AUTO_INCREMENT PRIMARY KEY,
..);
- 데이터 초기화
DELETE FROM auto_test;
- 연속번호 초기화
ALTER TABLE 테이블 이름 AUTO_INCREMENT = 초깃값;
EX) ALTER TABLE tb1 AUTO_INCREMENT = 0;
- 칼럼의 초깃값 설정
CREATE TABLE 테이블이름 (
칼럼이름 자료형,
칼럼이름 자료형 DEFAULT 초깃값,
...);
- 초깃값 설정 추가
ALTER TABLE 테이블이름 MODIFY 칼럼이름 자료형 DEFAULT '초깃값';
- 테이블 복사
CREATE TABLE 새 테이블 이름 SELECT * FROM 복사할 테이블 이름;
- 칼럼 구조만 복사
CREATE TABLE 새 테이블 이름 LIKE 복사할 테이름 이름;
- 레코드 복사
INSERT INTO 새 테이블 이름 SELECT * FROM 복사할 테이블 이름;
- 특정 칼럼만 복사
INSERT INTO 새 테이블 이름(새 칼럼 이름) SELECT 칼럼이름 FROM 복사할 테이블 이름;
- 별명으로 데이터 추출
SELECT 칼럼 이름 AS 별명 FROM 테이블이름
- 값 계산후 데이터 추출
SELECT 칼럼이름 계산과정 AS 별명 FROM 테이블이름
- AVG() : 평균
SELECT AVG(칼럼이름) FROM 테이블이름
- SUM() : 합계
SELECT SUM(칼럼이름) FROM 테이블이름
- COUNT : 개수
SELECT COUNT(*) FROM 테이블이름 -> 모든 레코드의 개수
- 문자열 연결하기
SELECT CONCAT(칼럼이름, 칼럼이름, '문자열') FROM 테이블이름
- NOW() : 현재 시간
INSERT INTO 테이블이름 (칼럼이름) VALUES(NOW());
- 레코드수 제한
SELECT 칼럼이름 FROM 테이블이름 LIMIT 제한갯수;
- 레코드 범위 지정
SELECT 칼럼이름 FROM 테이블이름 LIMIT 레코드수 OFFSET 이동할레코드수;
EX) SELECT * FROM CUSTOM LIMIT 5 OFFSET 2;
--> 2칸 이동하여 3번째 부터 표시
- SELECT 조건
SELECT 칼럼이름 FROM 테이블이름 WHERE sales>=100;
-> 다르다 : <>
A(값)중에 B(칼럼)가 있다 : A IN B
C부터 D 사이에 A가 있다 : A BETWEEN C AND D
C부터 D 사이에 A가 없다 : A NOT BETWEEN C AND D
-> NULL값 찾기 : 칼럼이름 IS NULL
- 퍼지검색 : 문자열을 일부만으로 검색
SELECT * FROM 테이블이름 WEHRE 칼럼이름 LIKE '김%';
임의의 문자열(0개 가능) : % EX) %산% : 부산시, 울산시, 산, 울산
임의의 한 글자(무조건 1개) : _ EX) 경_도 : 경기도, 경상도, 경상남도(X)
- 중복 제외 검색
SELECT DISTINCT 칼럼이름 FROM 테이블이름
- 오름차순으로 정렬 검색
SELECT 칼럼이름 FROM 테이블이름 ORDER BY 기준칼럼이름;
- 내림차순으로 정렬 검색
SELECT 칼럼이름 FROM 테이블이름 ORDER BY 기준칼럼이름 DESC;
- 그룹별로 표시 검색
SELECT 칼럼이름 FROM 테이블이름 GROUP BY 그룹화된칼럼이름;
EX) SELECT num, COUNT(*) FROM TB GROUP BY num;
--> num으로 그룹화하여 num1,num2등등의 갯수 표시
EX) SELECT num, SUM(sales) AS '합계', AVG(sales) AS '평균' FROM TB GROUP BY num;
'Web > DataBase' 카테고리의 다른 글
DB - 데이터베이스란? (0) | 2020.05.04 |
---|---|
DB - 자료형 (0) | 2020.05.04 |