数据库管理 -数据操作语言
数据库意义
- 数据存储
- 数据管理
管理数据库数据方法
- 通过SQLyog等管理工具管理数据库数据
- 通过DML语句管理数据库数据
DML语言
- DML(数据操作语言)
- 用于操作数据库对象中所包含的数据
- 包括 :
- INSERT (添加数据语句)
- UPDATE (更新数据语句)
- DELETE (删除数据语句)
添加数据
INSERT命令
-
语法 :
INSERT INTO 表名[(字段1,字段2,字段3,...)] VALUES(('值1'),('值2'),('值3'),...)
注意 :
- 字段或值之间用英文逗号隔开.
- '字段1,字段2…'该部分可省略 , 但添加的值务必与表结构,数据列,顺序相对应,且数量一致.
- 可同时插入多条数据 , values 后用英文逗号隔开.
创建一个表:
-- DML(数据操作语言) 练习
-- 创建课程表
CREATE TABLE `subject` (
`subjectid` INT(10) NOT NULL AUTO_INCREMENT COMMENT '课程序号',
`subjectname` VARCHAR(50) NOT NULL COMMENT '课程名称',
PRIMARY KEY (`subjectid`) -- 设置主键
) ENGINE=INNODB DEFAULT CHARSET=utf8
-- 插入一个字段
INSERT INTO `subject`(subjectname) VALUES ('java');
-- 一个字段插入多个值
INSERT INTO `subject`(subjectname) VALUES ('c语言'),('HTML5');
-- 为多个列同时插入字段
INSERT INTO `subject`(`subjectname`,`subjectrank`,`subjectstar`) VALUES('java','hard','8')
-- 为多个列插入多个字段
INSERT INTO `subject`(`subjectname`,`subjectrank`,`subjectstar`)
VALUES('java','hard','8'),('C++','just','6'),('HTML5','easy','4')
错误收藏栏:
-- 由于主键自增,我们可以省略(如果不写表的字段,它就会一一匹配)
INSERT INTO `subject` VALUES ('c++');
1 queries executed, 0 success, 1 errors, 0 warnings
查询:INSERT INTO `subject` VALUES ('c++')
错误代码: 1136
Column count doesn't match value count at row 1
执行耗时 : 0 sec
传送时间 : 0 sec
总耗时 : 0 sec
修改数据
UPDATE命令
-
语法 :
UPDATE 表名 SET column_name=value [,column_name2=value2,...] [WHERE condition];
注意 :
- column_name 为要更改的数据列
- value 为修改后的数据 , 可以为变量 , 具体指 , 表达式或者嵌套的SELECT结果
- condition 为筛选条件 , 如不指定则修改该表的所有列数据
update 修改谁 (条件) set 原来的值=新值
-- 修改`subjectname`
UPDATE `subject` SET `subjectname`='计科课表'WHERE `subjectid`=1;
-- 不指定条件下会改变所有表
UPDATE `subject` SET `subjectname`='新思路'
-- 修改多个属性,用逗号,隔开
UPDATE `subject` SET `subjectname`='java',`subjectrank`='hard',`subjectstar`='8'WHERE `subjectid`=2;
-- 通过多个条件定位数据
UPDATE `subject` SET `subjectname`='java'WHERE `subjectrank`='hard'AND `subjectstar`='8';
修改数据:
-- DML(数据操作语言) 练习
-- 创建课程表
CREATE TABLE `subject` (
`subjectid` INT(10) NOT NULL AUTO_INCREMENT COMMENT '课程序号',
`subjectname` VARCHAR(50) NOT NULL COMMENT '课程名称',
`subjectrank`VARCHAR(50) NOT NULL COMMENT '课程难度',
`subjectstar`INT(10) NOT NULL COMMENT '课程评分',
PRIMARY KEY (`subjectid`) -- 设置主键
) ENGINE=INNODB DEFAULT CHARSET=utf8
UPDATE `subject` SET `subjectname`='计科课表'WHERE `subjectid`=1;
-- 不指定条件下会改变所有表
UPDATE `subject` SET `subjectname`='新思路'
-- 修改多个属性,用逗号,隔开
UPDATE `subject` SET `subjectname`='java',`subjectrank`='hard',`subjectstar`='8'WHERE `subjectid`=2;
-- 通过多个条件定位数据
UPDATE `subject` SET `subjectname`='java'WHERE `subjectrank`='hard'AND `subjectstar`='8';
删除数据
DELETE命令
-
语法
DELETE FROM 表名 [WHERE condition];
注意 : condition为筛选条件 , 如不指定则删除该表的所有列数据
TRUNCATE命令
- 用于完全清空表数据 , 但表结构 , 索引 , 约束等不变 ;
- 语法 : TRUNCATE [TABLE] table_name;
注意 : 区别于DELETE命令
-
相同 : 都能删除数据 , 不删除表结构 , 但TRUNCATE速度更快
-
不同 :
- 使用TRUNCATE TABLE 重新设置AUTO_INCREMENT计数器
- 使用TRUNCATE TABLE不会对事务有影响
-
使用TRUNCATE TABLE不会对事务有影响
-- 1.删除全部数据
DELETE FROM `subject` --不会影响自增
-- 2.删除指定数据
DELETE FROM `subject`WHERE `subjectid`=1;
-- TRUNCATE
截断表;截除;删除记录;语句
-- 清空 `subject` 表
TRUNCATE `subject` --自增会归零