添加数据
为表添加数据我们将用到insert语句
插入单行数据
插入单行数据有分两种情况:一种是带列名列表;一种是不带列名列表。
-
带列名列表的添加方式:
insert into 表名 (列名列表) values (值列表);
注意: 列名列表中的数据与值列表中的值一一对应
-
省略列名列表的添加方式:
insert into 表名 values (值列表);
注意: 要添加表中的所有列。
缺省列的方式插入单行数据(注意要指定插入列的列名):
- 在下面几种情况我们可以省略某些列:
- 列值由RDBMS自动创建,如自增长。
- 创建列时设定了默认值,如果不提供值,则由RDBMS自动创建。
- 如果列被设置为允许空值,那么不输入值不影响数据库的完整性。
自动增长
- 在创建表时创建自动增长:
语法:create table 表名(列名 数据类型 约束 auto_increment,····);
[即我们在创建自动增长时只需要在需要自动增长的列(一般都是主键)后加上auto_increment]
insert语句为自动增长添加数据:
- 只需自动增长那列值写为null即可
例如:insert teacher(teacher_id,teacher_name)values(null,’张老师’)
自动增长以初始值为1开始逐条加一 - 将自动增长那列省略即可:
如上例: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 = ‘张三’; }
- 删除表中所有数据
- 使用delete语句删除:
不加where条件的delete语句就能删除所有语句:
例如:删除学生表中的所有数据:delete from student; - 使用truncate 语句:
标准语法:truncate table 表名
Delete语句与truncate语句的区别:
Delete会记录日志,意味着删除后的数据还可以恢复,但是效率低。
Truncate不会记录日志,删除后的数据不能恢复,但效率高。Truncate不能用于外键约束引用的表。
未完待续·········