收藏 分享(赏)

第10周第2次课—第20章、21章.ppt

上传人:hskm5268 文档编号:8832896 上传时间:2019-07-14 格式:PPT 页数:31 大小:185KB
下载 相关 举报
第10周第2次课—第20章、21章.ppt_第1页
第1页 / 共31页
第10周第2次课—第20章、21章.ppt_第2页
第2页 / 共31页
第10周第2次课—第20章、21章.ppt_第3页
第3页 / 共31页
第10周第2次课—第20章、21章.ppt_第4页
第4页 / 共31页
第10周第2次课—第20章、21章.ppt_第5页
第5页 / 共31页
点击查看更多>>
资源描述

1、高级数据处理,主讲人: 许雪峰 Email: 办公地点:C7 二楼 203 计科系,更新和删除数据 创建和操纵表,本次课主要内容,更新和删除数据 更新数据 删除数据 更新和删除的指导原则 创建和操纵表 创建表 更新表 删除表 重命名表,更新和删除数据,更新数据 关键字 UPDATE UPDATE使用方式 更新表中特定行 更新表中所有行,UPDATE语句的基本构成 要更新的表 列名和它们的新值 确定哪些行要进行过滤,基本语法形式 UPDATE customers SET cust_email = WHERE cust_id = 10005; 例子 把顾客表中ID号为10001的顾客信息修改为

2、同学本人的信息,删除某个的值 UPDATE customers SET cust_email = null WHERE cust_id = 10005; 例子 删除顾客表中ID号为10001的email信息,注意事项 UPDATE语句可以使用子查询,能用SELECT语句检索出的数据更新列数据 默认情况下,在更新时,如果其中的某一行或多行出现错误,整个UPDATE操纵被取消 如果即使发生错误,也继续进行更新,使用IGNORE关键字: UPDATE IGNORE customers,删除数据 关键字 DELETE DELETE使用方式 从表中删除特定的行 从表中删除所有行,DELETE使用方式 D

3、ELETE FROM customers WHERE cust_id = 10006; 例子 删除没有下过订单的顾客记录,注意 DELETE不需要列名或通配符, DELETE删除的是整行而不是删除列 如果要删除指定的列,请使用UPDATE语句 DELETE语句从表中删除行,甚至是删除表中的所有行,但是DELETE不删除表本身 如果想更快地删除表中所有行,可以使用TRUNCATE TABLE 语句,更新和删除的指导原则 除非确实打算更新或删除每一行,否则绝对不使用不带WHERE子句的UPDATE或DELETE 保证每个表都有主键 在对UPDATE或DELETE语句使用WHERE子句之前,先用SE

4、LECT语句进行测试 使用强制实施引用完整性的数据库,这样MySQL将不允许删除具有与其他表相关联的数据的行,创建和操纵表,创建表 创建表的方式 使用具有交互式创建和管理表的工具 直接使用MySQL语句,表创建基础 表创建时必须给出的信息 新表的名字 表列的名字和定义,用逗号隔开 关键字 CREATE TABLE,创建表的样例 CREATE TABLE orders IF NOT EXISTS (order_num int NOT NULL AUTO_INCREMENT,order_date datetime NOT NULL ,cust_id int NOT NULL ,PRIMARY KE

5、Y (order_num) ) ENGINE=InnoDB;,使用NULL值 NULL值就是没有值或缺值 每个表列或者是NULL列,或者是NOT NULL列 NULL为默认设置,如果不指定NOT NULL,则认为指定的是NULL,主键再介绍 主键值必须唯一 如果是由多个列组成的主键,在定义主键时应该以逗号分隔 主键可以在创建表时定义,或者在创建表之后定义 主键中只能使用不允许NULL值的列,使用AUTO_INCREMENT AUTO_INCREMENT 告诉MySQL,本列每当增加一行时自动增量 每个表只允许一个AUTO_INCREMENT,而且它必须被索引 可以覆盖AUTO_INCREMEN

6、T 确定AUTO_INCREMENT值,LAST_INSERT_ID使用方法 一是不带参数:LAST_INSERT_ID(),这种方法和AUTO_INCREMENT属性一起使用,当往带有AUTO_INCREMENT属性字段的表中新增记录时,LAST_INSERT_ID()即返回该字段的值 二是带有表达式:如上面介绍的LAST_INSERT_ID(value+1),它返回的是表达式的值,即value+1;,指定默认值 关键字 DEFAULT 使用情况 如果在插入行时没有给出值,MySL允许指定此时使用默认值,语法格式 CREATE TABLE orderitems (order_num int

7、NOT NULL ,order_item int NOT NULL ,prod_id char(10) NOT NULL ,quantity int NOT NULL DEFAULT 1,item_price decimal(8,2) NOT NULL ,PRIMARY KEY (order_num, order_item) ) ENGINE=InnoDB;,引擎类型 MySQL中常用的引擎类型 InnoDB 一个可靠的事务处理引擎,它不支持全文本搜索 MEMORY 在功能上等同与MyISAM,但由于数据存储在内存,速度快 MyISAM 是一个性能极高的引擎,它支持全文本搜索,但不支持事务处理

8、,注意 外键不能跨引擎,即使用一个引擎的表不能引用具有使用不同引擎的表的外键 对MySQL中引擎完全了解,请参考http:/ 关键字 ALTER TABLE,ALTER TABLE语句的特点 ALTER TABLE之后给出更改的表名(该表名必须存在,否则出错) 所作更改的列表,给表添加一个列 ALTER TABLE vendors ADD vend_phone CHAR(20);例子 给顾客表增加一列,用于保存顾客的手机号码,删除列 ALTER TABLE vendors DROP COLUMN vend_phone ; 例子 删除顾客表中刚才增加的那一列,定义外键 ALTER TABLE orderitems ADD CONSTRAINT fk_orderitems_orders FOREIGN KEY (order_num) REFERENCES orders (order_num); 如果对单个表进行多个更改,可以使用单条ALTER TABLE 语句,每个更改用逗号隔开,删除表 关键字 DROP TABLE 语法格式 DROP TABLE customers2;,重命名表 关键字 RENAME TABLE 语法格式 RENAME TABLE customers2 To customers;,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报