sql 문법 정리

2017. 5. 11. 16:22MS_SQL/쿼리문

테이블생성
CREATE DATABASE test CHARACTER SET utf8 COLLATE utf8_general_ci;

일괄실행
mysql -uid -ppw db < sql.sql;

정보나눠보기
SELECT * FROM topic\G

백업
mysqldump -uid -ppw db > sql.sql;

DB관련
create database
drop database
show database

TABLE관련
create table
show table
desc                        //구조확인
alter table ~ add ~        //필드추가
alter table ~ drop ~        //필드 삭제
alter table ~ change ~    //필드 변경
alter table ~ modify ~    //필드 수정
alter table ~ rename ~    //필드명 변경
drop table

레코드관련
insert into table ~ values ~ 
select ~ from table ~
select ~ from table where ~                //조건 검색
select ~ from table where ~ like ~        //특정 문자열 검색 
select ~ from table order by ~            //오름차순
select ~ from table order by ~ desc    //내림차순
update table ~ set ~ where ~
delete from table ~ where ~        //레코드삭제

%의 사용
select * from sj where name='text1'; #text1 일치
select * from sj where name='text1%'; #text1로 시작
select * from sj where name='%text1%'; #text1 포함
select * from sj where name='%text1'; #text1로 끝남

sj 테이블의 이름,총점, 평균만을 이름으로 오름차순 정렬

select name, hap, avg from sj order by name;
select name, hap, avg from sj order by name asc;

구조보기
desc info;
desc table이름;
describe table이름;
explain table이름;

table 이름 바꾸기
rename table 현재테이블이름 to 바꿀테이블이름;
rename table db이름.현재테이블이름 to db이름.바꿀테이블이름;

update로 패스워드 변경(생성)
update user set password=password('0000000')where user ='root'
flush privileges;   변경즉시적용  

Conut
select Count(컬럼명) from 테이블명;
select Count(Distinct 컬럼명) from 테이블명;

모음
select name, hap, avg from sj order by avg desc, hap; #sj 테이블의 이름,총점, 평균을 평균으로 내림차순 정렬하고, 평균이 같으면 총점으로 오름차순 정렬
select * from sj where agv >= 90; #sj 테이블에서 평균이 90점 이상인 자료 표시
select * from sj where agv between '70' and '90'; #sj 테이블에서 평균이 70점이상 90점 이하 표시
select * from sj where name='홍길동'; #이름이 "홍길동" 인 자료의 모든 필드 표시
select * from sj where name like '홍%'; #이름이 "홍" 으로 시작하는 자료의 모든 필드 표시
select * from sj where name like '홍%' and avg>=90 order by hap desc; #이름이 "홍" 씨이면서 평균이 90점 이상인 자료를 총점 내림차순으로 표시
select * from sj where icon=1 order by rand() limit 15; #15개의 요소를 랜덤하게 추출
select * from sj limit 10; #0~10개 추출
select * from sj limit 5,10; #5~10개 추출
select no, name as aaa.tel...  #필드이름
select * from sj as bbb where...  #테이블이름
select no, num*price as ccc where... #계산식
mysql -u root -p #mysql 접속하기  
show databases; #db 목록 보기
use db이름; #db 유저 고르기
status; #db 상태 보기
create database db이름; #db 만들기
drop database db이름; #db지우기
show tables; #목록보기
show engines  \G #storage 엔진 확인
delete form tablename where no=1; #레코드삭제
update test set num2=2+1 where number=2  #수정하기 number 가 2일때 2의 조회수인 num2 를 올린다
alter table test rename guest7 #test 란 테이블 이름을 guest7 으로 바꾸기
alter table guest7 add wdate date  #wdate 란 칼럼 추가하기
alter table guest7 drop wdate  #wdate 칼럼 지우기 
drop table 지울테이블이름; #table 지우기
insert into test values(password('pw')); #t패스워드 함수
flush privileges; #권한테이블 리로드후 수정내용 반영 
flush table; #모든테이블닫고 다시 동장
flush host; #호스트 초기화
flush logs; #새로운 로그파일생성


출처 - http://daios.co.kr/rb/?c=4/47&iframe=Y&where=subject%7Ctag&keyword=%EA%B3%B5%EC%A7%80%EC%82%AC%ED%95%AD+%EA%B2%8C%EC%8B%9C%ED%8C%90&uid=22


'MS_SQL > 쿼리문' 카테고리의 다른 글

테이블 복사 (다른 DB간 복사포함)  (0) 2017.03.28
sql 쿼리문 정리  (0) 2017.03.24
Delete문  (0) 2017.03.23
INSERT INTO문  (0) 2017.02.13
SQL UPDATE문 Null값 수정쿼리  (0) 2017.02.02