插入数据
插入表的值得顺序按insert into TABLE 后面得匹配项顺序来写得。匹配项可以省略,省略后按表得列顺序插入值(desc TABLE_NAME可以查看列顺序)可以一次插入多条值,值与值之间用,隔开。
mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || mysql || performance_schema || stu || sys |+--------------------+5 rows in set (0.02 sec)mysql> use stu;Database changedmysql> show tables;+---------------+| Tables_in_stu |+---------------+| student || students |+---------------+2 rows in set (0.00 sec)mysql> desc students;+-----------+-------------+------+-----+---------+----------------+| Field | Type | Null | Key | Default | Extra |+-----------+-------------+------+-----+---------+----------------+| id | int(20) | NO | PRI | NULL | auto_increment || name | varchar(10) | NO | | NULL | || tel_phone | varchar(13) | YES | | NULL | || address | varchar(20) | YES | | NULL | |+-----------+-------------+------+-----+---------+----------------+4 rows in set (0.03 sec)mysql> --插入数据mysql> insert into students (id, name, tel_phone,address)-> values(1, 'frank', '123455','shanghai');Query OK, 1 row affected (0.00 sec)mysql> -- 第一个id已经插入,id自动增长mysql> insert into students (name, tel_phone,address)-> values( 'jerry', '123455','shanghai');Query OK, 1 row affected (0.00 sec)mysql> -- 如果数据不知道,则填NULL或defaultmysql> insert into students (name, tel_phone,address)-> values( 'roll', NULL, default);Query OK, 1 row affected (0.00 sec)mysql> select * from students;+----+-------+-----------+----------+| id | name | tel_phone | address |+----+-------+-----------+----------+| 1 | frank | 123455 | shanghai || 2 | jerry | 123455 | shanghai || 3 | roll | NULL | NULL |+----+-------+-----------+----------+3 rows in set (0.00 sec)
修改数据
mysql> select * from students;+----+------+-----------+---------+| id | name | tel_phone | address |+----+------+-----------+---------+| 1 | tom | 1234566 | NULL |+----+------+-----------+---------+1 row in set (0.00 sec)mysql> update students set name='frank' where id=1;Query OK, 1 row affected (0.00 sec)Rows matched: 1 Changed: 1 Warnings: 0
删除数据
mysql> delete from students where id=3;Query OK, 1 row affected (0.01 sec)
清空表
delete 是遍历表,比较慢。trancate 是直接创建删除整张表,再克隆一张新的一模一样表。
delect不会删除主键的计数器,而trancate会。举例说就是,假设表中id为主键,假设id最大为 id=100.当使用delete删除这100条数据后,再插入一条数据,id的计数是从101开始,而trancate是从id=1开始
mysql> select * from students;+----+-------+-----------+----------+| id | name | tel_phone | address |+----+-------+-----------+----------+| 1 | frank | 123455 | shanghai || 2 | jerry | 123455 | shanghai |+----+-------+-----------+----------+2 rows in set (0.00 sec)mysql> truncate table students;Query OK, 0 rows affected (0.01 sec)mysql> select * from students;Empty set (0.00 sec)
