USE world;
SHOW TABLES;
DESC city;
DESC country;
DESC countrylanguage;
SELECT * FROM city;
SELECT * FROM country;
SELECT * FROM countrylanguage;
SELECT 필드명
FROM 테이블
JOIN 테이블
ON 조인조건
WHERE 조건
ORDER BY 필드명 DESC내림차순 ASC또는생략 오름차순
GROUP BY 필드명
HAVING 그룹조건
LIMIT 숫자
OFFSET 숫자
1. ROUND( )
ROUND(value가 소수인 field) => 소수점1의자리에서 반올림한다
.0 인 것도 버려서 소수점 . 자체도 지운다
ex)
USE world;
SELECT continent, COUNT(*), sum(gnp), avg(gnp)
FROM country
GROUP BY continent;
SELECT continent, COUNT(*), round(sum(gnp)), avg(gnp)
FROM country
GROUP BY continent;
ㄱ. ROUND( ,num)
ex) num이 3이면 천의자리에서 만의 자리로 반올림하여 숫자 끝에 000 이 위치하고 소수점이 없게 한다
USE world;
SELECT continent, COUNT(*), sum(gnp), avg(gnp)
FROM country
GROUP BY continent;
SELECT continent, COUNT(*), round(sum(gnp)), avg(gnp)
FROM country
GROUP BY continent;
SELECT continent, COUNT(*), round(sum(gnp),-4), avg(gnp)
FROM country
GROUP BY continent;
2. UPDATE SET WHERE
값 수정 밸류 수정 VALUE 수정하는 함수다
UPDATE 테이블명
SET 필드명=값, 필드명=값, ... , 필드명=값 (수정할필드의값)
WHERE 조건
ex) code가 abw인 것의 Name을 Aruba2로 수정
USE world;
SELECT * FROM country ;
UPDATE country SET NAME="Aruba2" WHERE CODE="ABW";
SELECT * FROM country ;
업데이트강화
UPDATE city, (SELECT * FROM city WHERE DISTRICT="CHOLLANAM") b
SET city.population=b.population+50000
WHERE city.id=b.id;
3. DELETE FROM WHERE
해당테이블(파일)에서 조건에 해당하는 것을 지운다
DELETE FROM 테이블명
WHERE 조건
조건에 해당하는 행 전체를 지운다
ex)
USE world;
SELECT * FROM citycopy ;
DELETE FROM citycopy
WHERE countrycode='nld';
SELECT * FROM citycopy ;
DELETE FROM citycopy
WHERE population<200000;
4. 테이블을 복사하는 방법
복사하기
CREATE TABLE citycopy LIKE city;
SHOW TABLES;
SELECT * FROM citycopy;
INSERT INTO citycopy SELECT * FROM city;
SELECT * FROM citycopy;
5. INSERT INTO VALUES
INSERT INTO 테이블명
(필드명)
VALUES (필드명에 대한 값)
ex)
USE world;
SELECT * FROM city ;
INSERT INTO city (NAME, countrycode, district , population )
VALUES ('Cardinal', "afg", "kabol" , 111 );
SELECT * FROM city ;
6. 테이블 생성하는 방법
ㄱ. CREATE TABLE 테이블
간단 테이블 생성
use 데이터베이스이름;
create table 테이블이름 (
id varchar(100),
pw varchar(100),
nick varchar(100)
)
크리에이트테이블은 밸류가 아닌 테이블의 구조만 생성하는 것이다
create table 새로만들테이블명 (
1번째 필드명 데이터타입 [not null] [KEY] [DEFAULT 디폴트해당값] [Extra],
2번째 필드명 데이터타입 [not null] [KEY] [DEFAULT 디폴트해당값] [Extra],
...
필드명 데이터타입 [not null] [KEY] [DEFAULT 디폴트해당값] [Extra]
) [Extra];
야구단테이블 만들어보기
아래 코드로 타이거스2 테이블의 구조를 생성한다
USE world;
create TABLE tigers2 (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
player VARCHAR(10) NOT null,
backNo INT,
POSITION VARCHAR(10)
);
SELECT * FROM tigers2;
DESC tigers;
이제 이 구조에 밸류를 넣는다
id값은 자동으로 디폴트값 들어감 AUTO_INCREMENT 속성
USE world;
INSERT INTO tigers2
VALUES (DEFAULT, "양현종", 54, "투수");
SELECT * FROM tigers2;
INSERT INTO tigers2 (player,backno,POSITION)
VALUES ("양현종", "54" , "투수");
INSERT INTO tigers2 (player,backno,POSITION)
VALUES ("양현종1", "54" , "투수"),
("양현종2", "54" , "투수"),
("양현종3", 54 , "투수"),
("양현종4", "54" , "투수"),
("양현종5", 54 , "투수");
SELECT * FROM tigers2;
ㄴ. CREATE DATABASE 데이터베이스.테이블
CREATE DATABASE gis
USE gis;
SHOW TABLES;
CREATE DATABASE gis.test(
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(10)
) AUTO_INCREMENT=100;
7. 테이블 관련
ㄱ. DROP TABLE
테이블을 삭제하려면 다음을 수행하십시오.
drop table 테이블명;
ㄴ. DELETE FROM
테이블의 모든 밸류 value 행을 삭제하려면 다음을 수행하십시오.
delete from 테이블명;
특정 행 삭제 제거
delete from 테이블명 where 조건;
ㄷ. TRUNCATE TABLE
truncate table 테이블명;
ㄹ. RENAME TABLE TO
rename table 테이블명 to 변경할테이블명;
ㅁ. ALTER TABLE
alter table
ADD 칼럼추가
DROP 칼럼 삭제 열 삭제 필드 삭제
MODIFY 칼럼순서바꾸기
CHANGE 칼럼명변경, 칼럼자료형변경
▲ 컬럼 추가
alter table [테이블 명] add [컬럼명] 자료형;
alter table [테이블 명] add [컬럼명] 자료형 first;
alter table [테이블 명] add [컬럼명] 자료형 after [앞 컬럼명];
ex) alter table TIGERS2 add number INT;
▲ 컬럼 삭제
alter table [테이블 명] drop [컬럼명];
ex) alter table TIGERS2 drop number;
▲ 컬럼 순서 바꾸기
alter table [테이블 명] modify [컬럼명] 자료형 first;
alter table [테이블 명] modify [컬럼명] 자료형 after [앞 컬럼명];
ex) alter TABLE tigers2 modify POSITION VARCHAR(10) first;
SELECT * FROM tigers2;
▲ 컬럼명 변경, 컬럼 자료형 변경
alter table [테이블 명] change [기존 컬럼명] [새 컬럼명] 자료형;
ex) USE world;
alter table tigers2 change position `new position` VARCHAR(10);
SELECT * FROM tigers2;
포지션필드를 뉴포지션으로 필드명을 바꿈 +자료형
alter table [테이블 명] change [컬럼명] [컬럼명] 새 자료형;
숫자의 속성 (숫자속성int varchar뒤에 띄어쓰기로 추가작성)
unsigned 숫자가 양수값일 때 양수 최대치를 늘리기 위한 작업
mysql은 자동으로 unsigned 속성을 추가한다 좌측부터0을채우려면양수로만값이입력되어야하기때문
auto_increment 자동으로 숫자가 증가
INT(숫자) 괄호안의 값은 값의 자릿수를 의미한다
INT 디폴트는 11이기 때문에 int(11)과 같다
A. 디폴트 기본값 주기
* 디폴트 기본값 주기 0 Auto_increment 대신 0값으로
Auto_increment는 테이블에서 하나만 줄 수 있고 그것이 자동으로 프라이머리키로 설정됨
특정 필드의 밸류들에 0을 디폴트 값으로 주기 (행추가할 때 자동으로 0 들어감)
ALTER TABLE 테이블 change 필드 필드(바꿀필드명) INT DEFAULT 0;
B. 타이거즈 테이블 만들기
타이거즈 테이블 만들기
CREATE TABLE if NOT exist tigers (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
player VARCHAR(10) NOT NULL,
position VARCHAR(10)
isDeleted DEFAULT 0;