数据库管理 -数据操作语言

数据库管理 -数据操作语言

数据库意义

  • 数据存储
  • 数据管理

管理数据库数据方法

  • 通过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` --自增会归零
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值