# 数据操作 ## 插入数据 上面已经创建了一个class表,表的格式为 | name | sex | age | | ---- | ---- | ---- | 所以应该如何添加数据呢? ```sql insert into 表名(字段名,字段名,....) value(值,值,...); ``` 添加数据就是使用上面的格式。 所以class表添加数据的方法就是 ```sql insert into class(name,sex,age) value("张三","男",20); ``` ![图 1](../../images/d0563dc7845cb598cb300066e182aa2067e3fc6216946703fbb6c587a0078c49.png) 出现这样就是添加成功了 虽然到这里应该还有很多疑问,但是没办法一时解释清楚,请带着疑问走下去。 ## 查询数据 已经插入数据了,那么如何查看呢? ```sql select * from 表名; ``` 这样就是查询数据的方法,让我们来试一下。 ```sql select * from class; ``` ![图 2](../../images/4cdefb4aeb27679d91dd50227a7d2efc117dc1f60effabd42677dc9d0dfbdbe9.png) 看到了我们的数据已经出现在里面了,那么插入的数据都已经成功了。 ## 插入数据详解 下面详细来了解一下插入数据的语句 ```sql insert into 表名(字段名,字段名,....) value(值,值,...); ``` 表名就可以不用说了,那么后面的字段名如何写呢? ### 必须是表中含有的字段 就像我们现在的class表,只有name sex 与 age 这三个字段,所以插入的时候是`(name,sex,age)` 如果写一个不存在的字段就会报错,比如下面,我们写一个classname ```sql insert info class(name,sex,age,classname) value("李三","男",20,"一班"); ``` ![图 1](../../images/13ee6d4bd67ad0887098ee2a3ff5cb2ecae4245492c9f7914737eda82c445b8b.png) 现在就报错了 >ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'class(name,sex,age,classname) value("李三","男",20,"一班")' at line 1 翻译一下 > 错误1064(42000):您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以了解使用“class(name,sex,age,classname)value(”李三","男",20,"一班")' 在1号线 sql语法错误了,不能写表内没有的字段 ### 可以省略一些字段 举个例子 ```sql insert class(name) value("李四"); ``` ![图 2](../../images/05744f66e8ff044dfd7d26b6c5173b6d38e26946dee5866ab28ef6d090885620.png) 可以成功 查询一下 ![图 3](../../images/cf4c2d67f9e61957ecd9e0b15f88708fa1b082c8466fe58e87f47c6fdd77c857.png) 只有名字 其他的都是null,只要是不写的字段默认都会是null。 ### 可以省略字段名 上面添加的时候都会写上字段名字,但是名字都是可以省略的,只需要遵循语法规范。 ```sql INSERT INTO table VALUE(value1,value2,...); ``` 写法是怎么样的呢,后面value的顺序需要跟建表时候的字段顺序一样,而且数量需要一样的。 例如现在的这个表 ```sql insert into class value('王五','男',11); ``` ![图 1](../../images/70c8fced863114fc9da9c3bef072a664205ad74208834f4ad211bc0ac11b8907.png) 查询一下 ![图 2](../../images/560eaa119c7b2d863f1d67f8e02479bc78590e2df918969ab45fef5bf0db348c.png) 已经出现了 如果说少些了或者多写了会怎么样呢? ```sql insert into class value('王五','男'); ``` ![图 3](../../images/47825a90e74ed9efc2bfd68edd33ff23fa1a4b83fb51b4293d49753782c84394.png) ```sql insert into class value('王五','男',11,2); ``` ![图 4](../../images/43a26e249cb890dcad72ff1ae2f5b6d2510b88c3f3b897ddd2af1a551abd6251.png) 两个错误都是一样的,翻译一下 ![图 5](../../images/34180375660480f0888de766b4ef42ed9a39ec72d4c33123101773af694b701e.png) 如果想这么添加必须个数一样,所以一般不会使用这样的添加方法。 ### 一次添加多条数据 现在每次执行一行的时候都是添加的一条数据,有时候我们需要同时添加多条数据的时候怎么办呢? ```sql INSERT INTO table VALUES(value1,value2,...),(value1,value2,...),(value1,value2,...),....; ``` 使用上面的语法就可以,比如我们现在的这个class表。 ```sql insert into class(name,sex,age) values('小红','男',11),('小名','男',11),('小白','男',11); ``` 这样一次我们添加三条数据,可以再往后添加更多的数据。 ![图 6](../../images/269762a748666237f4c75c4e78526b32c2dff37db2346aea3757933f4ecc8f3d.png) 添加成功了,查询一下 ![图 7](../../images/007b78cc30be892d485e497caa3bbb1f0203ec1cbeda4ab9378408cc018ce9a8.png) 下面添加的那三个已经成功添加进去了。 ## 结束 插入数据已经说完了,下面就是修改数据和删除数据了。