MySQLとSQL入門



  
  
  
  
  1. 《MySQL 》     
  2.     
  3. mysql> create table member (     
  4. member_id int unsigned not null auto_increment,    
  5. primary key (member_id),    
  6. last_name varchar(20) not null,    
  7. first_name varchar(20) not null,    
  8. suffix varchar(5) null,    
  9. expriration date null,     
  10. email varchar(100) null,    
  11. street varchar(50) null,    
  12. city varchar(50) null,    
  13. state varchar(2) null,    
  14. zip varchar(10) null,    
  15. phone varchar(20) null,    
  16. interests varchar(255) null     
  17. );    
  18.     unsigned:     
  19.     not null: ,     
  20.     auto_increment:MySQL , ,auto_increment , member_id ,        
  21.     primary key: member_id , , primary key not null, member_id not null,MySQL     
  22.     
  23.     
  24. mysql> desc member;    
  25. +-------------+------------------+------+-----+---------+----------------+     
  26. | Field       | Type             | Null | Key | Default | Extra          |    
  27. +-------------+------------------+------+-----+---------+----------------+     
  28. | member_id   | int(10) unsigned | NO   | PRI | NULL    | auto_increment |    
  29. | last_name   | varchar(20)      | NO   |     | NULL    |                |    
  30. | first_name  | varchar(20)      | NO   |     | NULL    |                |    
  31. | suffix      | varchar(5)       | YES  |     | NULL    |                |    
  32. | expriration | date             | YES  |     | NULL    |                |    
  33. | email       | varchar(100)     | YES  |     | NULL    |                |    
  34. | street      | varchar(50)      | YES  |     | NULL    |                |    
  35. | city        | varchar(50)      | YES  |     | NULL    |                |    
  36. | state       | varchar(2)       | YES  |     | NULL    |                |    
  37. | zip         | varchar(10)      | YES  |     | NULL    |                |    
  38. | phone       | varchar(20)      | YES  |     | NULL    |                |    
  39. | interests   | varchar(255)     | YES  |     | NULL    |                |    
  40. +-------------+------------------+------+-----+---------+----------------+     
  41. 12 rows in set (0.00 sec)    
  42.     
  43. mysql>     
  44. DESC == DESCRIBE == EXPLAIN == show columns form president == SHOW fields fom president    
  45.     
  46.     
  47. mysql> desc member member_id;    
  48. +-----------+------------------+------+-----+---------+----------------+     
  49. | Field     | Type             | Null | Key | Default | Extra          |    
  50. +-----------+------------------+------+-----+---------+----------------+     
  51. | member_id | int(10) unsigned | NO   | PRI | NULL    | auto_increment |    
  52. +-----------+------------------+------+-----+---------+----------------+     
  53. 1 row in set (0.07 sec)    
  54.     
  55. mysql>     
  56.     
  57. mysql> create table student (    
  58. name varchar(20) not null,     
  59. sex enum('F','M'not null,     
  60. student_id int unsigned not null auto_increment,    
  61. primary key (student_id)     
  62. ) engine = innodb;    
  63.     
  64.     
  65. mysql> create table score     
  66. (     
  67. student_id int unsigned not null,     
  68. event_id int unsigned not null,     
  69. score int not null,     
  70. primary key (event_id, student_id),     
  71. index (student_id),     
  72. foreign key (event_id) references grade_event (event_id),     
  73. foreign key (student_id) references student (student_id)     
  74. ) engine = innodb;    
  75.     
  76. mysql> create table absence     
  77. (     
  78. student_id int unsigned not null,     
  79. date date not null,     
  80. primary key (student_id, date),     
  81. foreign key (student_id) references student (student_id)     
  82. ) engine = innodb;    
  83.     
  84. mysql> insert into student values('Kyle''M'NULL);    
  85. Query OK, 1 row affected (0.04 sec)    
  86.     
  87. mysql> insert into grade_event values('2008-09-03''Q'NULL);    
  88. Query OK, 1 row affected (0.01 sec)    
  89.     
  90. mysql>     
  91. // values ,     
  92. INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]    
  93.     [INTO] tbl_name [(col_name,...)]    
  94.     {VALUES | VALUE} ({expr | DEFAULT},...),(...),...    
  95.     [ ON DUPLICATE KEY UPDATE    
  96.       col_name=expr    
  97.         [, col_name=expr] ... ]    
  98.     
  99. INSERT INTO tb1_name VALUES(...), (...),...;    
  100. //     
  101.     
  102. mysql> insert into student values('Avery''F'NULL),('Nathan''M'NULL);    
  103. Query OK, 2 rows affected (0.01 sec)    
  104. Records: 2  Duplicates: 0  Warnings: 0    
  105.     
  106. mysql> insert into member (last_name,first_name) values('Stein','Waldo');    
  107. mysql> insert into student (name,sex) values('Abby','F'),('Joseph''M');    
  108. Query OK, 2 rows affected (0.06 sec)    
  109. Records: 2  Duplicates: 0  Warnings: 0    
  110.     
  111. mysql>     
  112.     
  113. col_name = value set     
  114. mysql> insert into member set last_name='Stein',first_name='Waldo';    
  115. Query OK, 1 row affected (0.04 sec)    
  116.     
  117. mysql>     
  118.     
  119. mysql> select 2+2, 'Hello,World', version();    
  120. +-----+-------------+----------------------+     
  121. | 2+2 | Hello,World | version()            |    
  122. +-----+-------------+----------------------+     
  123. |   4 | Hello,World | 5.5.20-ndb-7.2.5-log |    
  124. +-----+-------------+----------------------+     
  125. 1 row in set (0.00 sec)    
  126.     
  127. mysql>     
  128.     
  129. mysql> select 2+2, 'Hello,World', version() from null;    
  130.     
  131. order by      
  132. mysql> select name,student_id from student  order by name;    
  133. +--------+------------+     
  134. name   | student_id |    
  135. +--------+------------+     
  136. | Abby   |          4 |    
  137. | Avery  |          2 |    
  138. | Joseph |          5 |    
  139. | Kyle   |          1 |    
  140. | Nathan |          3 |    
  141. +--------+------------+     
  142. rows in set (0.08 sec)    
  143.     
  144. mysql> select name,student_id from student  order by name desc;    
  145. +--------+------------+     
  146. name   | student_id |    
  147. +--------+------------+     
  148. | Nathan |          3 |    
  149. | Kyle   |          1 |    
  150. | Joseph |          5 |    
  151. | Avery  |          2 |    
  152. | Abby   |          4 |    
  153. +--------+------------+     
  154. rows in set (0.06 sec)    
  155.     
  156. mysql> select name,student_id from student order by  name limit  3;    
  157. //     
  158. +--------+------------+     
  159. name   | student_id |    
  160. +--------+------------+     
  161. | Abby   |          4 |    
  162. | Avery  |          2 |    
  163. | Joseph |          5 |    
  164. +--------+------------+     
  165. rows in set (0.00 sec)    
  166.     
  167. mysql>     
  168.     
  169.     
  170.     
  171. mysql> select birth from president where last_name = 'Eisenhower';    
  172. +------------+     
  173. | birth      |    
  174. +------------+     
  175. | 1890-10-14 |    
  176. +------------+     
  177. 1 row in set (0.00 sec)    
  178.     
  179.     
  180. mysql> select * from score where score > 95;    
  181. +------------+----------+-------+     
  182. | student_id | event_id | score |    
  183. +------------+----------+-------+     
  184. |          5 |        3 |    97 |    
  185. |         18 |        3 |    96 |    
  186. |          1 |        6 |   100 |    
  187. |          5 |        6 |    97 |    
  188. |         11 |        6 |    98 |    
  189. |         16 |        6 |    98 |    
  190. +------------+----------+-------+     
  191. rows in set (0.05 sec)    
  192.     
  193. mysql> select concat(first_name,' ',last_name) as name,    
  194.     -> concat(city,' ',state) as birthplace    
  195.     -> from president;    
  196. +-----------------------+------------------------+     
  197. name                  | birthplace             |    
  198. +-----------------------+------------------------+     
  199. | George Washington     | Wakefield VA           |    
  200. | John Adams            | Braintree MA           |    
  201. | Thomas Jefferson      | Albemarle County VA    |    
  202. | James Madison         | Port Conway VA         |    
  203. | James Monroe          | Westmoreland County VA |    
  204. | John Quincy Adams     | Braintree MA           |    
  205. | Andrew Jackson        | Waxhaw settlement SC   |    
  206. | Martin Van Buren      | Kinderhook NY          |    
  207. | William H. Harrison   | Berkeley VA            |    
  208. | John Tyler            | Greenway VA            |    
  209. | James K. Polk         | Pineville NC           |    
  210. | Zachary Taylor        | Orange County VA       |    
  211. | Millard Fillmore      | Locke NY               |    
  212. | Franklin Pierce       | Hillsboro NH           |    
  213. | James Buchanan        | Mercersburg PA         |    
  214. | Abraham Lincoln       | Hodgenville KY         |    
  215. | Andrew Johnson        | Raleigh NC             |    
  216. | Ulysses S. Grant      | Point Pleasant OH      |    
  217. | Rutherford B. Hayes   | Delaware OH            |    
  218. | James A. Garfield     | Orange OH              |    
  219. | Chester A. Arthur     | Fairfield VT           |    
  220. | Grover Cleveland      | Caldwell NJ            |    
  221. | Benjamin Harrison     | North Bend OH          |    
  222. | William McKinley      | Niles OH               |    
  223. | Theodore Roosevelt    | New York NY            |    
  224. | William H. Taft       | Cincinnati OH          |    
  225. | Woodrow Wilson        | Staunton VA            |    
  226. | Warren G. Harding     | Blooming Grove OH      |    
  227. | Calvin Coolidge       | Plymouth Notch VT      |    
  228. | Herbert C. Hoover     | West Branch IA         |    
  229. | Franklin D. Roosevelt | Hyde Park NY           |    
  230. | Harry S Truman        | Lamar MO               |    
  231. | Dwight D. Eisenhower  | Denison TX             |    
  232. | John F. Kennedy       | Brookline MA           |    
  233. | Lyndon B. Johnson     | Stonewall TX           |    
  234. | Richard M. Nixon      | Yorba Linda CA         |    
  235. | Gerald R. Ford        | Omaha NE               |    
  236. | James E. Carter       | Plains GA              |    
  237. | Ronald W. Reagan      | Tampico IL             |    
  238. | George H.W. Bush      | Milton MA              |    
  239. | William J. Clinton    | Hope AR                |    
  240. | George W. Bush        | New Haven CT           |    
  241. +-----------------------+------------------------+     
  242. 42 rows in set (0.25 sec)    
  243.     
  244. mysql>     
  245.     
  246. CONCAT()    
  247. DATE_ADD()、DATE_SUB()    
  248.     
  249. MySQL     
  250. : @ =xxx    
  251.     
  252. mysql> select distinct state from president order by state;    
  253. //distinct     
  254. +-------+     
  255. | state |    
  256. +-------+     
  257. | AR    |    
  258. | CA    |    
  259. | CT    |    
  260. | GA    |    
  261. | IA    |    
  262. | IL    |    
  263. | KY    |    
  264. | MA    |    
  265. | MO    |    
  266. | NC    |    
  267. | NE    |    
  268. | NH    |    
  269. | NJ    |    
  270. | NY    |    
  271. | OH    |    
  272. | PA    |    
  273. | SC    |    
  274. | TX    |    
  275. | VA    |    
  276. | VT    |    
  277. +-------+     
  278. 20 rows in set (0.01 sec)    
  279.     
  280. mysql> select count(*) from president;    
  281. +----------+     
  282. count(*) |    
  283. +----------+     
  284. |       42 |    
  285. +----------+     
  286. 1 row in set (0.15 sec)    
  287.     
  288. mysql> select sex, count(*) from student group by sex;    
  289. +-----+----------+     
  290. | sex | count(*) |    
  291. +-----+----------+     
  292. | F   |       15 |    
  293. | M   |       16 |    
  294. +-----+----------+     
  295. rows in set (0.00 sec)    
  296.     
  297. mysql> select state,count(*) from president group by state;    
  298. +-------+----------+     
  299. | state | count(*) |    
  300. +-------+----------+     
  301. | AR    |        1 |    
  302. | CA    |        1 |    
  303. | CT    |        1 |    
  304. | GA    |        1 |    
  305. | IA    |        1 |    
  306. | IL    |        1 |    
  307. | KY    |        1 |    
  308. | MA    |        4 |    
  309. | MO    |        1 |    
  310. | NC    |        2 |    
  311. | NE    |        1 |    
  312. | NH    |        1 |    
  313. | NJ    |        1 |    
  314. | NY    |        4 |    
  315. | OH    |        7 |    
  316. | PA    |        1 |    
  317. | SC    |        1 |    
  318. | TX    |        2 |    
  319. | VA    |        8 |    
  320. | VT    |        2 |    
  321. +-------+----------+     
  322. 20 rows in set (0.00 sec)    
  323.     
  324. mysql> select state,count(*) from president group by state order by count(*) desc limit 5;    
  325. +-------+----------+     
  326. | state | count(*) |    
  327. +-------+----------+     
  328. | VA    |        8 |    
  329. | OH    |        7 |    
  330. | MA    |        4 |    
  331. | NY    |        4 |    
  332. | VT    |        2 |    
  333. +-------+----------+     
  334. rows in set (0.00 sec)    
  335.     
  336. mysql> select state,count(*) as count from president group by state having count > 1 order by count(*) desc limit 5;    
  337. +-------+-------+     
  338. | state | count |    
  339. +-------+-------+     
  340. | VA    |     8 |    
  341. | OH    |     7 |    
  342. | MA    |     4 |    
  343. | NY    |     4 |    
  344. | VT    |     2 |    
  345. +-------+-------+     
  346. rows in set (0.00 sec)    
  347.     
  348. mysql> select event_id, min(score) as minimum, max(score) as maximum, max(score)-min(score)+1 as span, sum(score) as total ,avg(score) as count from score group by event_id;    
  349. +----------+---------+---------+------+-------+---------+     
  350. | event_id | minimum | maximum | span | total | count   |    
  351. +----------+---------+---------+------+-------+---------+     
  352. |        1 |       9 |      20 |   12 |   439 | 15.1379 |    
  353. |        2 |       8 |      19 |   12 |   425 | 14.1667 |    
  354. |        3 |      60 |      97 |   38 |  2425 | 78.2258 |    
  355. |        4 |       7 |      20 |   14 |   379 | 14.0370 |    
  356. |        5 |       8 |      20 |   13 |   383 | 14.1852 |    
  357. |        6 |      62 |     100 |   39 |  2325 | 80.1724 |    
  358. +----------+---------+---------+------+-------+---------+     
  359. rows in set (0.00 sec)    
  360.     
  361. mysql> select student_id,date, score, category from grade_event inner join score on grade_event.event_id=score.event_id where date='2008-09-23' limit 5;    
  362. +------------+------------+-------+----------+     
  363. | student_id | date       | score | category |    
  364. +------------+------------+-------+----------+     
  365. |          1 | 2008-09-23 |    15 | Q        |    
  366. |          2 | 2008-09-23 |    12 | Q        |    
  367. |          3 | 2008-09-23 |    11 | Q        |    
  368. |          5 | 2008-09-23 |    13 | Q        |    
  369. |          6 | 2008-09-23 |    18 | Q        |    
  370. +------------+------------+-------+----------+     
  371. rows in set (0.00 sec)    
  372.     
  373. mysql>     
  374.     
  375. =======================    
  376.     
  377. =======================    
  378. delete from table_name which rows to delete;    
  379.     
  380. mysql> delete from president where state='OH';    
  381. Query OK, 7 rows affected (0.33 sec)    
  382.     
  383. mysql>    
  384.     
  385. mysql> update mysql.user set password='123' where user='root';    
  386. Query OK, 2 rows affected (0.21 sec)    
  387. Rows matched: 2  Changed: 2  Warnings: 0    
  388.     
  389. mysql> flush privileges;    
  390. Query OK, 0 rows affected (0.53 sec)    
  391.     
  392. mysql>    
  393.     
  394. mysql> show columns from president;    
  395. +------------+-------------+------+-----+---------+-------+     
  396. | Field      | Type        | Null | Key | Default | Extra |    
  397. +------------+-------------+------+-----+---------+-------+     
  398. | last_name  | varchar(15) | NO   |     | NULL    |       |    
  399. | first_name | varchar(15) | NO   |     | NULL    |       |    
  400. | suffix     | varchar(5)  | YES  |     | NULL    |       |    
  401. | city       | varchar(20) | NO   |     | NULL    |       |    
  402. | state      | varchar(2)  | NO   |     | NULL    |       |    
  403. | birth      | date        | NO   |     | NULL    |       |    
  404. | death      | date        | YES  |     | NULL    |       |    
  405. +------------+-------------+------+-----+---------+-------+     
  406. rows in set (0.00 sec)    
  407.     
  408. mysql> desc president;    
  409. +------------+-------------+------+-----+---------+-------+     
  410. | Field      | Type        | Null | Key | Default | Extra |    
  411. +------------+-------------+------+-----+---------+-------+     
  412. | last_name  | varchar(15) | NO   |     | NULL    |       |    
  413. | first_name | varchar(15) | NO   |     | NULL    |       |    
  414. | suffix     | varchar(5)  | YES  |     | NULL    |       |    
  415. | city       | varchar(20) | NO   |     | NULL    |       |    
  416. | state      | varchar(2)  | NO   |     | NULL    |       |    
  417. | birth      | date        | NO   |     | NULL    |       |    
  418. | death      | date        | YES  |     | NULL    |       |    
  419. +------------+-------------+------+-----+---------+-------+     
  420. rows in set (0.00 sec)    
  421.     
  422. mysql>