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
' | WHEREexpr
]
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_name
1 | create database answerofgod; | cs |
answerofgod 이라는 이름의 database를 생성했습니다.
4. Database 선택
만든 Database를 사용하려면, 그 Database를 선택해줘야 합니다.
USE db_name
1 | 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_statement
CREATE [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
' | WHEREexpr
]
1 | show tables; | cs |
정상적으로 table이 만들어진 걸 볼 수 있습니다.
7. Table 자세한 정보 보기
{EXPLAIN | DESCRIBE | DESC}tbl_name
[col_name
|wild
] {EXPLAIN | DESCRIBE | DESC} [EXTENDED] SELECTselect_options
1 | 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 UPDATEcol_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
...] [FROMtable_references
[PARTITIONpartition_list
] [WHEREwhere_condition
] [GROUP BY {col_name
|expr
|position
} [ASC | DESC], ... [WITH ROLLUP]] [HAVINGwhere_condition
] [ORDER BY {col_name
|expr
|position
} [ASC | DESC], ...] [LIMIT {[offset
,]row_count
|row_count
OFFSEToffset
}] [PROCEDUREprocedure_name
(argument_list
)] [INTO OUTFILE 'file_name
' [CHARACTER SETcharset_name
]export_options
| INTO DUMPFILE 'file_name
' | INTOvar_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_reference
SETcol_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_name
database 역시 삭제방법은 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 |