




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、教案20112012学年第1学期课程名称MySQL数据库系(院、部)教研室(实验室)授课班级主讲教师职称使用教材MySQL实用教程年八月教案课程 名称MYSQ擞据库应用授课教师授课 班级授课时数1授课方式理论课授课 重点、难点l.mysql关系数据库简介2. mysql 安装授课 内容、 教具 与时 间分 配I.MySQL数据库是从多关系型数据库产品中的一个,相比其他数据库而言,MySQL数据库可以称为目前运行速度最快的SQL语言。除此外还具有许多其他数据库所不具有的功能和选择。MySQL数据库是一种完全免费的产品,用户可以从网上直接下载,可以是个人, 也可是商业用户,是不用支付任何费用的一个
2、数据库。MySQL数据库具有以下特点:?没有限制同时访问数据库的用户数量。?可以保存记录超过 50,000,000条。?数据库系统的运行速度是目前所用产品中最快的。?可以简单、有效地进行用户权限的设置。?从MySQL数据库具有的以上特点可以看出,MySQL数据库个运行速度快、多线程、多用户和强大的SQL数据库服务器。MySQL可以运行在多种平台上,包才Windows NT、UNIX和Linux系统。MySQL是建立数据库驱动和动态网站的最佳数据库。PHP、MySQL和Apache是Linux平台网站的最佳组合。目前,国际上知名公司也开始把MySQL作为其数据库管理系统,这也充分的证明了 MyS
3、QL数据库的优越性能和广阔的发展前景。2.安装数据库系统 ?数据库概述1.1 数据库理论基础1.1.1 数据存储方式1.1.2 数据库泛型1.1.3 数据库在开发中作用小结复习思考 题本次课程主要内容为mysql关系数据库简介Mysql安装配置« mysql入门很简单清华大学出版社Mysql数据库应用课程名称MYSQ擞据库应用授课教师授课班级授课时数4授课方式理论课授课重点、 难点1.Mysql数据类型课为、具时分授卢容教与间1. MySQL的数据类型在MySQL中有如下几种数据类型:(1)数值型MySQL 提供了五种整型:TINYINT、SMALLINT、MEDIUMINT、INT
4、 和 BIGINT ,三种浮点类型: FLOAT、 DOUBLE 和 DECIMAL 。数值是诸如32或153.4这样的值。MySQL支持科学表示法,科学表示法由整数或浮点数 后跟“e”或"E"、一个符号(“+”或“-")和一个整数指数来表示。1.24E+12和23.47e-1都是合法的科学表示法表示的数。而 1.24E12不是合法的,因为指数前的符号未给出。浮点数由整数部分、一个小数点和小数部分组成。整数部分和小数部分可以分别为空,但 不能同时为空。数值前可放一个负号“-”以表示负值。(2)字符(串)型类型名说明CHAR定长字符串_VARCHAR可变长字符串JT
5、INYBLOB非常小的BLOB (二进制大对象)BLOB小 BLOBMEDIUMBLOB中等的BLOBLONGBLOB大 BLOBTINYTEXT非常小的文本串TEXT小文本串MEDIUMTEXT中等文本串LONGTEXT大文本串ENUM枚举;列可赋予某个枚举成员SET集合;列可赋予多个集合成员(3)日期和时间型类型名说明DATE“YYYYMM-DD1格式表示的日期值TIMEhh:mm:ss格式表示的时间值DATETIME“YYYYMM-DD hh:mm:ss” 格式TIMESTAM"YYYYMMDDhhmmss5 的时间戳P直YEAR“YYYY格式的年份值(4) NULL 值NUL
6、L表示未知值。比如填写表格中通讯地址不清楚留空不填写,这就是 NULL值。小结复习本次课程主要内容为思考 Mysql数据类型题« mysql入门很简单清华大学出版社爹方书Mysql数据库应用数据库操作授课教师课程 名称授课授课时数授课方式理论课班级课堂、点授重点难课内 、具时'己授内容教万间皆1创建数据库2删除数据库3数据库存储引擎3.1 MySQL存储引擎简介3.2 InnoDB存储引擎3.3 MylSAM存储引擎3.4 MEMORY存储引擎.3.5存储引擎的选择创建数据库(当然,数据库名"asb"不能是已经存在的)mysql> create da
7、tabase asb;选用数据库,使其成为当前操作的数据库mysql> use asb;成功选中后会有如下显示:Database changed甚至可以在窗口命令登陆mysql数据库的时候直接选中要操作的数据库(当然前提是asb数据库存在)bin>mysql asb -u uesername -pEnter password:*查看当前所操作的数据库名称mysql> select database。;运行后结果如下:+| database。|+| asb |+1 row in set (0.00 sec)数据库存储引擎:ISAMISAM 是一个定义明确且历经时间考验的数据表格
8、管理方法,它在设计之时就考虑到数据库被查询的次数要远大于更新的次数。因此,ISAM 执行读取操作的速度很快,而且不占用大量的内存和存储资源。ISAM 的两个主要不足之处在于,它不支持事务处理,也不能够容错:如果你的硬盘崩溃了,那么数据文件就无法恢复了。如果你正在把ISAM 用在关键任务应用程序里,那就必须经常备份你所有的实时数据,通过其复制特性,MySQL 能够支持这样的备份应用程序。MyISAMMyISAM 是 MySQL 的 ISAM 扩展格式和缺省的数据库引擎。除了提供ISAM 里所没有的索引和字段管理的大量功能,MyISAM 还使用一种表格锁定的机制,来优化多个并发的读写操作。其代价是
9、你需要经常运行OPTIMIZE TABLE 命令,来恢复被更新机制所浪费的空间。 MyISAM 还有一些有用的扩展,例如用来修复数据库文件的MyISAMChk 工具和用来恢复浪费空间的MyISAMPack 工具。MyISAM 强调了快速读取操作,这可能就是为什么MySQL 受到了 Web 开发如此青睐的主要原因:在Web 开发中你所进行的大量数据操作都是读取操作。所以,大多数虚拟主机提供商和Internet 平台提供商(Internet Presence Provider , IPP) 只允许使用MyISAM 格式。HEAPHEAP 允许只驻留在内存里的临时表格。驻留在内存里让HEAP 要比
10、ISAM 和 MyISAM都快,但是它所管理的数据是不稳定的,而且如果在关机之前没有进行保存,那么所有的数据都会丢失。在数据行被删除的时候,HEAP 也不会浪费大量的空间。HEAP 表格在你需要使用SELECT 表达式来选择和操控数据的时候非常有用。要记住,在用完表格之后就删除表格。让我再重复一遍:在你用完表格之后,不要忘记删除表格。InnoDB 和 Berkley DBInnoDB 和 Berkley DB(BDB) 数据库引擎都是造就MySQL 灵活性的技术的直接产品,这项技术就是MySQL+ API 。在使用MySQL 的时候,你所面对的每一个挑战几乎都源于 ISAM 和 MyISAM
11、数据库引擎不支持事务处理也不支持外来键。尽管要比ISAM 和MyISAM 引擎慢很多,但是InnoDB 和 BDB 包括了对事务处理和外来键的支持,这两点都是前两个引擎所没有的。如前所述,如果你的设计需要这些特性中的一者或者两者,那你就要被迫使用后两个引擎中的一个了。本次课程主要内容为小结 Mysql数据库操作复习数据库存储引擎思考复习题目:题1 .什么是存储引擎?如何选择?爹方书 2.mysql数据库操作方法« mysql入门很简单清华大学出版社Mysql数据库应用课程,;二数据库表操作授课教师名称授课一,一、人福的授课时数4授课方式理论课授课 1.创建表重点、 2.修改表难点3.
12、删除表授课用CREATE TABLE语句创建数据表内容、 用CREATE TABLE语句创建表。此语句的完整语法是相当复杂的,因为存在那么多的可选教具子句,但在实际中此语句的应用相当简单。如我们在第1章中使用的所有 CREATE TABLE与时语句都不那么复杂。间分配有意思的是,大多数复杂东西都是一些子句,这些子句MySQLft分析后扔掉。参阅附录1可以看到这些复杂的东西。1、CREATE TABLED句的基本语法CREATE TABLE tbl_name(create_definition,)TYPE =table_typecreate_definition: col_name type N
13、OT NULL | NULLDEFAULT default_valueAUTO_INCREMENTPRIMARY KEY用ALTER TABLE语句修改表的结构有时你可能需要改变一下现有表的结构,那么 Alter Table语句将是你的合适选择。增加列alter table tbl_name add col_name type例如,给表增加一列 weightmysql>alter table pet add weight int;删除列alter table tbl_name drop col_name例如,删除列weight :mysql>alter table pet drop
14、 weight;改变列alter table tbl_name modify col_name type例如,改变 weight的类型:mysql> alter table pet modify weight samllint;另一种方法是:alter table tbl_name change old_col_name col_name type例如:mysql> alter table pet change weight weight samllint;给列更名mysql>alter table pet change weight wei;给表更名alter table
15、tbl_name rename new_tbl例如,把pet 表更名为animalmysql>alter table pet rename animal;改变表的类型另外,可以为列增加或删除索引等属性。用DROP TABLE语句删除数据表DROP TABLE IF EXISTS tbl_name , tbl_name,.DROP TABL删除一个或多个数据库表。所有表中的数据和表定义均被删除,故小心使用这个命令!在MySQL3.22或以后版本,你可以使用关键词IF EXISTS类避免不存在表的一个错误发生。例如:mysql>USE mytest;mysql>DROP TABL
16、E guestbook;或者,也可以同时指定数据库和表:mysql>DROP TABLE mytest. guestbook;本节讲述了有关表的大部分操作,现在将所述内容总结如下:MySQL勺表的三种类型小结如何创建表、删除表复习如何改变表的结构、名字思考题 复习题目:参考 1. 数据表操作方法?书教材:mysql 实用教程 mysql 入门很简单清华大学出版社Mysql数据库应用课程名称Mysql索引授课教师授课班级授课时数2授课方式理论 课授课重点、 难点Mysql索引授课内容、 教具与时 间分配索引是快速搜索的关键。MySQ嗦引的建立对于 MySQL勺高效运行是很重要的。下面介绍几
17、种常见的 MySQLt引类型。MySQ嗦引类型包括:(1)普通索引这是最基本的索引,它没有任何限制。它有以下几种创建方式:创建索引1. CREATE INDEX indexName ON mytable(username(length);如果是CHAR VARCHAR1型,length可以小于字段实际长度;如果是BLO*口 TEXT类型,必须指定length ,卜同。修改表结构1. ALTER mytable ADD INDEX indexName ON (username(length)创建表的时候直接指定1. CREATE TABLE mytable(2.3. ID INT NOT NUL
18、L, 4.5. usernameVARCHAR16) NOT NULL,6.7. INDEX indexName (username(length)8.9. );删除索引的语法:1. DROP INDEX indexNameON mytable;(2)唯一索引它与前面的普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值。如果 是组合索引,则列值的组合必须唯一。它有以下几种创建方式:创建索引1. CREATE UNIQUE INDEX indexName ON mytable(username(length)修改表结构1. ALTER mytable ADD UNIQUE indexNa
19、me ON (username(length)创建表的时候直接指定1. CREATE TABLE mytable(2.3. ID INT NOT NULL,4.5. usernameVARCHAR16) NOT NULL,6.7. UNIQUE indexName (username(length)8.9. );(3)主键索引它是一种特殊的唯一索引,不允许有空值。一般是在建表的时候同时创建主键索引:1. CREATE TABLE mytable(2.3. ID INT NOT NULL,4.5. usernameVARCHAR16) NOT NULL,6.7. PRIMARY KEY(ID)8
20、.9. );当然也可以用 ALTER命令。记住:一个表只能有一个主键。(4)组合索引为了形象地对比单列索引和组合索引,为表添加多个字段:1. CREATE TABLE mytable(2.3. ID INT NOT NULL,4.5. usernameVARCHAR16) NOT NULL,6.7. cityVARCHAR50) NOT NULL,8.9. age INT NOT NULL10.11. );为了进一步榨取 MySQL的效率,就要考虑建立组合索引。就是将 name, city, age 建 到一个索引里:1. ALTER TABLE mytable ADD INDEX name_
21、city_age (name(10),city,age);建表时,usernname长度为16 ,这里用10。这是因为一般情况下名字的长度不会超过10,这样会加速索引查询速度,还会减少索引文件的大小,提高 INSERT的更新速度。如果分别在usernname , city , age上建立单列索引,让该表有3个单列索引,查询时和上述的组合索引效率也会大不一样,远远低于我们的组合索引。虽然此时有了三个 索引,但MySQLR能用到其中的那个它认为似乎是最有效率的单列索引。建立这样的组合索引,其实是相当于分别建立了下面三组组合索引:1. usernname,city,age2.3. usernnam
22、e,city4.5. usernname为什么没有city , age这样的组合索引呢?这是因为MySQLfi合索引“最左前缀”的结果。简单的理解就是只从最左面的开始组合。并不是只要包含这三列的查询都会用 到该组合索引,下面的几个SQL就会用到这个组合索引:1. SELECT * FROM mytable WHREE username="admin" AND city=" 郑州"2.3. SELECT * FROM mytable WHREE username="admin”而下面几个则不会用到:1. SELECT * FROM mytable
23、 WHREE age=20 AND city="关B 州"2.3. SELECT * FROM mytable WHREE city="关B 州"(5)建立索引的时机到这里我们已经学会了建立索引,那么我们需要在什么情况下建立索引呢? 一般来说,在WHERE! JOIN中出现的列需要建立索引,但也不完全如此,因为MySQLR对<,<二,二,>,>=,BETWEENIN,以及某些时候的 LIKE才会使用索引。例如:1. SELECT t. Name2.3. FROM mytable t LEFT JOIN mytable m4.5.
24、ON t. Name=m.username WHEREm.age=20 AND m.city='关B 州'此时就需要对city和age建立索引,由于 mytable表的userame也出现在了 JOIN子 句中,也有对它建立索引的必要。刚才提到只有某些时候的LIKE才需建立索引。因为在以通配符喷口开头作查询时,MySQ4会使用索引。例如下句会使用索引:1. SELECT * FROM mytable WHEREusername like'admin%'而下句就不会使用:1. SELECT * FROM mytable WHEREt Name like'%
25、admin'因此,在使用LIKE时应注意以上的区别。(6)索引的不足之处上面都在说使用索引的好处,但过多的使用索引将会造成滥用。因此索引也会有它的缺点:虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行INSERTUPDATED DELETE因为更新表时, MySQ4仅要保存数据,还要保存一下索引文件。建立索引会占用磁盘空间的索引文件。一般情况这个问题不太严重,但如果你在一 个大表上创建了多种组合索引,索引文件的会膨胀很快。索引只是提高效率的一个因素,如果你的MySQLl大数据量的表,就需要花时间研究建立最优秀的索引,或优化查询语句。(7)使用索引的注意事项使用索引时,有
26、以下一些技巧和注意事项:索引不会包含有 NULL值的列只要列中包含有 NULL值都将不会被包含在索引中,复合索引中只要有一列含有NULL值,那么这一列对于此复合索引就是无效的。所以我们在数据库设计时不要让字段的默认值为NULL使用短索引对串列进行索引,如果可能应该指定一个前缀长度。例如,如果有一个CHAR(255)的歹U,如果在前10个或20个字符内,多数值是惟一的,那么就不要对整个列进行索引。短 索引不仅可以提高查询速度而且可以节省磁盘空间和I/O操作。索引列排序MySQLH旬只使用一个索引,因此如果where子句中已经使用了索引的话,那么 orderby中的列是不会使用索引的。因此数据库默
27、认排序可以符合要求的情况下不要使用排 序操作;尽量不要包含多个列的排序,如果需要最好给这些列创建复合索引。 like语句操作一般情况下不鼓励使用like操作,如果非使用不可,如彳5使用也是一个问题。like“%aaa% 不会使用索引而like“aaa%”可以使用索引。不要在列上进行运算1.select*fromuserswhere YEAR(adddate)<2007;将在每个行上进行运算,这将导致索引失效而进行全表扫描,因此我们可以改成1.select*fromuserswhere adddate< '2007 -01-01';不使用NOT IN和。操作以上,就对
28、其中 MySQLlt引类型进行了介绍。小结复习思考题经臼力教材:mysql实用教程« mysql入门很简单清华大学出版社Mysql数据库应用视图授课教师课程 名称授课班级授课时数4授课方式理论课授课创建视图、修改视图和删除视图重点、难点授课内容、 教具 与时 间分 配1 . 视图概述视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定 义视图的查询所引用的表,并且在引用视图时动态生成。2 .创建视图CREATE VIEW1.语法CREATE OR REPLACE ALGORITHM
29、 = UNDEFINED | MERGE | TEMPTABLEVIEW db_name view_name( column_list )AS select_statementWITH CASCADED | LOCAL CHECK OPTION通过该语句可以创建视图,若给定了 OR REPLACE,则表示当已具有同名的视图时, 将覆盖原视图。select_statement是一个查询语句,这个查询语句可从表或其它的视图中 查询。视图属于数据库,因此需要指定数据库的名称,若未指定时,表示在当前的数据库 创建新视图。表和数据库共享数据库中相同的名称空间,因此,数据库不能包含相同名称的表和视 图,并
30、且,视图的列名也不能重复。3.注意事项创建视图存在如下注意事项:(1) 运行创建视图的语句需要用户具有创建视图(CRATE VIEW)的权限,若加了OR REPLACE时,还需要用户具有删除视图( DROP VIEW )的权限;(2) SELECT语句不能包含 FROM 子句中的子查询;(3) SELECT语句不能引用系统或用户变量;(4) SELECT语句不能引用预处理语句参数;(5) 在存储子程序内,定义不能引用子程序参数或局部变量;(6) 在定义中引用的表或视图必须存在。但是,创建了视图后,能够舍弃定义引用 的表或视图。要想检查视图定义是否存在这类问题,可使用 CHECK TABLE 语
31、句;(7) 在定义中不能引用 TEMPORARY表,不能创建TEMPORARY视图;(8) 在视图定义中命名的表必须已存在;(9) 不能将触发程序与视图关联在一起;(10) 在视图定义中允许使用ORDER BY,但是,如果从特定视图进行了选择,而该视图使用了具有自己ORDER BY的语句,它将被忽略。三. 修改视图 ALTER VIEW1.语法ALTER ALGORITHM = UNDEFINED | MERGE | TEMPTABLEVIEW view_name( column_list )AS select_statementWITH CASCADED | LOCAL CHECK OPTI
32、ON该语句用于更改已有视图的定义。其语法与CREATE VIEW 类似。四.删除视图DROP VIEW1.语法DROP VIEW IF EXISTS view_name, view_name .RESTRICT | CASCADE该语句用户删除视图,可一次删除多个视图。IF EXISTS选项确保语句正确运行。若没有该子句,当指定的视图不存在时,将发生错误。本文讲述MySql5.x中视图的使用,包括创建视图、修改视图和删除视图的相关知识,包 小结括命令的语法、使用举例以及注意事项。复习复习题目:思考题 1.视图与表的区别和联系?参考 教材:mysql实用教程 书« mysql入门很简单
33、清华大学出版社Mysql数据库应用课程 名称触发器使用授课教师授课 班级授课时数2授课方式理论课授课 重点、 难点创建触发器触发器的删除授课 内容、 教具 与时 间分 配为什么要用触发器我们在MySQL 5.0中包含对触发器的支持是由于以下原因:MySQL>期版本的用户长期有需要触发器的要求。我们曾经许诺支持所有 ANSI标准的特性。您可以使用它来检查或预防坏的数据进入数据库。您可以改变或者取消INSERT,UPDATED及DELETED句。 您可以在一个会话中监视数据改变的动作。 语法1.语法:命名规则 CREATE TRIGGER触发器名称 > <- BEFORE | A
34、FTER INSERT | UPDATE | DELETE ON < 表名称 > FOR EACH ROW触发器 SQL语句 >触发器必须有名字,最多64个字符,可能后面会附有分隔符.它和MySQL中其他对象的命名方式基本相象. trigger_name :标识触发器名称,用户自行指定; trigger_time :标识触发时机,用 before 和after 替换; trigger_event :标识触发事件,用 insert , update 和 delete 替换; tbl_name :标识建立触发器的表名,即在哪张表上建立触发器; trigger_stmt :触发器程
35、序体。触发器程序可以使用 begin和end作为开始和结束,中间包含多条语句。查看触发器查看触发器语法如下,如果知道触发器所在数据库,以及触发器名称等具体信息:SHOW?TRIGGERS?from?SF_User?like?"usermaps%”;?/*?查看SF_User库上名称和usermaps%®配的触发器?*/?如果不了解触发器的具体的信息,或者需要查看数据库上所有触发器,如下:SHOW TRIGGERS;/查看所有触发器用上述方式查看触发器可以看到数据库的所有触发器,不过如果一个库上的触发器太多, 由于会刷屏,可能没有办法查看所有触发器程序。删除触发器删除触发器语
36、法如下:DROP?TRIGGER?schema_name.trigger_name?小结复习思考 题今臼 书本节讲述了触发器的使用:复习题目:1.如何创建触发器?教材:mysql实用教程« mysql入门很简单清华大学出版社课程名称SQL查询语句授课教师Mysql数据库应用授课福的授课时数8授课方式理论课授课基本查询语句重点、使用集合函数查询难点 连接查询select_expression指出你想要检索的列。授课SELECT被用来检索从一个或多个表中精选的行。内存具时分教与间SELECT也可以用来检索不引用任何表的计算行1、select*from tablel;2、select fi
37、eld1,field2 from tablel;3、select count(*)from table2;4、select table1.filed1,table2.filed2 from table1,table2 where table1.field1='valed1'5、select *from table1 where field1='valed1' and fiels2='valed2' orded by field1;6、 select*from table1 where filed1='valed1' order b
38、yfiled1 desc linit n;7、select *from table2 where name like '%$lin%'(模糊)8、sub_selects倚级)select *from table1 where id In(select id from table2);9、select .into table.(高级)(可用 selectinto outfile;insertselkect替代)10、SELECT MAX(field1) AS field1 FROM table1 列的最大值其中:表: 字段:field集合函数查询对一个表中的记录进行数据统计。例如
39、,如果你想统计存储在表中的一次民意测验的投票 结果。或者你想知道一个访问者在你的站点上平均花费了多少时间。要对表中的任何类型 的数据进行统计,都需要使用集合函数。你可以统计记录数目,平均值,最小值,最大值, 或者求和。当你使用一个集合函数时,它只返回一个数,该数值代表这几个统计值之一。这些函数的最大特点就是经常和GROUP BY语句配合使用,需要注意的是集合函数不能和非分组的列混合使用。行列计数计算查询语句返回的记录行数 直接计算函数COUNT(*)的值计算字段的平均值需要计算这些值的平均值。使用函数AVG(),你可以返回一个字段中所有值的平均值。SELECT AVG(vote) FROM o
40、pinion计算字段值的和SELECT SUM(purchase_amount) FROM orders计算字段值的极值求字段的极值,涉及两个函数MAX()和MIN()。SELECT name,MIN(birth) FROM pet;mysql多表连接查询inner joinfull outer join,left join,right jion内部连接inner join两表都满足的组合full outer 全连 两表相同的组合在一起,A表有,B表没有的数据(显示为null ),同样B表有A表没有的显示为(null)A表left join B表左连,以A表为基础,A表的全部数据,B表有的组合
41、。没有的为nullA表right join B 表 右连,以B表为基础,B表的全部数据,A表的有的组合。没有的为 null一、外连接1 .概念:包括左向外联接、右向外联接或完整外部联接2 .左连接:left join 或 left outer join(1)左向外联接的结果集包括LEFT OUTER子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有 选择列表列均为空值(null)。(2)sql 语句select * from table1 left join table2 on table1.id=table2.id3 .右
42、连接:right join或 right outer join(1)右向外联接是左向外联接的反向联接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。(2)sql 语句select * from table1 right join table2 on table1.id=table2.id4 .完整外部联接:full join或 full outer join(1)完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。(2)sql 语句select * from tabl
43、e1 full join table2 on table1.id=table2.id二、内连接1 .概念:内联接是用比较运算符比较要联接列的值的联接2 .内连接:join 或 inner join3 .sql语句 select * from table1 join table2 on table1.id=table2.id三、交叉连接(完全)1 .概念:没有WHERE子句的交叉联接将产生联接所涉及的表的笛卡尔积。第一个表的行数乘以第二个表的行数等于笛卡尔积结果集的大小。(tablel和table2交叉连接产生3*3=9条记录)2 .交叉连接:cross join (不带条件 where.)3
44、.sql语句select * from tablel cross join table2小结本节讲述了部分查询操作:复习复习题目:思考1.练习表的查询?题教材:mysql实用教程爹方书 mysql入门很简单清华大学出版社课程 名称Mysql插入更新删除授课教师授课 班级授课时数4授课方式理论课授课 重点、 难点Mysql的插入更新删除方法授课 内容、 教具 与时 间分 配1插入、更新和删除记录1. 1插入记录Insert into table_name (field_name1, field_name2,)values (value1, value2,Insert into values (v
45、alue1, value2,);这种形式只能应用丁值的顺序与子段顺序匹配的情 况(可以通过调用 describe命令来决定字段顺序)。包含引用标志的值需要再引号前面加上反斜线转义字符注后into关键子是可选的也可以同时插入多个值,用逗号分开Mysql数据库应用);Eg: insert table_name values (valuel, value2,),(value3, value4,)还可以不使用insertvalue骼式,而使用类似 update语句,它使用set子句分别为每一列设下Insert into table_name set field_name1 = valuel, fiel
46、d_name2 = value2, ;使用default值Create table table_name (field_name1 type default def_value not null,);Insert table_name values (default,茂键defauft 4.0.3 以及更高版本才支持使用 AUTOINCREMENT 字段自动产生下一个序号,该字段必须被设置为主键使用UNIQUE字段使用IGNORE关键字或者 ON DUPLICATE KEY UPDATE子句跳过INSERT、中断操作或者占为新值。INSERT IGNORE INTO TABLE_NAME (U
47、NIQUE_FIELD, )VALUES (REPEAT, ); 如果重复记录,则不会报告错误,也不会更新记录,数据库中的数据保持不变。ON DUPLICATE KEY UPDATE 和REPLACE区别:前者只把已命名的字段更新为新值,后者 记录,然后用新值完全替换。Eg:在这种情况下,如果 MySQL发现表中已经包含具有相同唯一键的记录,则会自动更新旧的记 DUPLICATE KEY UPDATE 从句中指定的新值。当有很多insert语句需要被顺序执行时,IGNORE关键字就使操作变得很方便。这可以保证不 INSERT包含了重复值,MySQL都会跳过而不放弃全部操作。1. 2更新记录UP
48、DATE TABLE_NAME SET FIELD_NAME=VALUE, SET FIELD_ANOTHER=VALUE_ANTO WHERE- - 如果省略了 where子句,表中的每行都会收到 update的影响而改变精细操作:当执行 INSERT或者UPDATE操作时,可以通过使用LOW_PRIORITY 和DEL/字使MySQL客户执行等待,知道成功完成操作或者排队等候服务器进行处理。LOW_PRIORITY关键字阻止语句执行知道没有其他线程使用这个表,从而强制客户等待,知道 全被执行。在应用中可靠性是最终要的,添加这个关键字可以帮助提高SQL事务处理以及在业务逻辑的完整性。DELA
49、YED 关键字和LOW_PRIORITY 关键字相反,把要执行的语句放在一个对垒中(在 s 器内)就立即让客户退出。当处理繁忙的数据库服务时,这一点在提高应用程序的性能方面尤 意味它可以提高客户相应时间(但是比较冒险如果服务器崩溃,在服务器队列中的所有丢失)。 这两个关键字不适用与 InnoDB表。1. 3删除记录MySQL允许使用delete和truncate语句删除数据。DELETE语句可以允许从表中删除记录,支持 whereDELETE FROM TABLE_NAME WHERE CONDITIONAL;如果没有where子句,则删除表中所有数据。该操作不可逆转(除非使用的是InnoDB
50、表且二AUTOCOMMIT ? ? ? ?)使用truncate命令也可一删除表的所有记录TRUNCATE TABLE TABLE_NAME ;该命令比delete执行速度要快,因为 TRUNCATE删除了表,然后重建它。delete清空的表注意:delete删除的是记录,并没有尝试去修改表。这也是为什么当向一个使用录时,MySQL会小结本节讲述了有关表插入更新和删除:思考题爹方书复习 复习题目:1.表的更新插入删除方法?教材:mysql实用教程mysql入门很简单清华大学出版社Mysql数据库应用课程名 称Mysql运算符授课教师授课班 级授课时数4授课方式理论课授课重 点、难点算术运算符、
51、比较运算符、逻辑运算符、位运算符、表达式授课内 容、教具 与时间 分配运算符优先级顺序最高优先级:=1 |, or, xor2 &&, and3 between, case, when, then, else4 =, <=>, >=, >, <=, <, <>, !=, is, like, regexp, in5 |6 &7 <<, >>8 -, +9 *, /, div, %, mod10 A11 - (unary minus), (unary bit inversion)12 !, not最低优
52、先级 binary, collate算数运算符mysql > select 1+2;减mysql> select 2-1;乘mysql> select 2*3;除mysql> select 5/3;商mysql> select 5 div 2;模mysql> select 5%2,mod(5,2);逻辑运算符非mysql> select not 0, not 1, not null;mysql> select ! 0, ! 1, ! null;与mysql> select (1 and 1), (0 and 1), (3 and 1), (
53、1 and null);mysql> select (1 && 1), (0 && 1), (3 && 1), (1 && null);或mysql> select(1or 0), (0 or 0), (1or null), (1 or 1), (null or null);mysql> select(1| 0), (0 | 0), (1 |null), (1 | 1), (null | null);mysql> select(1xor 1), (0 xor 0),(1 xor 0), (0 xor 1),
54、 (null xor1);mysql> select(1A 1), (0 A 0), (1 A0), (0 A 1), (null A 1);比较运算符mysql> select 1=0,1=1,null=null;不等于mysql> select 1<>0,1<>1,null<>null;mysql> select 1<=>1,2<=>0,0<=>0,null<=>null;小于mysql> select 'a'<'b','a'
55、;<'a','a'<'c',1<2;mysql> select 'bdf<='b','b'<='b',0<1;mysql> select 'a'>'b','abc'>'a',1>0;mysql> select 'a'>='b','abc'>='a',1>=0,1>=1;betweenmysql> select 10 between 10 and 20, 9 between 10 and 20;inmysql> select 1 in (1,2,3), 't' in ('t','a','b',T,'e'), 0 in (1,2);is nullmysql> select 0 is null,null is nul
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中医药学概论试题及答案
- 随州市重点中学2024-2025学年数学高二第二学期期末达标检测模拟试题含解析
- 企业财务数据安全保密及员工行为规范合同
- 全球化市场拓展与外贸企业知识产权保护合同
- 车辆赠与合同范本及赠与条件约定
- 采石场土地及矿产资源开采权移交合同
- 餐饮业人力资源招聘与配置顾问合同
- 精细化管理餐饮业厨师岗位劳动合同
- 团工委工作计划-团委团支部工作计划
- 学生批量请假管理制度
- GB/T 30819-2024机器人用谐波齿轮减速器
- 浙江省温州市2022年初中科学中考试题及参考答案
- 超星学习通线上考试操作指南(教师篇)
- 招聘求职简历制作表格模板可编辑下载 精品简历模板 标准表格单页04
- 食品经营操作流程图
- 排桩+锚索深基坑安全专项施工方案
- 庞中华行书字帖(共36页)
- 毒理学基本概念ppt课件
- 圆形截面偏心受压(受弯)构件均匀配筋计算
- 大型桥梁高程控制网的布设和精度分析
- 普拉提运动对大学生圆肩驼背体态矫正的研究
评论
0/150
提交评论