본문 바로가기
Database/mysql

[MYSQL/Database] DML 명령어 실습(UPDATE, ORDER BY, AUTO_INCREMENT)

by JINJINC 2023. 4. 10.
728x90
반응형

실습1

데이터베이스 이름 : DB01
테이블 이름 : T1
ID(INT) NAME(VARCHAR(30)) ADDR(VARCHAR(30) NOT NULL) DATE(DATE)
1 홍길동 부산 2011-01-01
3 남길동 서울 2033-03-03
    양산  
6   진주  

기본설정

더보기
create database DB01;
use DB01;

create table T1(
	id int,
    name varchar(30),
    addr varchar(30) not null,
    date date
    );
    
insert into T1 values(1,'홍길동','부산','2011-01-01');
insert into T1 values(3,'남길동','서울','2033-03-03');
insert into t1(addr) values('양산');
insert into t1(id,addr) values(6,'진주');

select * from t1;

 

결과
위의 조건 생성완료

1. 부산-> 광주 로 바꿔보자

update T1 set addr = '광주' where id =1;

select * from t1;

문제2 결과

 

 

 

 

 

 

 

 

2. ID=3의 행을 지워봅니다.

delete from t1 where id =3;

DELETE 결과

 

 

 

 

 

 

 

실습2

DROP DATABASE IF EXISTS sqldb; -- 만약 sqldb가 존재하면 우선 삭제한다.
CREATE DATABASE sqldb;

USE sqldb;
CREATE TABLE usertbl -- 회원 테이블
( userID  	CHAR(8) NOT NULL PRIMARY KEY, -- 사용자 아이디(PK)
  name    	VARCHAR(10) NOT NULL, -- 이름
  birthYear   INT NOT NULL,  -- 출생년도
  addr	  	CHAR(2) NOT NULL, -- 지역(경기,서울,경남 식으로 2글자만입력)
  mobile1	CHAR(3), -- 휴대폰의 국번(011, 016, 017, 018, 019, 010 등)
  mobile2	CHAR(8), -- 휴대폰의 나머지 전화번호(하이픈제외)
  height    	SMALLINT,  -- 키
  mDate    	DATE  -- 회원 가입일
);
CREATE TABLE buytbl -- 회원 구매 테이블(Buy Table의 약자)
(  num 		INT AUTO_INCREMENT NOT NULL PRIMARY KEY, -- 순번(PK)
   userID  	CHAR(8) NOT NULL, -- 아이디(FK)
   prodName 	CHAR(6) NOT NULL, --  물품명
   groupName 	CHAR(4)  , -- 분류
   price     	INT  NOT NULL, -- 단가
   amount    	SMALLINT  NOT NULL, -- 수량
   FOREIGN KEY (userID) REFERENCES usertbl(userID)
);

INSERT INTO usertbl VALUES('LSG', '이승기', 1987, '서울', '011', '1111111', 182, '2008-8-8');
INSERT INTO usertbl VALUES('KBS', '김범수', 1979, '경남', '011', '2222222', 173, '2012-4-4');
INSERT INTO usertbl VALUES('KKH', '김경호', 1971, '전남', '019', '3333333', 177, '2007-7-7');
INSERT INTO usertbl VALUES('JYP', '조용필', 1950, '경기', '011', '4444444', 166, '2009-4-4');
INSERT INTO usertbl VALUES('SSK', '성시경', 1979, '서울', NULL  , NULL      , 186, '2013-12-12');
INSERT INTO usertbl VALUES('LJB', '임재범', 1963, '서울', '016', '6666666', 182, '2009-9-9');
INSERT INTO usertbl VALUES('YJS', '윤종신', 1969, '경남', NULL  , NULL      , 170, '2005-5-5');
INSERT INTO usertbl VALUES('EJW', '은지원', 1972, '경북', '011', '8888888', 174, '2014-3-3');
INSERT INTO usertbl VALUES('JKW', '조관우', 1965, '경기', '018', '9999999', 172, '2010-10-10');
INSERT INTO usertbl VALUES('BBK', '바비킴', 1973, '서울', '010', '0000000', 176, '2013-5-5');
INSERT INTO buytbl VALUES(NULL, 'KBS', '운동화', NULL   , 30,   2);
INSERT INTO buytbl VALUES(NULL, 'KBS', '노트북', '전자', 1000, 1);
INSERT INTO buytbl VALUES(NULL, 'JYP', '모니터', '전자', 200,  1);
INSERT INTO buytbl VALUES(NULL, 'BBK', '모니터', '전자', 200,  5);
INSERT INTO buytbl VALUES(NULL, 'KBS', '청바지', '의류', 50,   3);
INSERT INTO buytbl VALUES(NULL, 'BBK', '메모리', '전자', 80,  10);
INSERT INTO buytbl VALUES(NULL, 'SSK', '책'    , '서적', 15,   5);
INSERT INTO buytbl VALUES(NULL, 'EJW', '책'    , '서적', 15,   2);
INSERT INTO buytbl VALUES(NULL, 'EJW', '청바지', '의류', 50,   1);
INSERT INTO buytbl VALUES(NULL, 'BBK', '운동화', NULL   , 30,   2);
INSERT INTO buytbl VALUES(NULL, 'EJW', '책'    , '서적', 15,   1);
INSERT INTO buytbl VALUES(NULL, 'BBK', '운동화', NULL   , 30,   2);

SELECT * FROM usertbl;
SELECT * FROM buytbl;

 MYSQL CMD창으로 확인하기 

 

조건 검색하기

1. USERTBL 에서 이름이 바비킴인 행을 출력 

select * from usertbl where name = "바비킴";

 

 

 

 

2. 1970 ~ 1980 년 사이의 값을 가진 행의 이름과, 키를 검색

select name, height from usertbl where birthyear >= 1970 and birthyear <= 1980;

select name, height from usertbl where birthyear between 1970 and 1980;

 

 

 

 

 

 

 

 

3. 생년이 197로 시작하는 행

select name, birthyear from usertbl where birthyear like '197%';

 

 

 

 

 

 

 

 

4.생년이 중간에 96이 들어가는 행 검색

select name, birthyear from usertbl where birthyear like '%96%';

 

 

 

 

 

 

 

 

ORDER BY

ASC (DEFAULT)   오름차순 - 생략 가능 

select name, birthYear from usertbl order by birthYear;

ASC

 

 

 

 

 

 

 

 

 

 

 

 

DESC  내림차순

select name, birthYear from usertbl order by birthYear desc;

 

 

 

 

 

 

 

 

 

 

 

 

 

중복제거 

select mobile1 from usertbl;
select distinct mobile1 from usertbl;

 

 

 

 

 

 

 

 

 

 

 

# 출력 갯수 제한
select * from usertbl limit 5;  -- 5개까지만 가져오기

 

# AUTO_INCREMENT

자동으로 1씩 올라가는 컬럼의 경우 NULL을 넣어주면 알아서 값을 넣어준다.

create table test (
    testno int primary key auto_increment,
    name varchar(50) not null
);

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90
반응형

댓글