数据库(二)——DML语句

添加数据

为表添加数据我们将用到insert语句

插入单行数据

插入单行数据有分两种情况:一种是带列名列表;一种是不带列名列表。

  • 带列名列表的添加方式:
    insert into 表名 (列名列表) values (值列表);
    注意: 列名列表中的数据与值列表中的值一一对应
    在这里插入图片描述

  • 省略列名列表的添加方式:
    insert into 表名 values (值列表);
    注意: 要添加表中的所有列。

缺省列的方式插入单行数据(注意要指定插入列的列名):

  • 在下面几种情况我们可以省略某些列:
  1. 列值由RDBMS自动创建,如自增长。
  2. 创建列时设定了默认值,如果不提供值,则由RDBMS自动创建。
  3. 如果列被设置为允许空值,那么不输入值不影响数据库的完整性。

自动增长

  • 在创建表时创建自动增长:

语法:create table 表名(列名 数据类型 约束 auto_increment,····);

[即我们在创建自动增长时只需要在需要自动增长的列(一般都是主键)后加上auto_increment]

insert语句为自动增长添加数据:

  1. 只需自动增长那列值写为null即可
    例如:insert teacher(teacher_id,teacher_name)values(null,’张老师’)
    自动增长以初始值为1开始逐条加一
  2. 将自动增长那列省略即可:
    如上例:insert into teacher(teacher_name)values(‘赵老师’)
  • 修改自动增长的值
    我们前面知道自动增长的默认值时从1开始逐一增加的,但有的时候我们需要自己定义一个初始值。

修改自动增长默认值的语法:alter table 表名 auto_increment = 修改值

例如:修改teacher表的自动增长值从100开始:
Alter table teacher auto_increment = 100

允许为空的列的缺省:

只需要将设为空值的列的值写为null即可。
缺省列的方式添加则只需要将设为空值列的列省略掉

多行添加

语法:insert into 表名 (列名列表) values (值列表1),(值列表2),····;
在这里插入图片描述

转换表的字符集:

建数据库时:create database 数据库名 character set 字符集名;

{ 例子:create database test character set utf8; }

修改字符集:alter table 表名 convert to character set 字符集名 ;

修改数据

修改数据时我们会用到update语句。

更新数据的语法:update 表名 set 列1 = 新值1,列2=新值2,·····,where 过滤条件;

过滤条件: 及我们需要修改数据的条件,例如修改年龄在23岁以上的员工,这里年龄在23岁以上就是过滤条件)

例如:把员工编号为3的员工的出生日期改为1990-6-1
Update employee set emp_birthday = ‘1990-6-1’ where emp_id = 3;

注意: 有过滤条件,就必须把过滤条件加上,如果不加过滤条件,则会修改所有行。

运算符

运算符分为:算数运算符、比较运算符、逻辑运算符

  • 算数运算符:
操作符描述操作符描述
+加号-减号
*乘号在这里插入图片描述除号
%取模符(取余)
  • 比较运算符
操作符描述操作符描述
=等于!=不等于
< >不等于>大于
<小于>=大于等于
<=小于等于!>不大于
!<不小于
  • 逻辑运算符

这里我们总结and与or两个逻辑运算符
And (并且):表示同时满足。
Or (或者): 表示满足一个。

更新单列数据

例如将没及格的同学的分数都加上10分:
Update student set score = score + 10 where score <60;

更新多列数据:和单列语法类似:只是需修改列之间用“,”隔开

通过更新删除列中的数据:
如果要删除某列的值,只需要将该列设置为null即可。当然,这样做的前提是该列允许为空,即没有非空约束。

例如:将张三同学的分数删除:
Update student set score = null where name = ‘张三’;

Delete语句

  • 删除数据
    我们在删除数据时会用到delete语句

语法:Delete from 表名 where 条件;

删除语句可以删除一行或多行,根据过滤条件来确定。
删除姓名为张三的数据:
{ 例子:delete from t_stu where name = ‘张三’; }

  • 删除表中所有数据
  1. 使用delete语句删除:
    不加where条件的delete语句就能删除所有语句:
    例如:删除学生表中的所有数据:delete from student;
  2. 使用truncate 语句:
    标准语法:truncate table 表名

Delete语句与truncate语句的区别:

Delete会记录日志,意味着删除后的数据还可以恢复,但是效率低。

Truncate不会记录日志,删除后的数据不能恢复,但效率高。Truncate不能用于外键约束引用的表。


未完待续·········


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值