插入数据
插入表的值得顺序按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 changed
mysql> 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或default
mysql> 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)