黑马程序员:javaweb基础阶段笔记之第五章WEB05-BootStrap篇

上传人:suij****uang 文档编号:197532552 上传时间:2023-04-05 格式:DOCX 页数:16 大小:119.27KB
收藏 版权申诉 举报 下载
黑马程序员:javaweb基础阶段笔记之第五章WEB05-BootStrap篇_第1页
第1页 / 共16页
黑马程序员:javaweb基础阶段笔记之第五章WEB05-BootStrap篇_第2页
第2页 / 共16页
黑马程序员:javaweb基础阶段笔记之第五章WEB05-BootStrap篇_第3页
第3页 / 共16页
资源描述:

《黑马程序员:javaweb基础阶段笔记之第五章WEB05-BootStrap篇》由会员分享,可在线阅读,更多相关《黑马程序员:javaweb基础阶段笔记之第五章WEB05-BootStrap篇(16页珍藏版)》请在装配图网上搜索。

1、IC黑马程序员黑马程序员:javaweb基础阶段笔记之第六章WEB06-MySQL 篇今日任务对MYSQL数据库中的数据库,表及数据的CRUD的操作给定一套系统模型分析其中表关系并完成建表操作完成对MYSQL数据库的多表查询及建表操作.教学导航教学目标掌握MYSQL的基本数据库,表及表中记录的操作掌握MYSQL中的多表创建及多表查询掌握MYSQL中的表关系分析并能正确建表了解MYSQL可视化界面的使用教学方法案例驱动法1.1上次课内容回顾:Bootstrap :*响应式的HTML,CSS,JS的框架.*响应式设计:*设计一套页面,适配不同的设备,在手机,PAD,PC端都能够正常浏览.响应式原理

2、:*使用CSS3的媒体查询,根据屏幕的分辨率匹配不用的样式.* BootStrap:*全局CSS :*栅格:*表单:*按钮*组件:*导航条:*分页栏:*标签页:* JS的插件:*图片轮播.1.2 MYSQL的回顾:1.2.1 MySQL 的概述:1.2.1.1什么是数据库:数据库:就是一个文件系统,这个文件必须通过标准的SQL访问.1.2.1.2什么是关系型数据库:关系型的数据库存放的都是实体之间的关系.1.2.1.3常用的关系型数据库:MySQLOracleSQLServerDB2SyBaseSQLite免费的小型的数据库,现在被Oracle收购.Oracle公司收费的大型的数据库.微软公司

3、收费中型的数据库.IBM公司收费的大型的数据库.SyBase公司收费的数据库.已经被淘汰.PowerDesigner数据建模的工具. 小型的嵌入式的数据库.* Java程序中经常使用的数据库MySQLOracle1.2.1.4数据库存储的结构:1.2.2SQL的概述:1.2.2.1 什么是 SQL:SQL:结构化的查询语言.1.2.2.2 SQL 分类:DDL:数据定义语言* create,alter,drop.DML:数据操纵语言* update,insert,deleteDCL:数据控制语言* grant,if.DQL:数据查询语言* select1.2.2.3 SQL 的特点:非过程性语

4、言:一条语句就会有一个运行的结果.1.2.3 使用 SQL1.2.3.1使用SQL操作数据库(对数据库的CRUD的操作)【创建数据库】语法:* create database数据库名称character set字符集collate字符集校对;练习:*创建db1;* create database db1;*创建一个带有字符集的数据库db2;* create database db2 character set gbk;*创建一个带有字符集和校对规则的数据库db3;* create database db3 character set utf8 collate utf8_bin;【查看数据库】语

5、法:*查看数据库服务器中所有的数据库:* show databases;*查看某个数据库的定义信息.* show create database 数据库名;*查看当前正在使用的数据库信息.* select database();【删除数据库】语法:*删除数据库:* drop database 数据库名;【修改数据库】语法:*修改数据库修改的是的数据库的字符集和校对规则.* alter database数据库名character set新字符集collate校对规则;【切换数据库】语法:* use数据库名称;1.2.3.2使用SQL操作数据库中的表(对数据库的表CRUD的操作)【创建表】 语法:

6、* create table 表名(字段名类型(长度)约束,字段名类型(长度)约束, 字段名类型(长度)约束); 数据类型:* Java 类型:MySQL:byte/short/int/long tinyint/smallint/int/bigint Stringchar/varchar*区别?char是固定长度的字符串,varchar可变长度的字符串.* char(8)和 varchar(8)插入到varchar中 插入hello float double booleanDate*如果插入一个字符串hello插入到char那么 插入hello .floatdoublebitdate/time

7、/datetime/timestamp* datetime和timestamp都是既有日期又有时间的日期类型*区别? datetime需要使用外部传入的日期.如果没传这个值就是Null. timestamp会使用系统当前的时间作为这个值的默认值.文本文件Text二级制文件BLOB* Oralce 使用 CLOB/BLOB* MYSQL中除了字符串类型需要设置长度其他的类型都有默认长度.约束:单表约束:*主键约束:primary key (默认就是唯一非空的)*唯一约束:unique*非空约束:not null创建一个表:*创建表之前先选择数据库:use某个数据库; create table e

8、mployee(eid int primary key auto_increment, ename varchar(20) not null, email varchar(30) unique, birthday date,job varchar(20), resume text);【表的查看】 查看数据库中有哪些表:* show tables; 查看表结构:* desc表名;【表的删除】表的删除:* drop table 表名;【表的修改】 修改表添加列:* alter table表名add列名类型(长度)约束;* alter table employee add image varchar

9、(50); 修改表删除列:* alter table 表名 drop 列名;* alter table employee drop job; 修改表的列的类型长度及约束:* alter table表名modify列名类型(长度)约束;* alter table employee modify image varchar(80) not null; 修改表的列名* alter table 表名 change旧列名新列名类型(长度)约束;* alter table employee change image eimage varchar(60); 修改表名* rename table I日表名to

10、新表名;* rename table employee to user; 修改表的字符集:* alter table 表名 character set 字符集;* alter table user character set gbk;1.2.3.3使用SQL操作数据库中的表的记录(对表的记录的CRUD的操作)【插入记录】 语法* insert into 表名例名,列名,.)values (值1,值2,.);插入指定列的值* insert into 表名 values (值1,值2,.);插入所有列的值 注意事项:*列名的个数与值的个数对成.*列的类型与值的类型对应.位置也要对成.*列的类型如果

11、是字符串或者日期,写值的时候使用单引号将值引起来.*插入的值的最大长度不能超过列的最大长度. 插入记录:*插入某几列的值:* insert into employee (eid,ename,email) values (null,aaa,aaa);*插入所有列的值:* insert into employee values (null,bbb,bbb,1990-09-01,HR,I am HR);插入中文:insert into employee (eid,ename,email) values (null,张H,aaa);ERROR 1366 (HY000): Incorrect strin

12、g value: xD5xC5xC8xFD for column ename atrow 1*插入中文问题的解决:* show variables like %character%;character_set_client ! utf8I Icharacter_set_connection ! utf8I Icharactep_set_database! utf8I Idiaractep_set_filesystem ! binaryI Icharacter_set_results ! utf8I Icharacter_set_seruer ! utf8I Icharacter_set_siF

13、stein ! utf8* 找到 MYSQL的安装踣径/my.ini文件:Iclientport=3306| mysql*重新加载mysql的配置文件:* services.msc*停止mysql的服务,重新启动mysql服务.*执行之前的SQL语句.【修改记录】语法:*叩date表set列名=值例名=值where条件;注意事项:*列名和值类型也要一致.*值不能超过列的最大长度.*值是字符串或日期,需要使用单引号.练习:*修改employee表中所有记录的job为WORKER* update employee set job=WORKER;* 修改 employee 表将 name 为 aaa

14、 的邮箱改为 aaa* update employee set email = aaa where ename = aaa;*修改employee表将name为bbb的邮箱改为bbb同时修改job为HR* update employee set email = bbb , job=HR where ename=bbb;【删除记录】 语法:* delete from 表where 条件; 注意事项:*删除表中的一行记录,不能删1除某列值*如果没有条件删除表中的所有列. 练习:*删除id为8的记录:* delete from employee where eid = 8;*删除所有记录:* del

15、ete from employee; 删除表中的所有记录truncate table表名 和delete from表 区别?*区别:* truncate table删除表的记录:将整个表删|除掉,重新创建一个新的表.truncate属于DDL.* delete from删除表的记录:一条一条进行删除.delete属于DML。*事务管理只能作用在DML语句上.如果再一个事务中使用delete删除所有记录,可以找 回.【基本查询 查询语句:* select distinct *|列名 from 表where 条件; 准备:create table exam(id int primary key a

16、uto_increment,name varchar(20),english int,chinese int,math int);insert into exam values (null,张三,85,74,91);insert into exam values (null,李四,95,90,83);insert into exam values (null,王五,85,84,59);insert into exam values (null,赵六,75,79,76);insert into exam values (null,田七,69,63,98);insert into exam val

17、ues (null,李四,89,90,83); 查询所有记录:* select * from exam; 查询这个班级人的姓名和英语成绩:* select name,english from exam; 查询英语成绩,将重复英语成绩去掉:* select distinct english from exam; 查询李四的学生成绩:select * from exam where name=李四; 查询名称叫李四并且英语成绩大于90的select * from exam where name=李四and english 90; 将成绩+10分进行显示:select name ,english +

18、 10,chinese+10 ,math + 10 from exam; 显示这个人的名称和对应总成绩的分数:select name,english+chinese+math from exam; 使用as起别名,as可以省略.select name , english+chinese+math as sum from exam;【条件查询】 where语句后面可以加:条件的关键字:=, ,=,,=,like中可以使用占位符:_和% :下划线匹配一个字符,:可以匹配任意多个字符.* like 张 ; like 张_ ; like 明;like %明;in后跟着一组值.* id in (1,2,

19、3)and or not【排序查询】 order by对数据进行排序.默认升序.(asc升序,desc降序)*查询所有学生的信息,并且按语文成绩进行排序.* select * from exam order by chinese;*查询所有学生的信息,并且按语文成绩进行降序排序.* select * from exam order by chinese desc;*查询学生的信息,按照英语成绩降序排序,如果英语成绩相同,按照语文降序.* select * from exam order by english desc,chinese desc;*查询姓李的学生的信息,同时按照英语升序排序.*

20、select * from exam where name like 李 order by english asc;【聚合函数】 sum() count() max() min() avg()*查询每个学生总成绩:* select name,(english+chinese+math) from exam;*统计所有学生的总分:* select sum(english+chinese+math) from exam; - ifnull(english,0)* select sum(english)+sum(chinese)+sum(math) from exam;*统计学生的个数:* sele

21、ct count(*) from exam;*统计英语成绩的最高分:* select max(english) from exam;*统计语文成绩的最低分:* select min(chinese) from exam;*统计英语成绩平均分:* select avg(english) from exam;【分组】group by创建一个订单详情的表:*统计订单中的每类商品所购买的个数:* SELECT product,COUNT(*) FROM orderitem GROUP BY product;*统计订单中的每类商品所花的金额:* SELECT product,SUM(price) FRO

22、M orderitem GROUP BY product;*统计订单中的每类商品所花总金额大于2000信息.* SELECT product,SUM(price) FROM orderitem GROUP BY product HAVING SUM(price) 2000;*统计订单中名称有电子的商品并且所花金额大于1500同时按照价格降序排序:* SELECT product,SUM(price) FROM orderitem WHERE product LIKE 电 GROUP BY product HAVING SUM(price) 1500 ORDER BY SUM(price) DE

23、SC;【SQL的查询语句的总结】序:s.f.w.g.h.o.;1.3案例一:将商城的案例中的表结构进行分析:1.3.1需求:在最后的综合案例中,会创建数据库,为数据库中创建很多表.表与表之间是有关系存在,分析表之间关 系并且完成表的创建.1.3.2分析:1.3.2.1技术分析【数据库的多表设计】数据库都是关系型的数据库,存的是实体之间的关系.实体之间有哪些关系?实体的关系总结起来就有三种关系:一对多:*客户和订单:一个客户可以产生多个订单,一个订单只能属于是某一个客户.*部门和员工:一个部门下可以有多个员工,一个员工只能属于某一个部门.多对多:*学生和课程:一个学生可以选择多门课程,一门课程可

24、以被多个学生选择.*订单和商品:一个订单中包含多个商品,一个商品也可以出现多个订单中.一对一:*公司和地址:一个公司只能有一个注册地址,一个地址也只能被一个公司注册.【多表的设计】 一对多的关系的建表原则:*在多的一方创建一个字黑这个字段作为外键执向一的一方的主键. 多对多的关系的建表原则:*创建一个第三种表,中间表中至少需要两个字段分别作为外键执向多对多双方的各自的主键. 一对一的关系的建表原则:*唯一外键对成:假设一对一的双方是一对多的关系.在多的一方创建外键执向一的一方的主键.需要 在外键上添加一个unique约束.*主键对成:将一对一的双方的主键建立映射.【使用SQL创建一对多的关系】

25、创建客户表:create table customer(cid int primary key auto_increment,cname varchar(20);create table orders(oid int primary key auto_increment,addr varchar(50),cid int);*约束:用来保证数据的完成型.*多表约束:夕卜键约束! !*给orders表中的cid添加外键约束.* alter table orders add foreign key (cid) references customer(cid);1.3.3商城模型分析:1.4案例二:使

26、用SQL完成多表的查询:1.4.1需求:使用多表的查询,完成某个分类下的商品的显示.很多的情况下都需要使用多表的查询.1.4.2分析:1.4.2.1技术分析:【多表的查询的SQL】 多表的查询的方式:*交叉连接:* select * from A,B;-获得的是两个表的笛卡尔积.*内连接:inner join - inner可以省略* 显式内连接:select * from A inner join B on 条件;* SELECT * FROM customer c INNER JOIN orders o ON c.cid = o.cid;* 隐式内连接:select * from A,B

27、where 条件;* SELECT * FROM customer c ,orders o WHERE c.cid = o.cid;*夕卜连接:outer join - outer可以省略* 左外连接:left outer join - select * from A left outer join B on 条件;* SELECT * FROM customer c LEFT OUTER JOIN orders o ON c.cid = o.cid;* 右外连接:right outer join - select * from A right outer join B on 条件;* SEL

28、ECT * FROM customer c RIGHT OUTER JOIN orders o ON c.cid = o.cid;【多表查询的子查询】 一个SQL语句查询的过程中需要依赖另一个查询语句.SELECT * FROM customer c,orders o WHERE c.cid = o.cid AND c.cid IN (SELECT cid FROM orders WHERE addr LIKE 海淀 %);【多表练习】按客户名称统计订单的个数.SELECT ame,COUNT(*) FROM customer c,orders o WHERE c.cid = o.cid GROUP BY ame;

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!