169 lines
4.6 KiB
Markdown
169 lines
4.6 KiB
Markdown
# 数据操作
|
||
|
||
## 插入数据
|
||
|
||
上面已经创建了一个class表,表的格式为
|
||
|
||
| name | sex | age |
|
||
| ---- | ---- | ---- |
|
||
|
||
所以应该如何添加数据呢?
|
||
|
||
```sql
|
||
insert into 表名(字段名,字段名,....) value(值,值,...);
|
||
```
|
||
|
||
添加数据就是使用上面的格式。
|
||
|
||
所以class表添加数据的方法就是
|
||
|
||
```sql
|
||
insert into class(name,sex,age) value("张三","男",20);
|
||
```
|
||
|
||

|
||
|
||
出现这样就是添加成功了
|
||
|
||
虽然到这里应该还有很多疑问,但是没办法一时解释清楚,请带着疑问走下去。
|
||
|
||
## 查询数据
|
||
|
||
已经插入数据了,那么如何查看呢?
|
||
|
||
```sql
|
||
select * from 表名;
|
||
```
|
||
|
||
这样就是查询数据的方法,让我们来试一下。
|
||
|
||
```sql
|
||
select * from class;
|
||
```
|
||
|
||

|
||
|
||
看到了我们的数据已经出现在里面了,那么插入的数据都已经成功了。
|
||
|
||
## 插入数据详解
|
||
|
||
下面详细来了解一下插入数据的语句
|
||
|
||
```sql
|
||
insert into 表名(字段名,字段名,....) value(值,值,...);
|
||
```
|
||
|
||
表名就可以不用说了,那么后面的字段名如何写呢?
|
||
|
||
### 必须是表中含有的字段
|
||
|
||
就像我们现在的class表,只有name sex 与 age 这三个字段,所以插入的时候是`(name,sex,age)`
|
||
|
||
如果写一个不存在的字段就会报错,比如下面,我们写一个classname
|
||
|
||
```sql
|
||
insert info class(name,sex,age,classname) value("李三","男",20,"一班");
|
||
```
|
||
|
||

|
||
|
||
现在就报错了
|
||
|
||
>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("李四");
|
||
```
|
||
|
||

|
||
|
||
可以成功
|
||
|
||
查询一下
|
||
|
||

|
||
|
||
只有名字 其他的都是null,只要是不写的字段默认都会是null。
|
||
|
||
### 可以省略字段名
|
||
|
||
上面添加的时候都会写上字段名字,但是名字都是可以省略的,只需要遵循语法规范。
|
||
|
||
```sql
|
||
INSERT INTO table VALUE(value1,value2,...);
|
||
```
|
||
|
||
写法是怎么样的呢,后面value的顺序需要跟建表时候的字段顺序一样,而且数量需要一样的。
|
||
|
||
例如现在的这个表
|
||
|
||
```sql
|
||
insert into class value('王五','男',11);
|
||
```
|
||
|
||

|
||
|
||
查询一下
|
||
|
||

|
||
|
||
已经出现了
|
||
|
||
如果说少些了或者多写了会怎么样呢?
|
||
|
||
```sql
|
||
insert into class value('王五','男');
|
||
```
|
||
|
||

|
||
|
||
```sql
|
||
insert into class value('王五','男',11,2);
|
||
```
|
||
|
||

|
||
|
||
两个错误都是一样的,翻译一下
|
||
|
||

|
||
|
||
如果想这么添加必须个数一样,所以一般不会使用这样的添加方法。
|
||
|
||
### 一次添加多条数据
|
||
|
||
现在每次执行一行的时候都是添加的一条数据,有时候我们需要同时添加多条数据的时候怎么办呢?
|
||
|
||
```sql
|
||
INSERT INTO table VALUES(value1,value2,...),(value1,value2,...),(value1,value2,...),....;
|
||
```
|
||
|
||
使用上面的语法就可以,比如我们现在的这个class表。
|
||
|
||
```sql
|
||
insert into class(name,sex,age) values('小红','男',11),('小名','男',11),('小白','男',11);
|
||
```
|
||
|
||
这样一次我们添加三条数据,可以再往后添加更多的数据。
|
||
|
||

|
||
|
||
添加成功了,查询一下
|
||
|
||

|
||
|
||
下面添加的那三个已经成功添加进去了。
|
||
|
||
## 结束
|
||
|
||
插入数据已经说完了,下面就是修改数据和删除数据了。
|