MySQL数据库.ppt_第1页
MySQL数据库.ppt_第2页
MySQL数据库.ppt_第3页
MySQL数据库.ppt_第4页
MySQL数据库.ppt_第5页
已阅读5页,还剩76页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第三章MySQL数据库 一 MySQL控制台操作 MySQL控制台 1 MySQL控制台基础 1 MySQL的提示符 mysql 2 一条语句必须以 结束 可分多行 3 可用键盘上的上 下键调出以前执行的语句 4 可在记事本等编辑器中复制代码 再在控制台mysql 后右键单击 选择粘贴 可一次拷贝粘贴多条MySQL语句 5 查看MySQL服务器的信息 mysql status 或mysql s 查看MySQL服务器的信息 6 放弃正在输入的命令mysql c 7 退出MySQLmysql q 2 基本语句2 1数据库操作 1 mysql showdatabases 显示mysql服务器中所有数据库的名称 2 mysql createdatabasedbname 创建数据库如 mysql createdatabasedemocharset gbk 其中 charset gbk可选 但为正确处理中文 最好在该语句中定义字符集 3 mysql dropdatabasedbname 删除数据库 4 mysql usedbname 选择当前要操作的数据库 5 mysql showtables 显示当前数据库中创建的所有表 2 2数据表操作 1 mysql createtable语句创建数据库表 语法 createtabletable name col nametypecol definition col nametypecol definition col nametypecol definition table options 注意 最后一列定义不能加 号 mysql createtablestudent 学号char 6 notnullprimarykey 姓名char 4 notnull 性别tinyintnotnull 生日datenotnull 籍贯varchar 20 notnull mysql insertintostudentvalues 20121203 刘明刚 1 1998 12 1 广东省河源市 2 mysql describetable name查看数据表的结构 3 mysql droptabletable name删除数据表 3 MySQL数据类型MySQL中的数据类型主要分为三大类 数字 tinyint int decimal等字符串 char varchar等日期时间 date time等 3 1 整数 注意 1 无符号的整数为非负整数 在数据类型后加unsigned关键字表示 如 tinyintunsigned2 MySQL中也有bool型 但存储时还是转换成tinyint型 故而对bool型的数据 最好定义为tinyint型3 自增型的整数字段 只适用于整数 在数据类型后加auto increment关键字表示 如 smallintunsignedauto increment 关于auto increment型整数字段 须注意 mysql中每个表只能设置一个自增字段该列必须是NOTNULL该列必须定义唯一索引 如主键primarykey或唯一键uniquekey 以避免重复该列的最大值受其数据类型约束 如tinyint型的最大值为127 加上unsigned 则为255 一旦达到上限 auto increment就会失效 该字段的初值在createtable语句中的 table options 中给出 增长步长默认为1 createtablebook 编号smallintunsignednotnullauto incrementprimarykey 书名varchar 20 notnull 作者varchar 12 notnull 出版社varchar 20 notnull 出版时间datenotnull 版次tinyintnotnullcheck 版次between1and5 价格decimal 6 2 unsignednotnull ISBNchar 13 notnullcomment 书籍的ISBN号 auto increment 1 当插入记录时 不必为该字段赋值 MySQL自动为该自增字段赋值 也可将该字段赋值为null MySQL同样会自动为该自增字段赋值 因为没有为自增字段赋值 故而要在表名后列出字段名列表mysql insertintobook 书名 作者 出版社 出版时间 版次 价格 ISBN values php和mysqlweb开发 澳 威利 澳 汤姆森著 武欣等译 机械工业出版社 2009 4 1 2 95 9787111262817 为自增字段赋值为nullmysql insertintobookvalues null php和mysql从入门到精通 明日科技编著 清华大学出版社 2008 9 1 3 69 80 9787302288534 3 2 小数 decimal m d 小数也可通过unsigned设置为非负数decimal m d 表示数值中共有m位数 其中整数m d位 小数d位 如 decimal 5 2 数值中共有5位数 其中整数占3位 小数占2位 取值范围为 999 99到999 99decimal 3 2 unsigned 数值中共有3位数 其中整数占1位 小数占2位 其取值范围为0 00到9 99 createtablet1 idchar 4 notnullprimarykey pricedecimal 4 1 unsignednotnull discountdecimal 3 2 unsignednotnull insertintot1values 2001 78 5 0 8 2002 64 0 75 2003 9 5 1 2 2004 100 0 88 2006 999 9 0 68 select fromt1 3 3 字符串 char n 和varchar n MySQL中表示字符串值的类型主要有char n 和varchar n MySQL5 1以后 char n 和varchar n 中的n定义的是字符的个数 而不是字节char n n 255varchar n n 65535 createtablestudent 学号char 6 notnullprimarykey 姓名char 4 notnull 简历char 255 null 此处换成charset utf8看其长度有什么区别insertintostudentvalues 201301 陈明新 null 201302 李英 null 201303 赵李伟正 null 201304 呼延赵兴胜 主修课程有电路基础数字电路计算机导论计算机组织与结构主修课程有电路基础数字电路计算机导论计算机组织与结构主修课程有电路基础数字电路计算机导论计算机组织与结构主修课程有电路基础数字电路计算机导论计算机组织与结构主修课程有电路基础数字电路计算机导论计算机组织与结构主修课程有电路基础数字电路计算机导论计算机组织与结构主修课程有电路基础数字电路计算机导论计算机组织与结构主修课程有电路基础数字电路计算机导论计算机组织与结构主修课程有电路基础数字电路计算机导论计算机组织与结构主修课程有电路基础数字电路计算机导论计算机组织与结构主修课程有电路基础数字电路计算机导论计算机组织与结构主修课程有电路基础数字电路计算机导论计算机组织与结构主修课程有电路基础数字电路计算机导论计算机组织与结构计算机组织与结构主修课程有电路基础数字电路计算机导论计算机组织与结构主修课程有电路基础数字电路计算机导论计算机组织与结构主修课程有电路基础数字电路计算机导论计算机组织与结构主修课程有电路基础数字电路计算机导论计算机组织与结构 selectlength 学号 as学号长度 length 姓名 as姓名长度 length 简历 as简历长度fromstudent 3 4 日期时间 date和time 表示时间值的日期和时间类型为year date time datetime timestamp 最常用的为date和datetime 4 列的定义 col definition notnull null defaultdefault value auto increment uniquekey primarykey comment string 注意 1 null为默认 2 如果是多个字段联合作主键 应使用表级完整性约束 即在字段定义完后 添加一条如下语句 primarykey field1 field2 3 comment string 为该字段的注释 补充 MySQL中的外键 foreignkey 外键字段 references主表名 引用字段 ondelete restrict cascade setnull noaction setdefault onupdate resrict cascade setnull noaction setdefault RESTRICT 限制外表中的外键改动 默认值 CASCADE 跟随外键改动 SETNULL 设空值 SETDEFAULT 设默认值 NOACTION 无动作 要注意的是 MySQL中的外键只能作为表级完整性约束 而不能作为列级完整性约束 也就是说 foreignkey不能跟在外键列的后面 而必须是单独的一行另外 MySQL也不支持check约束 但可以使用check约束 而没有任何效果 createtableclass 班级编号char 4 notnullprimarykey 班级名称char 8 notnull createtablestudent 学号char 6 notnullprimarykey 姓名char 4 notnull 性别tinyintnotnull 班级编号char 4 foreignkey 班级编号 referencesclass 班级编号 ondeletecascadeonupdatecascade insertintoclassvalues 1001 电商1班 1002 电商2班 1003 电商3班 1004 电商4班 insertintostudentvalues 201301 张三一 1 1001 201302 张三二 1 1002 201303 张三三 1 1001 201304 张三四 1 1003 201305 张三五 1 1001 201306 张三六 1 1002 201307 张三七 1 1004 201308 张三八 1 1001 select fromclass select fromstudent updateclassset班级编号 1008 where班级编号 1001 select fromclass select fromstudent deletefromclasswhere班级编号 1008 select fromclass select fromstudent 5 table options 该部分是可选的 主要定义MySQL数据库引擎类型 自增型字段的初值和表的编码字符集 createtablebook 编号smallintunsignednotnullauto incrementprimarykey 书名varchar 20 notnull 作者varchar 12 notnull 出版社varchar 20 notnull 出版时间datenotnull 版次tinyintnotnullcheck 版次between1and5 价格decimal 6 2 unsignednotnull ISBNchar 13 notnullcomment 书籍的ISBN号 engine innodbauto increment 1charset gbk 6 MySQL数据库存储结构MySQL数据库中表的存储由使用的数据库存储引擎决定 MySQL5 0后的版本默认的存储引擎为INNODB 该引擎支持事务 外键 只要求了解INNODB下的数据库结构 以下的介绍只针对INNODB存储引擎 1 创建数据库时 MySQL自动在其安装目录下的data目录中创建一个与数据库同名的子目录 同时该目录中自动生成一个db opt文件 db opt文件是一文本文件 可用记事本打开 存储的是创建数据库时的字符集和字符集校验规则 如果以后在该数据库中创建表时没有指定字符集和校验规则 则自动应用该db opt文件中定义的规则 观察以下语句执行前后目录C wamp bin mysql mysql5 5 20 data中内容的变化 createdatabasedemocharset gbk 2 在创建表时 MySQL在 1 所创建目录中为每一个表创建一个 frm文件 该文件用于存储表的结构 观察以下语句执行前后目录C wamp bin mysql mysql5 5 20 data demo中内容的变化 createtableclass 班级编号char 4 notnullprimarykey 班级名称char 8 notnull 3 表的记录和索引默认存储在mysql安装目录下的data目录中 名为ibdata1的文件内 该文件很大 可以配置多个 如ibdata1 ibdata2等 观察以下语句执行前后C wamp bin mysql mysql5 5 20 data ibdata1文件的变化 insertintoclassvalues 1001 电商1班 1002 电商2班 1003 电商3班 1004 电商4班 此外 在data目录中我们还可以看到 存在很多名为 mysql bin 000 xxx类的文件 该类文件是MySQL的日志文件 我们最好不要动它 7 MySQL的SQL语句 1 插入记录 insertinto与标准SQL中的insertinto语句不同 MySQL的insertinto语句可一次插入多行记录 各行记录置于 中 用 分隔 放在values关键字后面 如 insertintoclassvalues 1001 电商1班 1002 电商2班 1003 电商3班 1004 电商4班 2 删除记录 deletefromtable namewhere 3 修改记录 updatetable nameset where 4 查询 select语句与标准SQL一个重要的不同是 MySQL中的select语句引入了一个limit子句 limit子句的作用是限定返回记录的范围 通常配合orderby使用 其格式为 limit offset row count注意 1 offset和row count均为整型常量 2 offset为返回的第一条记录在结果集中的编号 结果集中记录的编号是从0 而不是1开始 如果省略该值 则从第一条记录开始显示 3 row count为返回的行数 例 select from学生where学号like 2013 and性别 1orderby学号limit10 8limit子句与orderby子句配合 常用于多行结果集的分页显示 createdatabasedemocharset utf8 usedemo createtablebook 编号smallintunsignednotnullauto incrementprimarykey 书名varchar 20 notnull 作者varchar 12 notnull 出版社varchar 20 notnull 出版时间datenotnull 价格decimal 6 2 unsignednotnull insertintobookvalues null php从入门到精通 明日科技 清华出版社 2008 9 1 69 80 null php程序设计 刘明 清华出版社 2009 12 1 32 null php和mysql学习 李南方 清华出版社 2012 9 1 45 80 null mysql精通 张刚 清华出版社 2013 4 1 25 40 null Apache详解 赵林 电子科技出版社 214 3 5 54 60 insertintobookvalues null html简明教程 李立 电子工业出版社 2013 9 1 24 null Javascripy程序设计 刘立清 清华出版社 2014 5 2 36 null css学习 李南 机械工业出版社 2013 9 2 35 60 null web前端设计 张为 北京大学出版社 2014 6 9 45 40 null web插件开发 周林 电子科技出版社 214 3 5 24 50 select frombook updatebookset出版社 清华大学出版社 where出版社 清华出版社 select frombook select frombookorderby编号limit0 4 select frombookorderby编号limit4 4 select frombookorderby编号limit4 8 MySQL的注释单行注释 1 以 开头 一直到行尾 2 以 开头 一直到行尾 注意 是两个破折号加一空格多行注释以 开头 以 结尾 中间的多行均为注释 mysql createtablestudent 学号为主键学号char 6 notnullprimarykey 注意MySQL中char n 中的n为字符的个数姓名char 4 notnull 性别tinyintnotnull MySQL中的日期时间类型有data time和datatime等类型 生日datenotnull 籍贯varchar 20 notnull 二 phpMyAdmin简介 phpMyAdmin是一个以PHP为基础 以B S方式架构在网站主机上的MySQL的数据库管理工具 让管理者可用web接口管理MySQL数据库 1 创建数据库 createdatabase 2 创建数据库表 createtable 注 1 要添加若干字段 在添加框内输入数字 点击 执行 2 创建完毕 点 保存 3 修改表的结构 altertable 4 在表中插入记录 insertinto语句 5 在数据库中执行SQL语句 6 数据库导出 7 数据库导入 先将demo数据库删除 三 深入表单 1 表单提交情况 1 action属性值为空字符串的表单提交到页面自身 如 2 GET和 POST中的值全是字符串 3 控件的值要提交到服务器 则该控件必须定义name属性 没有name属性的控件是不会被提交到服务器的 因为关联数组 GET和 POST中的key是由控件的name属性值生成的 表单中有些控件的值通常不需要提交 如submit reset等按钮等 故而这类按钮通常不定义name属性 4 没填的文本框 密码框 多行文本框和文件上传框 在 GET 或 POST 中该控件对应的元素存在 其值为 亦即长度为0的空字符串 5 没选的单选按钮和复选按钮 在 GET 或 POST 中该控件对应的元素不存在 6 没选的单选下拉列表 浏览器会自动选中第一个 其值就是该的值 可多选的下拉列表 如果不选 则在 GET 或 POST 中该控件对应的元素不存在 注 可多选的下拉列表与复选框的作用相同 命名时后面也要加上 它的值也是以数组的形式发送 在php中它的处理方式与复选框相同 html表单用户 密码 性别 男女爱好 围棋书法诗词山水所在城市 请选择城市南京杭州上海广州深圳北京选出你认为最喜欢电脑的品牌三个联想宏碁戴尔神舟惠普华硕索尼苹果个人简历 form php 表单中上所有的控件均不填 不选 点击提交按钮 观察 POST的内容 2 读取 GET和 POST中的内容因为 GET和 POST都是关联数组 所以要读取它某个元素的值 首先一定要确保该元素一定存在 否则就会越界 由于没选的单选按钮和复选按钮在 GET和 POST中不存在对应的元素 所以这时候就不能通过 GET key 或 POST key 来读取它的值 否则就会导致数组越界 html表单用户 密码 性别 男女爱好 围棋书法诗词山水所在城市 请选择城市南京杭州上海广州深圳北京选出你认为最喜欢电脑的品牌三个联想宏碁戴尔神舟惠普华硕索尼苹果个人简历 你的帐号为 user echo 你的密码为 pwd echo 你的性别为 male echo 你的爱好为 hobbyStr echo 你所在的城市为 city echo 你最喜欢的电脑为 computers echo 你的个人简历为 resume echo 你使用的浏览器为 browser form php 表单中上所有的控件均不填 不选 点击提交按钮 观察直接读取 POST内容的结果 所以 表单中如果存在有可能没选的单选按钮或复选按钮 要在 GET或 POST中通过按钮名称来读取它的值 首先就必须对这种按钮进行判断 以确定该元素是否存在 判断的方法主要有 isset POST key array key exists key POST 注意 如果key不存在 则调用 POST key 就会导致数组访问越界 但在isset empty 和isnull 等函数中却可以使用 因为这些函数的主要作用就是判断变量是否存在 html表单用户 密码 性别 男女爱好 围棋书法诗词山水所在城市 请选择城市南京杭州上海广州深圳北京个人简历 你的帐号为 user echo 你的密码为 pwd echo 你的性别为 male echo 你的爱好为 hobbyStr echo 你所在的城市为 city echo 你喜欢的电脑为 computersStr echo 你的个人简历为 resume echo 你使用的浏览器为 browser form php 表单中上所有的控件均不填 不选 点击提交按钮 观察在对单选按钮 复选按钮和多选下拉列表进行判断后 再读取其在 POST中值的结果 3 如果需要根据表单提交的数据进行数据库操作 则与库表操作相关的控件 它的命名 name属性值 最好与数据库表相应的字段同名 或者能根据控件名自动推算出对应的字段名 这样便于自动生成SQL语句 4 表单中控件在客户端的行为要用Javascript语句定义 典型的如数据验证 提示等 form php 本文件演示Javascript的在客户端的作用 无标题文档h1 text align center form line height 1 6 label font size 16pt font family 黑体 functionenableText textBoxID varobj document getElementById textBoxID obj disabled false functionforbitText radioButton textBoxID varradios document getElementsByName radioButton name radios radios length 1 value varobj document getElementById textBoxID obj value obj disabled true functionsetRadioValue obj radioName varradioObj document getElementsByName radioName radioObj radioObj length 1 value obj value functionvalidate varuserTxt document getElementById userID if userTxt value alert 你没有输入姓名 userTxt focus returnfalse varmales document getElementsByName male varmaleSelected false for i 0 i问卷调查1 你的姓名 2 你的性别 男女3 关于面包和自由 你认为哪一个更重要 自由面包4 你的上网方式 家里 办公室 网吧 其它5 你最喜欢玩的网络游戏 斗地主 围棋 象棋 其它6 你常去哪个平台玩网游 QQ游戏中心联众游戏中心弈城网新浪在线其它7 你上课时为什么不愿意听没意思没兴趣课程内容假大空 老师自己都不信有兴趣但课程太难其它 注意 input文本框内容改变 可以使用onchange或者onblur来进行判断 onchange是在文本内容改变 并失去焦点的时候发生 而onblur是在失去焦点时候发生 而不管文本框的内容是否改变表单中的控件是根据name来提交的 如果某控件不命名 不定义name属性 则该控件的值就不会提交 Javascript是web前端一项非常重要的技术 用它可以在页面上设计出许多动态效果 包括下拉菜单 切换标签和交换图像等现在广为使用的AJAX技术就是以Javascript为基础的 Javascript控制图像h1 h2 text align center functionchangeImg obj imgName obj src imgName functionzoom obj scale obj width obj width scale obj height obj height scale Javascript简单应用交换图像缩放图像 Javascript交换和缩放图像 Javascript焦点图片轮播 d1 width 443px height auto overflow hidden border 6666662pxsolid background color 000000 position relative loading width 443px border 6666662pxsolid background color 000000 color FFCC00 font size 12px height 179px text align center padding top 30px font weight bold d2 width 100 height 209px overflow hidden num list position absolute width 100 left 0px bottom 1px backgro

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论