数据库的意义:数据存储,数据管理
DML语言:数据操作语言
- Insert
- Update
- Delete
插入命令:INSERT
语法:
插入一条记录:
insert into 表名([字段名1
],[字段名2
],[字段名3
])
values (‘值1’,‘值2’,‘值3’)
插入多条记录:
insert into 表名([字段名1
],[字段名2
],[字段名3
])
values (‘值1’,‘值2’,‘值3’),(‘值1’,‘值2’,‘值3’),(‘值1’,‘值2’,‘值3’),(‘值1’,‘值2’,‘值3’)
INSERT INTO `grade`(`gradename`) VALUES('大四') --插入一条记录
INSERT INTO `grade`(`gradename`) VALUES('大一'),('大四') --插入多条记录
INSERT INTO `student`(`name`,`pwd`) VALUES ('张三','123')
注意事项:
-
字段和字段之间使用 英文逗号 隔开
-
字段是可以省略的,但后面的值必须要一一对应,不能少
-
可以同时插入多条数据,VALUES后面的值,需要使用英文逗号隔开
-
在SQL-SERVER中,自增列属性不能直接修改值,但可以通过以下方式变向实现。如果仅仅是指定值插入,可用以下语句,临时取消
SET IDENTITY_INSERT TableName ON
INSERT INTO tableName(xx,xx) values(xx,xx)
SET IDENTITY_INSERT TableName OFF
修改命令:update
语法:
UPDATE 表名 SET colnum_name = value,[colnum_name = value...] where [条件]
UPDATE `student` SET `name` = '路人甲' WHERE id = 101 -- 修改id为101的学院的名字
UPDATE `student` SET `name` = '陌生人' -- 不带条件,全部人的名字都被修改
条件语句格式:WHERE 子句 运算符 id 等于 某个值,大于某个值,在某个区间修改
操作符会返回布尔值
操作符 | 含义 | 范围 | 结果 |
---|---|---|---|
= | 等于 | 5=6 | false |
<> 或 != | 不等于 | 5<>6 | true |
> | 大于 | 5>6 | false |
< | 小于 | 5<6 | true |
<= | 小于等于 | 5<=6 | true |
>= | 大于等于 | 5>=6 | false |
BETWEEN a AND b | 在某个闭区间内 | [a,b] | – |
AND | 和 | 5>1 AND 1>2 | false |
OR | 或 | 5>1 AND 1>2 | true |
--通过多个条件定位数据
UPDATE `student` SET name = '张三' WHERE name ='沙雕' AND sex = '男'
注意:
- colnum_name是数据库的列,尽量带上``
- 如果没有指定筛选的条件,则会修改所有的列
- vlaue可以是一个具体的值,也可以是一个变量,如
UPDATE 'student' SET 'brithday' = current_TIME WHERE 'name' = '张三' AND sex = '男'
删除命令:delete
语法:
delete from 表名 [where 条件]
--删除数据(避免这种写法,会删除所有数据)
DELETE FROM `student`
--删除指定数据
DELETE FROM `student` WHERE id = 1
truncate命令
作用:完全清空一个数据库表,表的结构和索引约束不会变
--清空student表
TRUNCATE `student`
delete与truncate的区别
- 相同点:都能删除数据,都不会改变表的结构
- 不同
- TRUNCATE 重新设置自增列,计数器会归零
- TRUNCATE 不会影响事务
--测试delete与truncate的区别
CREATE TABLE `test`(
`id` INT(4) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(20) NOT NULL,
PRIMARY KEY (`id`)
)ENGINE = INNODB DEFAULT CHARSET = utf8
INSERT INTO `test`(`name`) VALUES('张三'),('李四'),('王五')
DELETE FROM `test` --计数器不桂林
TRUNCATE TABLE `test` --计数器归零