用一条 SQL 语句,查询出每门课都大于80分的学生姓名
name course score
张三 语文 81
张三 数学 75
李四 语文 76
李四 数学 90
王五 语文 81
王五 数学 100
王五 英语 90
select name from table where name not in(select name from table where score<=80);
用一条 SQL 语句,查询出每门课都大于80分的学生姓名
name course score
张三 语文 81
张三 数学 75
李四 语文 76
李四 数学 90
王五 语文 81
王五 数学 100
王五 英语 90
select name from table where name not in(select name from table where score<=80);
<?php
// 注意配置 php.ini 的 date.timezone = "Asia/Shanghai" 否则PHP5.1.0版本后会抛出错误
echo date('Y-m-d H:i:s',strtotime('-1day'));
String 字符串对象:String.length
Date 日期对象:Date.getYear()
Math 数学对象:Math.random()
Array 对象: Array.pop() 、Array.push()
Dom 对象
Bom 对象
stu 表:学生信息表
score 表:分数表
1. 写出一条sql语句,查出所有学生信息
select * from stu;
2. 写出一条sql语句,查出表中从第2条到第4条学生的信息
select * from stu limit 1,3;
select * from stu where id between 902 and 904;
3. 写出一条sql语句,查出年龄最小的那个学生的信息
select * from stu order by birth desc limit 1;
4. 写出一条sql语句,查出“计算机系”和“英语系”的所有学生信息
select * from stu where department=”计算机系” or department=”英语系”;
5. 写出一条sql语句,查出每一个系总共有多少学生
select count(*) from stu group by department;
6. 写出一条sql语句,查出每一个系的最高分是多少,包括对应的系名信息
select department,max(sc.grade) from stu left join score as sc on stu_id = sc.stu_id group by stu.department;
7. 写出一条sql语句,查出每一个系的最高分的那个学生的信息
select * from (select a.name,a.id,a.department,b.grade from stu as a join score as b on a.id=b.stu_id) a join (select department,max(grade) grade from stu left join score as sc on stu.id = sc.stu_id group by stu.department) b on a.department=b.department and a.grade=b.grade
数据库中有表 members(id、username、post_number、pass、email) 和表 posts(id、members_id、title、content、add_time)
1. 取出表 members 中发帖数量 (post_number) 前10位的名字
select username,post_number from members order by posts_number desc limit 10;
2. 名字为 join 的最新10个发帖的标题
select title from posts where id=(select id from members where username=”join”) order by add_time desc limit 10;
select username.title from members as m join posts as p on m.id=p.members_id where m.username=”join” order by p.add_time desc limit 10;
MySQL 数据库中的字段类型 varchar 和 char 的主要区别是什么?哪种字段的查询效率高?
varchar 为存储变长字符串,存储单位为字节,不同的编码方式存储的字符长度不一样,并且会单独用一个字符来存储字符长度。
char 为存储定长字符串,存储单位为字符,最多不超过256个字符。
char 的查询效率高,因为 varchar 会单独存储长度,在查询时先查找长度,然后进行数据的提取,比 char 定长类型多了一个步骤,所以效率第一点。
索引的意义
索引用来快速寻找那些具有特定值的记录。
主键索引和唯一索引的区别
1. 主键索引是一种唯一性索引,且必须指定为“PRIMARY KEY” ,每个表只能有一个主键。
2. 唯一索引索引列的值只能出现一次,即必须唯一。
索引的缺点
1. 创建索引和维护索引徐尧耗费时间,这种时间随着数据量的增加而增加。
2. 索引需要占用物理空间,除了数据表占用数据空间之外,每一个索引还要占用一定的物理空间,如果要建立聚簇索引,则需要的空间会更大。
3. 当对数据表中的数据进行增加、删除、修改的时候,索引也要进行动态的维护,这样就降低了数据的维护速度。
mysql_fetch_row() 以索引数组的方式取查询结果集
mysql_fetch_array() 以所以数组和管理数组两种方式取查询的结果集
<?php
function maxnum($a, $b, $c){
return $a > $b ? ($a > $c ? $a : $c) : ($b > $c ? $b : $c);
}
echo maxnum(33,67,5);
?>
或直接写 max() 函数
当你在你的脚本中写下这样一行代码
$myvariable; //此处你想定义一个变量,但未赋值。会有Notice: Undefined variable echo $myvariable + 3; //使用这个变量出现:Notice: Undefined variable: myvariable in
如果将其改写成:
$myvariable = NULL; echo $myvariable + 3; //这样就不会有问题了
所以得出在你的脚本在使用一个变量时最好赋一个默认值,如果你不想,就可以将NULL赋给变量,表示这个变量已经定义但没有值,属于NULL类型。
bool is_null ( mixed $var ) (php.net官方文档的函数定义)
当参数满足下面三种情况时,is_null()将返回TRUE,其它的情况就是FALSE
1、它被赋值为NULL
2、它还没有赋值
3、它未定义,相当于unset(),将一个变量unset()后,不就是没有定义吗
让我们来看一些例子:
$myvar = NULL; var_dump(is_null($myvar)); // TRUE $myvar1; var_dump(is_null($myvar1)); // TRUE Notice: Undefined variable $num = 520; unset($num); var_dump(is_null($num)); //TRUE Notice: Undefined variable var_dump(is_null($some_undefined_var)); //TRUE Notice: Undefined variable $myvar = 0; is_null($myvar); // FALSE $myvar = FALSE; is_null($myvar); // FALSE $myvar = ''; is_null($myvar); // FALSE
bool isset ( mixed $var [, mixed $... ] ),参数是一个变量
检测参数已设定,并且不是NULL。如果没有设置变量,变量未赋值,或变量被设为NULL,isset()函数就返回NULL。
正好和is_null()函数相反,is_null()为TRUE的情况在isset()中就为FALSE。有意思!
如果传递多个参数,将取交集。即所有参数全部符合 isset() 时才返回 TRUE。
似乎让人感觉有点困惑,来看一些例子:
$myvar = NULL; isset($myvar); // FALSE 当一个变量被赋值为NULL时,就表示这个变量没有值 $myvar = 0; isset($myvar); // TRUE $myvar = FALSE; isset($myvar); // TRUE $myvar = ''; isset($myvar); // TRUE isset($some_undefined_var); // FALSE Undefined variable
可以看出isset()着重检测一个 变量是否设置和这个变量是否有具体的值,当变量满足这两种情况时isset()返回TRUE
bool defined ( string $name )
检测是否设置常量
bool empty ( mixed $var )
判读变量是否为空。
请见上面的类型比较表empty()那一列你就明白哪些情况是空的情形了。还有其他一些函数的参照。
来看一些例子:
$myvar = NULL; empty($myvar); // TRUE $myvar = 0; empty($myvar); // TRUE $myvar = FALSE; empty($myvar); // TRUE $myvar = ''; empty($myvar); // TRUE empty($some_undefined_var); // TRUE
empty()为TRUE的情况,若变量不存在,或者变量存在且其值为""、0、"0"、NULL、FALSE、array()、var $var; 以及没有任何属性的对象,则返回 TURE。
一般如!empty()的判断,就是变量存在,且值不为""、0、"0"、NULL、FALSE、array()以及只是单纯定义一个变量$var。