




已阅读5页,还剩34页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
SQL入门 上海浦东软件园 职业技能培训 1 MySQL简介 数据库简介SQLServer Oracle MySQL DB2 SyBaseMySQL数据库的安装和配置使用命令行窗口连接MYSQL数据库mysql u用户名 p密码 2 数据库服务器 数据库和表的关系 MySQL DB DB 表 表 表 Client 所谓安装数据库服务器 只是在机器上装了一个数据库管理程序 这个管理程序可以管理多个数据库 一般开发人员会针对每一个应用创建一个数据库 为保存应用中实体的数据 一般会在数据库创建多个表 以保存程序中实体的数据 数据库服务器 数据库和表的关系如图所示 3 数据在数据库中的存储方式 id 1name lisi age 23 User对象 User表 id 2name wang age 24 行 row 列 column 表的一行称之为一条记录表中一条记录对应一个java对象的数据 User对象 4 创建数据库 CREATEDATABASE IFNOTEXISTS db name create specification create specification create specification DEFAULT CHARACTERSETcharset name DEFAULT COLLATEcollation name CHARACTERSET 指定数据库采用的字符集COLLATE 指定数据库字符集的比较方式 规则 比如排序时练习 创建一个名称为mydb1的数据库 创建一个使用utf 8字符集的mydb2数据库 创建一个使用utf 8字符集 并带校对规则的mydb3数据库 5 查看 删除数据库 显示数据库语句 SHOWDATABASES显示数据库创建语句 SHOWCREATEDATABASEdb name数据库删除语句 DROPDATABASE IFEXISTS db name 练习 查看当前数据库服务器中的所有数据库查看前面创建的mydb2数据库的定义信息删除前面创建的mydb1数据库 6 修改 备份 恢复数据库 ALTERDATABASE IFNOTEXISTS db name alter specification alter specification alter specification DEFAULT CHARACTERSETcharset name DEFAULT COLLATEcollation name 备份数据库表中的数据mysqldump u用户名 p数据库名 文件名 sql恢复数据库Source文件名 sql 练习查看服务器中的数据库 并把其中某一个库的字符集修改为utf8 备份test库中的数据 并恢复 7 创建表 基本语句 CREATETABLEtable name field1datatype field2datatype field3datatype characterset字符集collate校对规则field 指定列名datatype 指定列类型 注意 创建表时 要根据需保存的数据创建相应的列 并根据数据的类型定义相应的列类型 例 user对象idintnamestringpasswordstringbirthdaydate 注意 创建表前 要先使用usedb语句使用库 8 MySQL常用数据类型 VARCHAR BLOB和TEXT类是变长类型 每个类型的存储需求取决于列值的实际长度 9 创建表练习 创建一个员工表 10 修改表 使用ALTERTABLE语句追加 修改 或删除列的语法 ALTERTABLEtableADD columndatatype DEFAULTexpr columndatatype ALTERTABLEtableMODIFY columndatatype DEFAULTexpr columndatatype ALTERTABLEtableDROP column 修改表的名称 Renametable表名to新表名修改表的字符集 altertablestudentcharactersetutf8 11 修改表 练习在上面员工表的基本上增加一个image列 修改job列 使其长度为60 删除sex列 表名改为user 修改表的字符集为utf 8列名name修改为usernamealtertableuserchangecolumnnameusernamevarchar 20 12 数据库CRUD语句 Insert语句 增加数据 Update语句 更新数据 Delete语句 删除数据 Select语句 查找数据 13 Insert语句 INSERTINTOtable column column VALUES value value 使用INSERT语句向表中插入数据 插入的数据应与字段的数据类型相同 数据的大小应在列的规定范围内 例如 不能将一个长度为80的字符串加入到长度为40的列中 在values中列出的数据位置必须与被加入的列的排列位置相对应 字符和日期型数据应包含在单引号中 插入空值 不指定或insertintotablevalue null 14 Insert语句练习 练习 使用insert语句向表中插入三个员工的信息 15 Update语句 UPDATEtbl nameSETcol name1 expr1 col name2 expr2 WHEREwhere definition 使用update语句修改表中数据 UPDATE语法可以用新值更新原有表行中的各列 SET子句指示要修改哪些列和要给予哪些值 WHERE子句指定应更新哪些行 如没有WHERE子句 则更新所有的行 16 Update语句练习 练习 在上面创建的employee表中修改表中的纪录 要求将所有员工薪水修改为5000元 将姓名为 zs 的员工薪水修改为3000元 将wu的薪水在原有基础上增加1000元 17 Delete语句 deletefromtbl name WHEREwhere definition 使用delete语句删除表中数据 如果不使用where子句 将删除表中所有数据 Delete语句不能删除某一列的值 可使用update 使用delete语句仅删除记录 不删除表本身 如要删除表 使用droptable语句 同insert和update一样 从一个表中删除记录将引起其它表的参照完整性问题 在修改数据库数据时 头脑中应该始终不要忘记这个潜在的问题 删除表中数据也可使用TRUNCATETABLE语句 它和delete有所不同 参看mysql文档 18 Delete语句练习 删除表中名称为 zs 的记录 删除表中所有记录 使用truncate删除表中记录 19 2020 1 15 20 Select语句 1 SELECT DISTINCT column1 column2 column3 FROMtable Select指定查询哪些列的数据 column指定列名 号代表查询所有列 From指定查询哪张表 DISTINCT可选 指显示结果时 是否剔除重复数据 基本select语句 21 Select语句 1 练习 查询表中所有学生的信息 查询表中所有学生的姓名和对应的英语成绩 过滤表中重复数据 22 Select语句 SELECT column1 expression column2 expression FROMtable 在select语句中可使用表达式对查询的列进行运算 在select语句中可使用as语句 SELECTcolumnas别名from表名 23 Select语句 练习在所有学生分数上加10分特长分 统计每个学生的总分 使用别名表示学生分数 24 Select语句 3 使用where子句 进行过滤查询 练习 查询姓名为wu的学生成绩查询英语成绩大于90分的同学查询总分大于200分的所有同学 25 Select语句 在where子句中经常使用的运算符 Like语句中 代表零个或多个任意字符 代表一个字符 例first namelike a 26 Select语句 4 查询英语分数在80 90之间的同学 查询数学分数为89 90 91的同学 查询所有姓李的学生成绩 查询数学分 80 语文分 80的同学 27 Select语句 SELECTcolumn1 column2 column3 FROMtable orderbycolumnasc desc Orderby指定排序的列 排序的列即可是表中的列名 也可以是select语句后指定的列名 Asc升序 Desc降序ORDERBY子句应位于SELECT语句的结尾 练习 对数学成绩排序后输出 对总分排序后输出 然后再按从高到低的顺序输出对姓李的学生成绩排序输出 使用orderby子句排序查询结果 28 合计函数 count Selectcount count 列名 fromtablename WHEREwhere definition 练习 统计一个班级共有多少学生 统计数学成绩大于90的学生有多少个 统计总分大于250的人数有多少 Count 列名 返回某一列 行的总数 29 合计函数 SUM Selectsum 列名 sum 列名 fromtablename WHEREwhere definition 练习 统计一个班级数学总成绩 统计一个班级语文 英语 数学各科的总成绩统计一个班级语文 英语 数学的成绩总和统计一个班级语文成绩平均分注意 sum仅对数值起作用 否则会报错 注意 对多列求和 号不能少 Sum函数返回满足where条件的行的和 30 合计函数 AVG Selectsum 列名 sum 列名 fromtablename WHEREwhere definition 练习 求一个班级数学平均分 求一个班级总分平均分 AVG函数返回满足where条件的一列的平均值 31 合计函数 MAX MIN Selectmax 列名 fromtablename WHEREwhere definition 练习 求班级最高分和最低分 数值范围在统计中特别有用 Max min函数返回满足where条件的一列的最大 最小值 32 Select语句 6 SELECTcolumn1 column2 column3 FROMtable groupbycolumn 练习 对订单表中商品归类后 显示每一类商品的总价 使用groupby子句对列进行分组 SELECTcolumn1 column2 column3 FROMtable groupbycolumnhaving 使用having子句过滤 练习 查询购买了几类商品 并且每类总价大于100的商品 Having和where均可实现过滤 但在having可以使用合计函数 having通常跟在groupby后 它作用于组 33 时间日期相关函数 示例 selectaddtime 02 30 30 01 01 01 注意 字符串 时间日期的引号问题selectdate add entry date INTERVAL2year fromstudent 增加两年selectaddtime time 11 110 09 09 fromstudent 时间戳上增加 注意年后没有 34 字符串相关函数 35 数学相关函数 36 定义表的约束 定义主键约束primarykey 不允许为空 不允许重复删除主键 altertabletablenamedropprimarykey 定义主键自动增长auto increment定义唯一约束unique定义非空约束notnull定义外键约束constraintordersid FKforeignkey ordersid referencesorders id 37 Tip mysql中文乱码 mysql有六处使用了字符集 分别为 client connection database re
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 用工管理面试题及答案
- 门诊内科出科总结
- 中国教育的目的
- 月字旁写字课课件
- 2025年中国男士牛仔裤行业市场全景分析及前景机遇研判报告
- 综合能源服务培训
- 怎样做好日常培训
- EHS基础知识培训
- 花山岩画的群体性活动元素融入舞蹈课堂教学的实践与探究
- 特殊关键工序培训
- 动火作业安全规范
- XX公司事故隐患内部报告奖励制度1
- 《石油化工工程建设费用定额》2025
- 鹦鹉热护理疑难病例讨论
- 企业会计面试题及答案
- 连云港事业单位笔试真题2024
- 影视制作基地装修施工合同
- 河北省唐山市重点达标名校2025届中考联考生物试卷含解析
- 2025年山东威海文旅发展集团有限公司招聘笔试参考题库含答案解析
- 内分泌科室院感工作总结
- 餐饮服务企业各项管理制度体系
评论
0/150
提交评论