SQL Äõ¸® Á¤¸®
°ü¸®ÀÚ 08-06-17 05:22
 http://blog.naver.com/nhsbs/130007821155, HIT:13
MySQL¿¡¼­ Áö¿øÇÏ´Â µ¥ÀÌÅÍŸÀÔ
  • INT : 4bytes Á¤¼ö
  • CHAR(n) : ¹®ÀÚÀÇ ¼ö°¡ n°³ÀÎ ¹®ÀÚ¿­
  • VARCHAE VARCHAR(n) : ¹®ÀÚÀÇ ¼ö°¡ ÃÖ´ë n°³ÀÎ ¹®ÀÚ¿­
  • TEXT : ¹®ÀÚÀÇ ¼ö°¡ ÃÖ´ë 65535°³ÀÎ ¹®ÀÚ¿­
/ CREATE TABLE (»õ·Î¿î Å×ÀÌºí »ý¼º)
create table Å×À̺í¸í (
Çʵå¸í µ¥ÀÌÅÍŸÀÔ [NOT NULL]
{, Çʵå¸í µ¥ÀÌÅÍŸÀÔ [NOT NULL]}*
[,PRIMARY KEY (Çʵå¸í)]
)
/ ALTER TABLE(Å×ÀÌºí±¸Á¶ ¹× ¼Ó¼ºº¯°æ)
±âÁ¸ÀÇ Å×ÀÌºí±¸Á¶ º¯°æ
1. ÇʵåÃß°¡»ý¼º
ALTER TABLE Å×À̺í¸í ADD [COLUMN] Çʵå¸í ÇʵåŸÀÔ
¿¹) ALTER TABLE userdb ADD COLUMN addr VARCHAR(100)
2. Çʵå¼Ó¼ºº¯°æ
ALTER TABLE Å×À̺í¸í CHANGE [COLUMN] ±âÁ¸Çʵå¸í »õÇʵå¸í ÇʵåŸÀÔ
¿¹)ALTER TABLE userdb ADD addr VARCHAE(100)
¿¹) ALTER TABLE userdb CHANGE COLUMN addr address VARCHAR(255)
3. Çʵå»èÁ¦
ALTER TABLE Å×À̺í¸í DROP [COLUMN] Çʵå¸í
¿¹) ALTER TABLE userdb DROP COLUMN address
4. ±âÁ¸ÀÇ Å×À̺í»èÁ¦
DROP TABLE Å×À̺í¸í
/ SELECT (µ¥ÀÌÅͰ˻öÇϱâ)
SELECT [DISTINCT] Å×À̺í¸í {, Å×À̺í¸í}*
FROM Çʵå¸í {,Çʵå¸í}*
[WHERE °Ë»öÁ¶°Ç]
[ORDER BY Çʵå¸í[ASC or DESC] {,Çʵå¸í [ASC or DESC]}*]
[GROUP BY Çʵå¸í {, Çʵå¸í}*]
[HAVING  °Ë»öÁ¶°Ç]
1. ÀϹÝÀûÀÎ °Ë»ö
SELECT name, id FROM userdb WHERE level = 'B'
SELCET * FROM userdb
SELECT name, id, email, sex, milage, level FROM userdb
2. °á°ú·¹ÄÚµåÀÇ Áߺ¹Á¦°Å
SELECT level FROM userdb
SELECT DISTINCT level FROM userdb
3. Á¶°Ç°Ë»ö
SELECT name, id, email FROM userdb WHERE milage > 3000 AND sex = 'M'
4. °Ë»ö°á°úÀÇ Á¤·Ä
SELECT name, id, milage FROM userdb WHERE milage >= 3000 ORDER BY milage DESC
5. °Ë»ö°á°ú¿¡ ´ëÇÑ »ê¼ú°è»ê ¹× ¹®ÀÚ¿­Ã³¸®
SELECT name, '´ÔÀÇ ¸¶Àϸ®Áö´Â ', milage, 'Á¡ÀÔ´Ï´Ù.' FROM userdb WHERE milage >= 3000 ORDER BY milage
SELECT name, id, email, milage+300 FROM userdbWHERE id = 'soony'
6. ±×·ìÇÔ¼ö(group function)¸¦ ÀÌ¿ëÇÑ °Ë»ö
SELECT count(*) FROM userdb WHERE sex = 'F'
SELECT avg(milage) FROM userdb WHERE sex='F'
7. GROUP BY¸¦ ÀÌ¿ëÇÑ °Ë»ö
SELECT level, max(milage), min(milage), avg(milage) FROM userdb GROUP BY level
SELECT sex, max(milage), min(milage), avg(milage) FROM userdb GROUP BY sex
8. HAVINGÀ» ÀÌ¿ëÇÑ °Ë»ö
SELECT sex, max(milage), min(milage), avg(milage) FROM userdb GROUP BY sex HAVING sex = 'F'
9. BETWEEN ¿¬»êÀÚ¸¦ ÀÌ¿ëÇÑ °Ë»ö
SELECT name, email, mailage, sex FROM userdb WHERE sex = 'F' AND milage BETWEEN 3000 AND 4000
SELECT name, email, milage, sex FROM userdb WHERE sex = 'F' AND milage >= 3000 AND milage <= 4000
SELECT name, sex, milage FROM userdb WHERE milage NOT IN (3300,3500,3700)
10. LIKE¸¦ »ç¿ëÇÑ °Ë»ö
SELECT name FROM userdb WHERE name, LIKE '%Çö%'
SELECT name, id, FROM userdb WHERE id LIKE 'm%'
11. NULL°ªÀ» °®´Â µ¥ÀÌÅͰ˻ö
SELECT name, id FROM userdb WHERE email IS NULL
SELECT name, id FROM userdb WHERE email IS NOT NULL
/ INSERT (»õ·Î¿î µ¥ÀÌÅÍÀÇ »ðÀÔ)
INSERT INTO Å×À̺í¸í [(Çʵå¸í{[, Çʵå¸í]}*)] VALUES (Çʵ尪)
INSERT INTO userdb (name, id, email, sex, milage, level) VALUES ('ÀÌ¿Ïö', 'yunka1018','sspark@kornet.net'.'M','3500','B')
INSERT INTO userdb VALUES('ÀÌ¿Ïö', 'yunka1018','sspark@kornet.net','M','3500','B')
INSERT INTO userdb (id, name) VALUES('yunka1018','Á¤¾ç¹Ì')
/ µ¥ÀÌÅÍÀÇ ¼öÁ¤(UPDATE)
UPDATE Å×À̺í¸í SET Çʵå¸í=Çʵ尪 ¶Ç´Â »ê¼ú½Ä {, Çʵå¸í = Çʵ尪 ¶Ç´Â »ê¼ú½Ä}*[WHERE °Ë»öÁ¶°Ç]
UPDATE userdb SET sex = 'F' WHERE name = '±èÇö¾Æ'
UPDATE userdb SET sex = 'F'
¸¸ÀÏ À§¿Í °°ÀÌ WHEREÀý·Î °Ë»öÁ¶°ÇÀ» ¸í½ÃÇÏÁö ¾ÊÀº °æ¿ì¿¡´Â ÇØ´çÅ×ÀÌºí³»ÀÇ ¸ðµç·¹ÄÚµåÀÇ Çʵ尪ÀÌ ¼³Á¤ÇѰªÀ¸·Î ¼öÁ¤µÇ¹Ç·Î À¯ÀÇÇØ¾ßÇÑ´Ù.
UPDATE userdb SET sex = 'F'
UPDATE userdb SET milage = milage + 300
/ DELETE (µ¥ÀÌÅÍÀÇ »èÁ¦)
DELETE FROM Å×À̺í¸í [WHERE °Ë»öÁ¶°Ç]
DELETE FROM userdb WHERE id = 'king94'
DELETE FROM userdb
¸¸ÀÏ À§¿Í °°ÀÌ °Ë»öÁ¶°ÇÀ» ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é ÇØ´çÅ×ÀÌºí³»ÀÇ ¸ðµç·¹Äڵ尡 »èÁ¦µÇ¹Ç·Î ÁÖÀÇÇØ¾ßÇÑ´Ù.
/ MYSQL µ¥ÀÌÅͺ£À̽ºÀÇ »ç¿ë¹ý
1. MYSQL¼­¹öÀÇ ±âµ¿°ú Á¾·á
ÀÌÇÏ µð·ºÅ丮À§Ä¡´Â /usr/local/mysql/binÀÌ´Ù.
./bin/safe_mysql &
2. MYSQL¼­¹öÀÇ Á¾·á ¹× Àç±âµ¿
safelab.skku.ac.kr.pidÆÄÀÏÀº MYSQLÀÇ PID¸¦ ÀúÀåÇϰí ÀÖ´Ù.
kill -9 PID
mysqladmin -u root  -p shutdown
mysqladmin -u root -p reload
3. mysqladmin »ç¿ë¹ý
mysqladmin -u root  -p reload
mysqladmin -u root -p create sample
mysqladmin -u root -p drop sample
4. mysql Ŭ¶óÀÌ¾ðÆ®»ç¿ë¹ý
mysql -u root -pphp99 mysql
mysql -u root -p mysql
mysql>show databases;
mysql>show tables;
mysql>show columns from db;
mysql>desc db;
mysql>select host, user, password from user;
mysql>update user set password = password('php99') where user = 'root';
mysql>select host, user, password from user;
mysql>d r o p data base sample;
5. »ý¼ºµÈ µ¥ÀÌÅͺ£À̽ºÀÇ µî·Ï
mysql>insert into db values('%','sample','php','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
mysql>select host, db, user from db;
6. »õ·Î¿î »ç¿ëÀÚ(µ¥ÀÌÅͺ£À̽º ¼ÒÀ¯ÀÚ)µî·Ï
mysql>insert into user (host, user, password) values('localhost','php','password('php99'));
mysql>select host, user, password from user;
7. Å×À̺íÀÇ »ý¼º°ú ¼öÁ¤ ¹× »èÁ¦
mysql -u root -p sample
mysql>show tables;
mysql>desc userdb;
mysql>alter table userdb change column id varchar(12) NOT NULL;
mysql>desc userdb;
mysql>drop table userdb;
mysql>show tables;
8. *.sqlÆÄÀÏ·Î ½©¿¡¼­ SQL¸í·É¾î ½ÇÇà
mysql -u root -p php99  sample < userdb.sql
mysql -u php -p sample
mysql>show tables;
9. µ¥ÀÌÅÍÀÇ ¹é¾÷°ú º¹±¸
mysqldump -u [DB»ç¿ëÀÚ¸í] -p [¹é¾÷ÇÒ µ¥ÀÌÅͺ£À̽º¸í] > [¿ÜºÎ·Î ÀúÀåÇÒ ÆÄÀϸí]
mysqldump -u php -p sample > sample_backup.sql
cat sample_backup.sql
mysql -u php -p php99 sample < sample_backup.sql