700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > mysql必知必会_5天学完《MySQL必知必会》学习笔记之第四天

mysql必知必会_5天学完《MySQL必知必会》学习笔记之第四天

时间:2022-07-10 10:46:08

相关推荐

mysql必知必会_5天学完《MySQL必知必会》学习笔记之第四天

本篇知识点

更新删除数据、创建操纵表、视图、存储过程

更新和删除数据

使用UPDATE语句更新(修改)表中的数据:更新表中特定行(使用WHERE语句更新表中所有行UPDATE语句以要更新的表名开始,SET命令用来赋值

UPDATE

更新多个列

UPDATE

使用IGNORE关键字,即使在更新多个行时发生错误,也能继续进行更新

UPDATE

删除某个列的值,可使用UPDATE设置它为NULL(假如表定义允许NULL值)

UPDATE

其中NULL用来去除cust_mail列中的值

使用DELETE语句从一个表中删除数据:从表中删除特定行从表中删除所有行DELETE删除整行,删除列(值)用UPDATE

DELETE

DELETE不删除表本身;删除所有行用TRUNCATE TABLE[1]更快。

创建和操纵表

使用CREATE TABLE创建表时,须给出下列信息:新表的名字,在关键字CREATE TABLE之后给出;表列的名字和定义,用逗号分隔创建练习使用的customers表

CREATE

在表名后给出IF NOT EXISTS,仅在表名不存在时创建它。

NULL值表示没有值或缺值,允许NULL值的列允许在插入行时不给出该列的值,否之必须给值

CREATE

NULL值和NOT NULL可以在创建时混用

主键值必须唯一;创建由多个列组成的主键,应该以逗号分隔的列表给出各列名:

CREATE

订单号(order_num)和订单物品(order_item)的组合是唯一的,从而适合作为主键。

主键:其值唯一标识表中每个行的列;主键中只能使用定义为NOT NULL的列。

使用AUTO_INCREMENT,当一列增加一行时自动增量,给该列赋予一个可用的值,一般用在id列,可用作主键值;每个表只允许一个AUTO_INCREMENT列,且它必须被索引。使用last_insert_id( )函数可获得使用AUTO_INCREMENT列时获得的值

SELECT

返回一个AUTO_INCREMENT值

指定默认值:如果在插入行时没有给值,可指定使用默认值

quantity

MySQL只支持常量作为默认值

引擎类型InnoDB是一个可靠的事务处理引擎,不支持全文本搜索MEMORY功能等同与MyISAM,数据存储在内存中,速度很快(适合于临时表)MyISAM性能很高,支持全文本搜索,不支持事务处理

外键不能跨引擎

使用ALTER TABLE语句更新表定义,须给出:ALTER TABLE之后给出要更改的表名更改的列表给表添加一个列

ALTER

删除刚添加的列

ALTER

使用ALTER TABLE定义外键:

ALTER

对单个表进行多个更改,可使用单挑ALTER TABLE语句,每个更改用逗号分隔

删除表

DROP

重命名表

RENAME

可以对多个表重命名,用逗号分开。

使用视图

视图是虚拟的表;视图只包含使用时动态检索数据的查询。为什么使用视图:重用SQL语句简化复杂的SQL操作。编写查询后,可以方便地重用它而不必知道基本细节使用表的组成部分而非整个表保护表数据。用户仅被授予表的特定部分的访问权限。更改数据格式和表使。视图可返回与底层表的表示和格式不同的数据视图是用来查看存储在别处的数据的一种设施,它本身不包含数据。视图的创建:用CREATE VIEW语句创建使用SHOW CREATE VIEW viewname;来查看创建视图的语句用DROP删除视图,语法为DROP VIEW viewname更新视图时,可先DROP再CREATE,也可直接CREATE OR REPLACE VIEW.使用视图隐藏复杂的SQL

CREATE

这条语句创建一个名为productcustomers的视图,它联结三个表。

为检索订购了产品TNT2的客户,可如下进行:

SELECT

使用视图重新格式化检索出的数据

CREATE

用视图过滤不想要的数据

CREATE

定义customeremaillist视图,过滤没有电子邮件地址的客户。

使用视图与计算字段

CREATE

视图是可更新的(对它们使用INSERT, UPDATE和DELETE),但是如果视图定义中有以下操作(使得MySQL不能正确地确定被更新的基数据),则不能进行视图更新:分组(使用GROUP BY和HAVING)联结子查询并聚集函数(Min( ), Count( ), Sum( )等)DISTINCT导出(计算)列

使用存储过程

存储过程,就是为了以后的使用而保存的一条或多条MySQL语句的集合。可将其视为批文件。执行存储过程称为调用,使用语句CALL

CALL

其中,执行名为productpricing的存储过程,它计算并返回产品的最低、最高和平均价格。

创建存储过程例子:一个返回产品平均价格的存储过程

CREATE

此存储过程名为productpricing,用CREATE PROCEDURE productpricing( )语句定义,若存储过程接受参数,将在( )中列举出来。BEGIN和END语句用来限定存储过程体,存储过程体本身仅是一个简单的SELECT语句。

mysql命令行客户机的分隔符 (我懒得打字总结了)

摘自《MySQL必知必会》
使用存储过程

CALL

删除存储过程

DROP

使用参数

CREATE

此存储过程接受3个参数:pl存储产品最低价格,ph存储产品最高价格,pa存储产品平均价格。每个参数必须具有指定的类型,这里使用十进制值。关键词OUT指出相应的参数用来从存储过程传出一个值(返回给调用者)。MySQL支持IN(传递给存储过程)、OUT(从存储过程传出)和INOUT(对存储过程传入和传出)类型的参数。

调用此存储过程须指定3个变量名

CALL

变量以@开始。调用时上条语句不显示数据,它返回可以显示的变量。

显示数据

SELECT

显示3个数据

SELECT

使用IN和OUT参数

CREATE

onumer定义为IN, 因为订单号被传入存储过程。ototal定义为OUT, 因为要从存储过程返回合计,INTO使用ototal存储计算出来的合计。

调用这个存储过程

CALL

建立智能存储过程

智能存储过程中包含了业务规则和智能处理,不仅限于封装简单的SELECT语句

案例需要对订单合计增加营业税,不过只针对某些顾客

-- Name: ordertotal

这个存储过程增加了注释(前面放置--),用DECALRE语句定义了两个局部变量。COMMENT关键字非必须,如果给出,将在SHOW PROCEDURE STATUS结果中显示。

试验存储过程

CALL

检查存储过程

SHOW

参考

^TRUNCATE实际是删除原来的表并重新创建一个表,而不 是逐行删除表中的数据.

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。