'Database/Mysql'에 해당하는 글 27건

레코드 수정

Database/Mysql 2007. 2. 5. 23:18
레코드 수정하기

1. UPDATE

원하는 레코드만 수정한다.

mysql> UPDATE pet
   -> SET birth = '2005-12-31'
   -> WHERE name = 'Nabi';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

- 'pet' 테이블의 'name' 필드값이 'Nabi' 인 레코드의 'birth' 필드값을 '2005-12-31'로 수정한다.

2. DELETE FROM

테이블 안의 레코드를 모두 삭제한다.

mysql> DELETE FROM pet;
Query OK, 4 rows affected (0.00 sec)

그리고 LOAD DATA 명령으로 db.txt 문서로부터 다시 레코드를 불러온다.

mysql> LOAD DATA LOCAL INFILE '/home/ggamzzak/db.txt' INTO TABLE pet;
Query OK, 3 rows affected (0.00 sec)
Records: 3  Deleted: 0  Skipped: 0  Warnings: 0

WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,

레코드 삽입

Database/Mysql 2007. 2. 5. 23:08

테이블에 데이터 삽입

1. INSERT

한번에 하나의 레코드를 삽입한다.
CREATE TABLE 명령문에서 지정한 컬럼 순서로 값을 입력한다.

mysql> INSERT INTO pet
  -> VALUES ( 'Nabi', 'Hong', 'hamster', 'f', '2006-12-31', NULL );
Query OK, 1 row affected (0.00 sec)

스트링과 날짜 값은 인용부호(')로 지정하였다.
아직 정해지지 않은 값에는 NULL 값을 직접 삽입할 수 있다.

2. LOAD DATA

한번에 여러 레코드를 삽입한다.
라인당 하나의 레코드를 가지고 CREATE TABLE 명령문에서 지정한 컬럼 순서의 필드가 탭으로 구분된 db.txt를 만들고 NULL 자리는 '\N'으로 대신한다.

mysql> LOAD DATA LOCAL INFILE '/home/ggamzzak/db.txt' INTO TABLE pet;
Query OK, 3 rows affected (0.00 sec)
Records: 3  Deleted: 0  Skipped: 0  Warnings: 0

- 3개의 레코드가 추가된 것을 알 수 있다.


테이블에서 정보 불러오기

SELECT 명령문은 테이블에서 정보를 가져올 때 사용된다.
필드 리스트에 특수문자 * 를 사용하면 모든 필드를 나타낸다.

SELECT field
FROM table
WHERE conditions

WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,

테이블 생성

Database/Mysql 2007. 2. 5. 22:55
테이블 생성

SHOW 명령으로 현재 데이터베이스에 어떤 테이블이 있는지 알 수 있다.

mysql> SHOW TABLES;
Empty set (0.00 sec)

현재 DB에 테이블이 없으므로 CREATE TABLE 명령문을 이용하여 테이블을 생성한다.
(테이블의 레이아웃 지정)

♣ 애완 동물에 대한 기록
mysql> CREATE TABLE pet (
   -> name VARCHAR(20),
   -> owner VARCHAR(20),
   -> species VARCHAR(20),
   -> sex CHAR(1),
   -> birth DATE,
   -> death DATE
   -> );
Query OK, 0 rows affected (0.00 sec)

Mysql은 날짜(DATE)를 'YYYY-MM-DD' 포맷으로 다룬다

mysql> show tables;
+----------------+
| Tables_in_ggam |
+----------------+
| pet            |
+----------------+

1 row in set (0.00 sec)

ggam 데이터베이스 안에 pet 테이블이 존재함을 알 수 있다.
테이블의 구조는 테이블의 컬럼 정보를 표시해 주는 DESC(DESCRIBE) 명령문을 사용한다.

mysql> DESC pet;
+---------+-------------+------+-----+---------+-------+
| Field   | Type        | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| name    | varchar(20) | YES  |     | NULL    |       |
| owner   | varchar(20) | YES  |     | NULL    |       |
| species | varchar(20) | YES  |     | NULL    |       |
| sex     | char(1)     | YES  |     | NULL    |       |
| birth   | date        | YES  |     | NULL    |       |
| death   | date        | YES  |     | NULL    |       |
+---------+-------------+------+-----+---------+-------+
6 rows in set (0.00 sec)

- Field : 필드 이름
- Type : 필드에 대한 데이터 타입
- NULL : 필드가 NULL 값을 갖고 있는지 아닌지를 표시
- Key : 필드가 인덱싱이 되어 있는지 아닌지를 표시
- Default : 필드의 디폴트 값을 지정

mysql> SHOW INDEX FROM tbl_name
 
- 해당 테이블의 인덱스에 대한 정보를 출력

WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,
DB 생성

mysql> CREATE DATABASE ggam;

유닉스 환경에서 데이터베이스 이름은 대소문자를 구분하기 때문에 반드시 소문자로 한다.


DB 사용

SHOW 명령으로 현재 서버에 어떤 데이터베이스가 있는지 알 수 있다.

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| ggam               |
| mysql              |
+--------------------+

3 rows in set (0.01 sec)

mysql 데이터베이스는 사용자 접근 권한을 나타내는 것이기 때문에 필요한 것이다
데이터베이스를 사용할 때는 use 를 사용한다.

mysql> USE ggam;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql>


WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,

쿼리 입력

Database/Mysql 2007. 2. 5. 22:40
쿼리 입력

mysql> SELECT VERSION(), CURRENT_DATE;
+---------------------+--------------+
| VERSION()           | CURRENT_DATE |
+---------------------+--------------+
| 5.0.22-Debian_4-log | 2006-12-20   |
+---------------------+--------------+

1 row in set (0.00 sec)

SQL 명령문은 보통 명령문의 끝을 가리키는 세미콜론을 가지고 구분한다.(free-format)
각 명령문들은 세미콜론으로 구분하여 하나의 라인에 여러 개의 명령문을 입력할 수도 있다.
mysql은 쿼리의 결과를 표 형식(열과 행이 있는)으로 보여 준다.
결과의 첫 번째 행은 열의 레이블을 갖고 있다. 뒤따라오는 행은 쿼리의 결과 값이다.
일반적으로, 컬럼 레이블은 데이터베이스에서 가져오는 컬럼의 이름이 된다.
마지막 라인에서 mysql은 얼마나 많은 줄을 생성하고 쿼리를 처리하는데 얼마의 시간이 소모되었는지에 대한 정보를 보여준다.
\c 를 입력해서 명령을 종료할 수 있다.

키워드들은 대소문자를 구분하지 않는다. 아래 구문은 모두 동일하다.

mysql> SELECT VERSION(), CURRENT_DATE;
mysql> select version(), current_date;
mysql> SeLeCt vErSiOn(), current_DATE;

mysql을 간단한 계산기로 사용할 수도 있다.

mysql> SELECT SIN(PI()/4), (4+1)*5;
+------------------+---------+
| SIN(PI()/4)      | (4+1)*5 |
+------------------+---------+
| 0.70710678118655 |      25 |
+------------------+---------+

1 row in set (0.00 sec)

WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,