管理表记录

管理表记录

增加表记录

语法格式

·格式1∶添加1条记录,给所有字段赋值
- insert into 表名values (字段值列表);
·格式2∶添加多条记录,给所有字段赋值
- insert into 表名
values
(字段值列表),(字段值列表).(字段值列表);

·格式3∶添加1条记录,给指定字段赋值
- insert into表名(字段名列表) values(字段值列表);
·格式4∶添加多条记录,给指定字段赋值
- insert into表名(字段名列表)
values
(字段值列表),//第1条记录

(字段值列表),//第2条记录

(字段值列表);//第3条记录


注意事项

具体如下∶
-字段值要与字段类型相匹配。
-字符类型的字段,要用“”号括起来。

-依次给所有字段赋值时,字段名可以省略。
-只给部分字段赋值时,必须明确写出对应的字段名称。

-没有赋值的字段使用默认值或自增长赋值。

步骤一:练习插入表记录

mysql> create table studb.stu_info(
-> name varchar(8),not null,
-> sex enum("boy","girl"),not null,default 'boy',
-> age int(4),not null
-> );

1)插入记录时,指定记录的每一个字段的值

这种情况下,不需要明确指出字段,但每条记录的值的顺序、类型都必须与表格结构向一致,否则可能无法正确插入记录。

比如,以下操作将向stu_info表插入3条表记录:

mysql> INSERT into stu_info VALUES
    -> ('Jim','girl',24),
    -> ('Tom','boy',21),
    -> ('Lily','girl',20);
Query OK, 3 rows affected (0.15 sec)
Records: 3  Duplicates: 0  Warnings: 0

完成插入后确认表记录:

mysql> SELECT * FROM stu_info;
+------+--------+-----+
| name | gender | age |
+------+--------+-----+
| Jim  | girl   |  24 |
| Tom  | boy    |  21 |
| Lily | girl   |  20 |
+------+--------+-----+
3 rows in set (0.00 sec)

2)插入记录时,只指定记录的部分字段的值

这种情况下,必须指出各项值所对应的字段;而且,未赋值的字段应设置有默认值或者有自增填充属性或者允许为空,否则插入操作将会失败。

比如,向stu_info表插入Jerry的年龄信息,性别为默认的“boy”,自动编号,相关操作如下:

mysql> INSERT INTO stu_info(name,age)
    -> VALUES('Jerry',27);
Query OK, 1 row affected (0.04 sec)

类似的,再插入用户Mike的年龄信息:

mysql> INSERT INTO stu_info(name,age)
    -> VALUES('Mike',21);
Query OK, 1 row affected (0.05 sec)

确认目前stu_info表的所有记录:

mysql> SELECT * FROM stu_info;
+-------+--------+-----+
| name  | gender | age |
+-------+--------+-----+
| Jim   | girl   |  24 |
| Tom   | boy    |  21 |
| Lily  | girl   |  20 |
| Jerry | boy    |  27 |
| Mike  | boy    |  21 |
+-------+--------+-----+
5 rows in set (0.00 sec)

查询表记录

语法格式

·格式1查看所有记录
- select字段1,...字段N from 库名.表名;
格式2条件查询
- select字段1,....字段N from库名.表名where条件表达式;

mysql> select * from stu.stu_info where age=21;
+------+-----+------+
| name | sex | age |
+------+-----+------+
| tom | boy | 21 |
| mike | boy | 21 |
+------+-----+------+


注意事项

要求如下
-*表示所有字段
-查看当前库表记录时库名可以省略-字段列表决定显示列个数
-条件决定显示行的个数


更新表记录

语法格式

格式1,批量更新- update库名.表名
set字段名=值,字段名=值,字段名=值.....;格式2,条件匹配更新
- update库名.表名
字段名=值,字段名=值字段名=值,......
set
where条件表达式;


注意事项

具体如下:
-字段值要与字段类型相匹配
-对于字符类型的字段,值要用双引号括起来
-若不使用where限定条件,会更新所有记录字段值-限定条件时,只更新匹配条件的记录的字段值

4)更新表记录时,可以限制条件,只对符合条件的记录有效

将stu_info表中所有性别为“boy”的记录的age设置为20:

mysql> UPDATE stu_info SET age=20
    -> WHERE sex='boy';
Query OK, 3 rows affected (0.04 sec)
Rows matched: 3  Changed: 3  Warnings: 0

确认更新结果:

mysql> SELECT * FROM stu_info;
+-------+--------+-----+
| name  | gender | age |
+-------+--------+-----+
| Jim   | girl   |  10 |
| Tom   | boy    |  20 |
| Lily  | girl   |  10 |
| Jerry | boy    |  20 |
| Mike  | boy    |  20 |
+-------+--------+-----+
5 rows in set (0.00 sec)


删除表记录

语法格式

·格式1,条件匹配删除
- delete from库名.表名where条件表达式;
·格式2,删除所有记录
- delete from 库名.表名;

注意事项

具体如下︰
-不加条件删除表中的所有行

 

5)删除表记录时,可以限制条件,只删除符合条件的记录

删除stu_info表中年龄小于18的记录:

mysql> DELETE FROM stu_info WHERE age < 18;
Query OK, 2 rows affected (0.03 sec)

确认删除结果:

mysql> SELECT * FROM stu_info;
+-------+--------+-----+
| name  | gender | age |
+-------+--------+-----+
| Tom   | boy    |  20 |
| Jerry | boy    |  20 |
| Mike  | boy    |  20 |
+-------+--------+-----+
3 rows in set (0.00 sec)

6)删除表记录时,如果未限制条件,则会删除所有的表记录

删除stu_info表的所有记录:

mysql> DELETE FROM stu_info;
Query OK, 3 rows affected (0.00 sec)

确认删除结果:

mysql> SELECT * FROM stu_info;
Empty set (0.00 sec)


1 简述MySQL数据库中插入、更新、查询、删除表记录的指令格式。

参考答案

1)插入记录指令格式

insert  into   库.表   values(值列表);   //一次插入一条记录 给记录的所有字段赋值
insert  into   库.表   values(值列表),(值列表);  
//一次插入多条记录 给记录的所有字段赋值
insert  into   库.表(字段名列表)   values(值列表); 
//一次插入1条记录 给记录的指定字段赋值
insert  into   库.表(字段名列表)   values(值列表),(值列表); 
//一次插入多条记录 给记录的指定字段赋值

2)更新记录指令格式

update  表名  set   字段名=值,字段名="值"; 		//批量修改
update  表名  set   字段名=值,字段名="值" where  条件; 
//修改符合条件的记录字段的值

3)查询记录指令格式:

select  字段列表   from  表名; 
//查询所有记录指定字段的值。
select  字段列表   from  表名  where  条件表达式列表;
//查询与条件匹配记录指定字段的值。

4)删除表记录指令格式:

delete  from  表名; 		//删除表的所有记录。
delete  from  表名  where  条件; 	//只删除符合条件的记录

 

posted @ 2022-02-19 17:21  东山有耳  阅读(63)  评论(0)    收藏  举报