mySQL을 기준으로 하였습니다.
workbench를 이용하면 ui기반으로 쉽게 할 수 도 있지만, 커맨드 창이나 프로그래밍을 하려면
명령어들을 알아야 하기에 자주쓰는 것들을 적어봅니다.
커맨드창에 하는걸 기준으로 하겠습니다.
mySQL이 깔려있다는 가정하에 하겠습니다.
1. SQL접속
1 | mysql -uroot -p0000 -hlocalhost | cs |
-u : username
-p : password
-h : hostname
username과 password는 처음 설치할때 적었던 걸 적으면 됩니다.
hostname은 현재 접속하는 PC에 mySQL이 깔려있는 경우 localhost를 다른PC의 경우 ip를 적습니다.
성공적으로 접속이 되면 아래의 화면이 뜨게 됩니다.
2. Database 보기
SHOW {DATABASES | SCHEMAS}
[LIKE 'pattern' | WHERE expr]1 | show databases; | cs |
현재 생성된 database를 볼 수 있습니다.
기본적으로 몇가지가 생성되어 있네요.
3. Database 만들기
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name
[create_specification] ...
create_specification:
[DEFAULT] CHARACTER SET [=] charset_name
| [DEFAULT] COLLATE [=] collation_name1 | create database answerofgod; | cs |
answerofgod 이라는 이름의 database를 생성했습니다.
4. Database 선택
만든 Database를 사용하려면, 그 Database를 선택해줘야 합니다.
USE db_name1 | use answerofgod; | cs |
5. Table 만들기
DB까지 생성했으니 table을 만들어야 겠죠?
CREATE [TEMPORARY] TABLE [IF NOT EXISTS]tbl_name(create_definition,...) [table_options] [partition_options] CREATE [TEMPORARY] TABLE [IF NOT EXISTS]tbl_name[(create_definition,...)] [table_options] [partition_options]select_statementCREATE [TEMPORARY] TABLE [IF NOT EXISTS]tbl_name{ LIKEold_tbl_name| (LIKEold_tbl_name) }
table을 만들때에는 table명과 column도 같이 만들어 줘야 합니다.
저는 blog 주소와 description column을 만들었습니다.
그리고 id는 primary key로 auto increment 옵션을 줬습니다.
1 2 3 4 5 6 | create table blog( id int not null auto_increment, url text not null, description text null, constraint pk primary key(id) ); | cs |
6. Table 보기
Table을 만들었으니 있는지 확인해 보겠습니다.
SHOW [FULL] TABLES [{FROM | IN} db_name]
[LIKE 'pattern' | WHERE expr]1 | show tables; | cs |
정상적으로 table이 만들어진 걸 볼 수 있습니다.
7. Table 자세한 정보 보기
{EXPLAIN | DESCRIBE | DESC}
tbl_name [col_name | wild]
{EXPLAIN | DESCRIBE | DESC}
[EXTENDED] SELECT select_options1 | desc blog; | cs |
생성한 table에 대한 자세한 정보가 나타납니다.
8. Data 입력하기
INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
[INTO] tbl_name
[PARTITION (partition_name,...)]
[(col_name,...)]
{VALUES | VALUE} ({expr | DEFAULT},...),(...),...
[ ON DUPLICATE KEY UPDATE
col_name=expr
[, col_name=expr] ... ]데이터를 입력할때는 입력할 column과 값을 같이 적어줘야 합니다.
1 | insert into blog (url,description) value ('answerofgod.tistory.com','my tistory blog'); | cs |
url과 description은 text이기 때문에 작은따음표(' ')를 해줘야 합니다.
하나 더 넣어보겠습니다.
1 | insert blog (url,description) value ('answerofgod.blogspot.kr','my google blog'); | cs |
into를 빼도 data가 입력됩니다.
9. Database에 저장된 data 보기
SELECT
[ALL | DISTINCT | DISTINCTROW ]
[HIGH_PRIORITY]
[MAX_STATEMENT_TIME = N]
[STRAIGHT_JOIN]
[SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
[SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
select_expr [, select_expr ...]
[FROM table_references
[PARTITION partition_list]
[WHERE where_condition]
[GROUP BY {col_name | expr | position}
[ASC | DESC], ... [WITH ROLLUP]]
[HAVING where_condition]
[ORDER BY {col_name | expr | position}
[ASC | DESC], ...]
[LIMIT {[offset,] row_count | row_count OFFSET offset}]
[PROCEDURE procedure_name(argument_list)]
[INTO OUTFILE 'file_name'
[CHARACTER SET charset_name]
export_options
| INTO DUMPFILE 'file_name'
| INTO var_name [, var_name]]
[FOR UPDATE | LOCK IN SHARE MODE]]table에 저장된 모든 data를 보려면
1 | select * from blog; | cs |
하시면 됩니다.
만약 특정 data만 보시려면, 필터를 만들 수 있습니다.
select문 뒤에 where를 사용해서 필터를 만들 수 있습니다.
1 | select * from blog where id=2; | cs |
또는 필요한 정보만 보고싶으면 * 대신 보고싶은 column명을 쓰면 됩니다.
1 | select url from blog; | cs |
물론 필터도 같이 쓸 수 있습니다.
그리고 정렬도 가능합니다.
url을 오름차순으로 정렬하고, description이 null이 아닌경우 url만 가져오는 경우 입니다.
1 | select url from blog where description!='NULL' order by url ASC ; | cs |
url이 blogspot이 위로 올라갔습니다.
10. Data update하기
저장된 데이터의 값을 변경해야 할 경우도 있는데요.
이 경우에는 update를 사용합니다.
UPDATE [LOW_PRIORITY] [IGNORE]table_referenceSETcol_name1={expr1|DEFAULT} [,col_name2={expr2|DEFAULT}] ... [WHEREwhere_condition] [ORDER BY ...] [LIMITrow_count]
먼저 data를 하나 insert 하면서 description을 공백으로 넣었습니다.
3번 데이터의 description을 채워보겠습니다.
1 | update blog set description='my naver blog' where id=3; | cs |
실제로 변경되었는지 확인하면
성공적으로 변경되었습니다.
11. Data 삭제하기
필요가 없는 data를 삭제할 때 사용합니다.
DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROMtbl_name[PARTITION (partition_name,...)] [WHEREwhere_condition] [ORDER BY ...] [LIMITrow_count]
3번째 data를 삭제해 보겠습니다.
1 | delete from blog where id=3; | cs |
3번째 데이터가 삭제되었습니다.
PS. 이때 만약에 새로운 데이터를 넣으면 id의 값은 4부터 시작합니다.
id가 primary key로 생성되었기 때문에 3번은 지웠어도 쓸 수 없게 됩니다.
12. Table 삭제하기
DROP [TEMPORARY] TABLE [IF EXISTS]
tbl_name [, tbl_name] ...
[RESTRICT | CASCADE]만들었던 table을 삭제해 보겠습니다.
1 | drop table blog; | cs |
한번에 모든 데이터들과 table이 날라갑니다.
주의 해서 써야 합니다.
12. Database 삭제하기
DROP {DATABASE | SCHEMA} [IF EXISTS] db_namedatabase 역시 삭제방법은 table과 같습니다.
1 | drop database blog; | cs |
database answerofgod 가 삭제된 걸 확인할 수 있습니다.
자주사용하는 SQL명령어만 봤습니다.
자세한건 http://dev.mysql.com/doc/refman/5.7/en/ 에 가시면 많습니다.^^
'Study > Database' 카테고리의 다른 글
| SQL (DATABASE) 명령어3-group by (0) | 2016.07.27 |
|---|---|
| SQL (DATABASE) 명령어2-수식및 연산자 (0) | 2016.07.26 |
| SQLite 사용하기!! (0) | 2015.10.15 |
| mysql 5.6 service 시작이 안될때 (0) | 2015.09.01 |
| mySQL 설치 (0) | 2015.07.29 |