2.6、全局函数设置点击图片的宽度变大
function getman() {
var img1 = document.getElementById("im1");
var imgw = img1.style.width;
console.log(imgw);
imgw=parseInt(imgw);
img1.style.width = imgw + 10 + "px";
}
2.7、随机数
<script>
/*[0,1)*/ // 0-2; 只要整数
var num = Math.random()*2;
Day08(2018-1-22)mysql的回顾
2.9.2、修改记录:
语法:
* update 表 set 列名=值,列名=值 [where 条件];
注意事项:
* 列名和值类型也要一致.
* 值不能超过列的最大长度.
* 值是字符串或日期,需要使用单引号.
练习:
* 修改employee表中所有记录的job为WORKER
* update employee set job='WORKER';
* 修改employee表将name为aaa的邮箱改为aaa@163.com
* update employee set email = 'aaa@163.com' where ename = 'aaa';
* 修改employee表将name为bbb的邮箱改为bbb@163.com同时修改job为HR
* update employee set email = 'bbb@163.com' , job='HR' where ename='bbb';
2.9.3、删除记录:
语法:delete from表名where条件
注意事项:
删除表中的一行记录,不能删除某列值
如果没有条件就删除表中所有列
练习:
* 删除id为8的记录:
* delete from employee where eid = 8;
* 删除所有记录:
* delete from employee;
删除表中的所有记录truncate table 表名 和 delete from 表 区别?
* 区别:
* truncate table 删除表的记录:将整个表删除掉,重新创建一个新的表.truncate属于DDL.
* delete from 删除表的记录:一条一条进行删除. delete属于DML。
* 事务管理 只能作用在DML语句上.如果再一个事务中使用delete删除所有记录,可以找回.
2.9.4、查询语句
查询语句:* select [distinct] *|列名 from 表 [where 条件];
准备创建表,插入数据:
create table exam(
id int primary key auto_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 values (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+10,chinest+10,math+10 from exam;
显示这个人的名称和对应总成绩的分数:
select name,english+chinese+math from exam;
使用as起别名,as可以省略.
select name , english+chinese+math as sum from exam;
2.9.5、条件查询
where语句后面可以加:
条件的关键字:
= , > , >= , <, <= , <>
like中可以使用占位符: _ 和 % :下划线匹配一个字符, %:可以匹配任意多个字符.
* like ‘张%’; like ‘张_’; like ‘%明’; like ‘%明%’;
in 后跟着一组值.
* id in (1,2,3)
and or not
2.9.6、排序查询
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;
* 查询姓李的学生的信息,同时按照英语升序排序.
* select * from exam where name like '李%' order by english asc;
2.9.7、聚合函数
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;
* 统计学生的个数:
* select count(*) from exam;
* 统计英语成绩的最高分:
* select max(english) from exam;
* 统计语文成绩的最低分:
* select min(chinese) from exam;
* 统计英语成绩平均分:
* select avg(english) from exam;
2.9.8、分组
group by
创建一个订单详情的表:
* 统计订单中的每类商品所购买的个数:
* SELECT product,COUNT(*) FROM orderitem GROUP BY product;
* 统计订单中的每类商品所花的金额:
* SELECT product,SUM(price) FROM 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) DESC;
【SQL的查询语句的总结】
顺序: s...f...w...g...h...o...;
第二章、数据库的多表设计、
2.1、数据库的多表设计(实体关系有3 种)
数据库都是关系型的数据库,存在的是实体之间的关系,实体之间有哪些关系?
实体的关系总结起来就有三中关系:
一对多:一个客户可以产生多种订单
多对多:学生和课程
一对一:身份证和人,公司和注册地址
2.2、多表的设计
1、一对多的关系的建表原则:
在多的一方创建一个字段,这个字段作为外键指向一方的主键
2、多对多关系的建表原则:
创建一个第三种表,中间表中至少需要两个字段分别作为外键指向多对多双方的各自的主键
3、一对一的关系的建表原则:
⑴、唯一外键对应:假设一对一的双方是一对多的关系,在多的一方创建外键指向一的一方的主键,需要在外键上添加一个unique约束。
⑵、主键对应:将一对一的双方的主键建立映射
2.3、使用SQL创建一对多的关系
创建客户表:
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);
2.4、商城模型分析
表关系分析及设计
第三章、使用SQL完成多表的查询
3.1、需求:
使用多表的查询,完成某个分类下的商品的显示,很多的情况下都需要使用多表的查询。
3.2、多表查询的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 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 条件;
* SELECT * FROM customer c RIGHT OUTER JOIN orders o ON c.cid = o.cid;
3.3、多表查询的子查询
一个SQL语句查询的过程中需要依赖另一个查询语句.
SELECT * FROM customer c,orders o WHERE c.cid = o.cid AND c.cid IN (SELECT cid FROM orders WHERE addr LIKE '海淀%');
3.4、多表练习、按照客户名称统计订单的个数
SELECT c.cname,COUNT(*) FROM customer c,orders o WHERE c.cid = o.cid GROUP BY c.cname;