华育国际暖心奉献PHP口试题—— 第二回
1.Include和require差异?

require 的利用方法如 require(\公众MyRequireFile.php\"大众); 。这个函数常日放在 PHP 程序的最前面,PHP 程序在实行前,就会先读入 require 所指定引入的文件,使它变成 PHP 程序网页的一部份。常用的函数,亦可以这个方法将它引入网页中。
include 利用方法如 include(\"大众MyIncludeFile.php\公众); 。这个函数一样平常是放在流程掌握的处理部分中。PHP 程序网页在读到 include 的文件时,才将它读进来。这种办法,可以把程序实行时的流程大略化。
他们两个的用场是完备一样的,不一定非得哪个放在最前面哪个放在中间。他们最根本的差异在于缺点处理的办法不一样。
require一个文件存在缺点的话,那么程序就会中断实行了,并显示致命缺点
include一个文件存在缺点的话,那么程序不会中端,而是连续实行,并显示一个警告缺点。
2.写出下列代码的实行结果:
<?php
$a=\"大众First\公众;
$b=&$a;
$c=$a;
$a=\"大众Second\公众;
$d='$a,'.$b.','.$c;
print(\"大众\$d=$d\公众);
//代码输出结果:$d=$a,Second,First
?>
3、写出下列代码输出结果:
<?php
$a=2;
$b=\"大众1.2SBC3\"大众;
$c=\公众EFC\"大众;
$result1=$a.$b;
$result2=$a$b;
$result3=$a$c;
print(\"大众$result1,$result2,$result3 <br>\"大众);
//代码实行结果:21.2SBC3,2.4,0
?>
4、.myisam和innodb的最大差异?
Innodb:支持事务;
Myisam:不支持事务;
5、.有一张成绩表,如下:
学生姓名 科目种别 成绩
王明 语文 90
王明 化学 95
王明 英语 85
王明 物理 93
王明 数学 88
王明 政治 91
赵军 语文 92
。。。 。。。 。。。
写出最少有三门科目大于90分的学生的所有成绩的SQL.
答案如下:
drop database student;
create database student character set gbk;
set names gbk;
use student;
create table xuesheng(
id int auto_increment primary key,
name varchar(10),
kemu varchar(10),
chengji varchar(10)
);
insert into xuesheng values(' ','王明','语文',90);
insert into xuesheng values(' ','王明','化学',95);
insert into xuesheng values(' ','王明','英语',85);
insert into xuesheng values(' ','王明','物理',93);
insert into xuesheng values(' ','王明','数学',88);
insert into xuesheng values(' ','王明','政治',91);
insert into xuesheng values(' ','赵军','语文',90);
insert into xuesheng values(' ','赵军','化学',95);
insert into xuesheng values(' ','赵军','英语',85);
insert into xuesheng values(' ','赵军','物理',81);
insert into xuesheng values(' ','赵军','数学',88);
insert into xuesheng values(' ','赵军','政治',21);
insert into xuesheng values(' ','大牛','语文',90);
insert into xuesheng values(' ','大牛','化学',95);
insert into xuesheng values(' ','大牛','英语',85);
insert into xuesheng values(' ','大牛','物理',93);
insert into xuesheng values(' ','大牛','数学',88);
insert into xuesheng values(' ','大牛','政治',91);
select from xuesheng;
[查询结果如下]
mysql> select from xuesheng;
+----+--------+--------+---------+
| id | name | kemu | chengji |
+----+--------+--------+---------+
| 1 | 王明 | 语文 | 90 |
| 2 | 王明 | 化学 | 95 |
| 3 | 王明 | 英语 | 85 |
| 4 | 王明 | 物理 | 93 |
| 5 | 王明 | 数学 | 88 |
| 6 | 王明 | 政治 | 91 |
| 7 | 赵军 | 语文 | 90 |
| 8 | 赵军 | 化学 | 95 |
| 9 | 赵军 | 英语 | 85 |
| 10 | 赵军 | 物理 | 81 |
| 11 | 赵军 | 数学 | 88 |
| 12 | 赵军 | 政治 | 21 |
| 13 | 大牛 | 语文 | 90 |
| 14 | 大牛 | 化学 | 95 |
| 15 | 大牛 | 英语 | 85 |
| 16 | 大牛 | 物理 | 93 |
| 17 | 大牛 | 数学 | 88 |
| 18 | 大牛 | 政治 | 91 |
+----+--------+--------+---------+
18 rows in set (0.00 sec)
select name,kemu, chengji from xuesheng where name in (select name from xuesheng where chengji>=90 group by name having count(kemu)>=3);
mysql> select name,kemu, chengji from xuesheng where name in (select name from xuesheng where chengji>=90 group by name having count(kemu)>=3);
+--------+--------+---------+
| name | kemu | chengji |
+--------+--------+---------+
| 王明 | 语文 | 90 |
| 王明 | 化学 | 95 |
| 王明 | 英语 | 85 |
| 王明 | 物理 | 93 |
| 王明 | 数学 | 88 |
| 王明 | 政治 | 91 |
| 大牛 | 语文 | 90 |
| 大牛 | 化学 | 95 |
| 大牛 | 英语 | 85 |
| 大牛 | 物理 | 93 |
| 大牛 | 数学 | 88 |
| 大牛 | 政治 | 91 |
+--------+--------+---------+
12 rows in set (0.00 sec)
6.有以下三张表,发卖主表(SALE)、发卖子表(PRODUCT_SALE)、产品表(PRODUCT)
SALE(order_id,salesman,customer,contract_date)
分别表示:订单号,业务员,客户名称,条约日期
PRODUCT_SALE(order_id,product_id,sale_count,sales_amount)
分别表示:订单号,产品编号,发卖数量,发卖金额
PRODUCT(product_id, product_name,number)
分别表示:产品编号,产品名称,产品数量
请根据以下条件,写出分别sql语句
1.统计条约日期为2016年10月的各业务员的发卖数量和发卖金额
2.统计条约日期为2016年10月的各产品的发卖数量和发卖金额
3.打算业务员‘张三’发卖的产品为”维生素b”的均匀价格
4.显示所有产品的库存,哀求显示产品名称和库存数量(用一条SQL)
5.显示所有产品库存,哀求显示产品名称,库存数量,库存状态(用一条SQL语句)
当库存数>=10000时,库存状态显示库存积压;
当库存数<=1000时,库存状态显示库存不敷;
其他情形,库存状态显示库存正常。
答案如下:
create database xiaoshou character set gbk;
use xiaoshou;
#发卖主表
create table sale(
order_id varchar(20), #订单号
salesman varchar(50), #业务员
customer varchar(50), #客户名称
contract_date varchar(20) #条约日期
);
insert into sale values( 20160123,'张三','李四',201610) ;
insert into sale values(20164562,'王五','赵六',201609) ;
insert into sale values(20164585,'张三','田七',201607) ;
insert into sale values(20167845,'赵四','王二',201603) ;
insert into sale values(20164512,'张三','李四',201606) ;
insert into sale values(20167854,'张三','李四',201608) ;
insert into sale values(20169658,'张非','李四',201602) ;
insert into sale values(20163258,'张三','田三',201604) ;
insert into sale values(20166541,'孙子','李四',201605) ;
insert into sale values(20166541,'佰康','吴东',201610) ;
#发卖子表
create table product_sale(
order_id int references sale(order_id), #订单号
product_id int references product(product_id), #产品编号
sale_count varchar(20), #发卖数量
sales_amount varchar(20), #发卖金额
primary key(order_id,product_id)
);
insert into product_sale values(20166541,1111,6584,9000);
insert into product_sale values(20160123,2222,4000,4000);
insert into product_sale values(20163258,3333,498,5670);
insert into product_sale values(20164512,4444,5321,9874);
insert into product_sale values(20167845,5555,4000,9874);
insert into product_sale values(20169658,6666,4000,9874);
#产品表
create table product(
product_id int auto_increment primary key,#产品编号
product_name varchar(20), #产品名称
number varchar(20) #产品数量
);
insert into product values(1111,'维生素a',20000);
insert into product values(2222,'维生素b',30000);
insert into product values(3333,'维生素c',40000);
insert into product values(4444,'维生素d',50000);
insert into product values(5555,'维生素e',4099);
insert into product values(6666,'维生素f',7000);
1.统计条约日期为2016年10月的各业务员的发卖数量和发卖金额
select a. salesman ,b.sale_count ,b.sales_amount from
(select from sale where contract_date=201610) as
a ,product_sale b where a.order_id =b.order_id ;
+----------+------------+--------------+
| salesman | sale_count | sales_amount |
+----------+------------+--------------+
| 张三 | 4000 | 4000 |
| 佰康 | 6584 | 9000 |
+----------+------------+--------------+
2.统计条约日期为2016年10月的各产品的发卖数量和发卖金额
select c.product_name ,b.sale_count ,b.sales_amount from
(select from sale where contract_date=201610) as
a ,product_sale b,product c where
a.order_id =b.order_id and
b.product_id=c.product_id
order by product_name;
+--------------+------------+--------------+
| product_name | sale_count | sales_amount |
+--------------+------------+--------------+
| 维生素a | 6584 | 9000 |
| 维生素b | 4000 | 4000 |
+--------------+------------+--------------+
3.打算业务员‘张三’发卖的产品为”维生素b”的均匀价格
select b.sales_amount/b.sale_count '均匀价格' from
(select from sale where contract_date=201610) as a ,
product_sale b,product c
where a.order_id =b.order_id and
c.product_name='维生素b' and
a. salesman='张三';
+--------------+
| 均匀价格 |
+--------------+
| 1 |
+--------------+
4.显示所有产品的库存,哀求显示产品名称和库存数量(用一条SQL)
select c.product_name '产品名称', c.number-b.sale_count '库存数量' from
sale a ,product_sale b,product c
where a.order_id =b.order_id
and b.product_id=c.product_id
group by c.product_name;
+--------------+--------------+
| 产品名称 | 库存数量 |
+--------------+--------------+
| 维生素a | 13416 |
| 维生素b | 26000 |
| 维生素c | 39502 |
| 维生素d | 44679 |
| 维生素e | 99 |
| 维生素f | 3000 |
+--------------+--------------+
5.显示所有产品库存,哀求显示产品名称,库存数量,库存状态(用一条SQL语句)
当库存数>=10000时,库存状态显示库存积压;
当库存数<=1000时,库存状态显示库存不敷;
其他情形,库存状态显示库存正常。
select product_name '产品名称', c.number-b.sale_count '库存数量' , case when c.number-b.sale_count>=10000 then '库存积压' when c.number-b.sale_count<=1000 then '库存不敷' else '库存正常' end as '库存情形'
from product_sale b,product c where b.product_id =c.product_id group by b.product_id ;
+--------------+--------------+--------------+
| 产品名称 | 库存数量 | 库存情形 |
+--------------+--------------+--------------+
| 维生素a | 13416 | 库存积压 |
| 维生素b | 26000 | 库存积压 |
| 维生素c | 39502 | 库存积压 |
| 维生素d | 44679 | 库存积压 |
| 维生素e | 99 | 库存不敷 |
| 维生素f | 3000 | 库存正常 |
+--------------+--------------+--------------+
CREATE TABLE product (
pro_id varchar(10) NOT NULL,
pro_name varchar(50) DEFAULT NULL,
pro_count int(10) DEFAULT NULL,
PRIMARY KEY (pro_id)
)
CREATE TABLE product_ss (
id int(11) NOT NULL AUTO_INCREMENT,
pro_id varchar(10) DEFAULT NULL,
sale_count int(6) DEFAULT NULL,
ss_date datetime DEFAULT NULL,
PRIMARY KEY (id),
FOREIGN KEY (pro_id) REFERENCES product (pro_id)
);
2.select from product where pro_id like '12%';
3.insert into product_sale values(null,'67890',2000,CURRENT_TIMESTAMP); commit;
4. select p.pro_name ,(p.pro_count-s.sale_count) as '库存' from product p,product_sale s where p.pro_id=s.pro_id;
5.select pro_name, case when p.pro_count-s.sale_count>=10000 then '库存积压' when p.pro_count-s.sale_count<=1000 then '库存不敷' else '库存正常' end as '库存情形'
from product p,product_sale s where p.pro_id=s.pro_id group by p.pro_id ;
更多专业内容可关注华育国际"大众号;浏览华育官网