跟我一起学习MySQL技术内幕(第五版):(第一章学习日记7上)

来源:互联网 发布:ubuntu 不能挂载u盘 编辑:程序博客网 时间:2024/05/16 11:10

1.4.9.10从多个表里检索信息
1.4.10删除或更新已有行

1.4.9.10还是再说两点 ,这里的确有很多东西,但是也涉及到了后边,后边还会有更具体的介绍,这里暂且提一下,可以当做对后边的预习。

  1. inner jion( 内部联合)
select student_id,date,score,catogoryfrom grade_event inner join scoreon grade_event.event_id=score.event_idwhere date ='2012-09-23'

即在查询的时候按照两个表对应的某一列来联系两个表。inner join两边为两个表名,on语句后边的格式是
table1.column_name=table2.column2_name 两个表名对应join左右的两个表名,表名下的列名表示两个表中存在一致关系的两个列,从而做到了联合。

2.子查询
即把一条select语句插入到另一条select语句里(where后的条件)

select * from studentwhere student_idnoy in (select student_id from absence);

嵌套于内层的select语句会确定出absence表里的student_id值集合,而外层的那个select语句则会检索出student表里与该集合中的Id值都不匹配的那些行。子查询是MySQL里我觉得最有意思的东西之一(我是很喜欢范式啦,就是在创建表之前的构思工作),很多子查询都非常的漂亮值得人去学习。这里作者简单介绍,在后边还有更加具体的。

1.4.10删除或更新已有行

1.删除

delete from table_naemwhere condition;delete from table_name;

第一个式子大概就是delete语句的使用格式 ,其实有没有感觉跟select 很像,其实就是一个是选择输出,一个是选择删除。

第二个式子很有意思,在你刚刚创建好的表里试一试吧 ,一定会令你难忘的。(全删!)

书上给了一个建议 ,很有道理。
如果你不是特别确信你的删除正确,并且不会出现其他的错误,那么可以先选择把满足这些条件的输出来

select ......... from table_naemwhere condition ;

接下来根据输出结果确定是不是你想要的结果。

2.修改

update  member set expiration ='2013-7-9'where last_name ='York' and first_name ='Jerome';'

第一行 update关键字 表示将要进行内容的修改 并指定表名。
第二行 set关键字 表示将要进行的修改
第三行 where关键字 定位将要进行修改的位置。

0 0
原创粉丝点击