插入数据

插入表的值得顺序按insert into TABLE 后面得匹配项顺序来写得。匹配项可以省略,省略后按表得列顺序插入值(desc TABLE_NAME可以查看列顺序)可以一次插入多条值,值与值之间用,隔开。

  1. mysql> show databases;
  2. +--------------------+
  3. | Database |
  4. +--------------------+
  5. | information_schema |
  6. | mysql |
  7. | performance_schema |
  8. | stu |
  9. | sys |
  10. +--------------------+
  11. 5 rows in set (0.02 sec)
  12. mysql> use stu;
  13. Database changed
  14. mysql> show tables;
  15. +---------------+
  16. | Tables_in_stu |
  17. +---------------+
  18. | student |
  19. | students |
  20. +---------------+
  21. 2 rows in set (0.00 sec)
  22. mysql> desc students;
  23. +-----------+-------------+------+-----+---------+----------------+
  24. | Field | Type | Null | Key | Default | Extra |
  25. +-----------+-------------+------+-----+---------+----------------+
  26. | id | int(20) | NO | PRI | NULL | auto_increment |
  27. | name | varchar(10) | NO | | NULL | |
  28. | tel_phone | varchar(13) | YES | | NULL | |
  29. | address | varchar(20) | YES | | NULL | |
  30. +-----------+-------------+------+-----+---------+----------------+
  31. 4 rows in set (0.03 sec)
  32. mysql> --插入数据
  33. mysql> insert into students (id, name, tel_phone,address)
  34. -> values(1, 'frank', '123455','shanghai');
  35. Query OK, 1 row affected (0.00 sec)
  36. mysql> -- 第一个id已经插入,id自动增长
  37. mysql> insert into students (name, tel_phone,address)
  38. -> values( 'jerry', '123455','shanghai');
  39. Query OK, 1 row affected (0.00 sec)
  40. mysql> -- 如果数据不知道,则填NULLdefault
  41. mysql> insert into students (name, tel_phone,address)
  42. -> values( 'roll', NULL, default);
  43. Query OK, 1 row affected (0.00 sec)
  44. mysql> select * from students;
  45. +----+-------+-----------+----------+
  46. | id | name | tel_phone | address |
  47. +----+-------+-----------+----------+
  48. | 1 | frank | 123455 | shanghai |
  49. | 2 | jerry | 123455 | shanghai |
  50. | 3 | roll | NULL | NULL |
  51. +----+-------+-----------+----------+
  52. 3 rows in set (0.00 sec)

修改数据

  1. mysql> select * from students;
  2. +----+------+-----------+---------+
  3. | id | name | tel_phone | address |
  4. +----+------+-----------+---------+
  5. | 1 | tom | 1234566 | NULL |
  6. +----+------+-----------+---------+
  7. 1 row in set (0.00 sec)
  8. mysql> update students set name='frank' where id=1;
  9. Query OK, 1 row affected (0.00 sec)
  10. Rows matched: 1 Changed: 1 Warnings: 0

删除数据

  1. mysql> delete from students where id=3;
  2. Query OK, 1 row affected (0.01 sec)

清空表

delete 是遍历表,比较慢。trancate 是直接创建删除整张表,再克隆一张新的一模一样表。
delect不会删除主键的计数器,而trancate会。举例说就是,假设表中id为主键,假设id最大为 id=100.当使用delete删除这100条数据后,再插入一条数据,id的计数是从101开始,而trancate是从id=1开始

  1. mysql> select * from students;
  2. +----+-------+-----------+----------+
  3. | id | name | tel_phone | address |
  4. +----+-------+-----------+----------+
  5. | 1 | frank | 123455 | shanghai |
  6. | 2 | jerry | 123455 | shanghai |
  7. +----+-------+-----------+----------+
  8. 2 rows in set (0.00 sec)
  9. mysql> truncate table students;
  10. Query OK, 0 rows affected (0.01 sec)
  11. mysql> select * from students;
  12. Empty set (0.00 sec)