表名:cityid City Provinceid1 广州 12 深圳 13 惠州 14 长沙 25 武汉 3………. 广州表名称:province:id Province1 广东2 湖南3 湖北……….
1、写一条sql语句关系两个表,实现:显示城市的基本信息。显示字段:城市id ,城市名, 所属省份 。如:Id(城市id) Cityname(城市名) Privence(所属省份)
select A.id,A.Cityname,B.Province from city as A,province as B where A.provinceid=B.id
(图片来自网络侵删)2、如果要统计每个省份有多少个城市,请用group by 查询出来。显示字段:省份id ,省份名,包含多少个城市。
select B.id,B.Province,count() as num from city A,province B where A.provinceid=B.id group by B.id
二、主键 和外键表示什么?一样平常用于做什么?
主键:能够唯一表示数据表中的每个记录的字段或者字段的组合就称为主键。一个主键是唯一识别一个表的每一行记录,但这只是其浸染的一疗分,主键的紧张浸染是将记录和存放在其他表中的数据进行关联,在这一点上,主键是不同表中各记录间的大略指针,主键约整便是确定表中的每一条记录,主键不能是空值,唯一约束是用于指定一个或多个列的组合值具有唯一性,以防止在列中输入重复的值,以是,主键的值对用户而言是没有什么意义,并且和它授予的值也没有什么特殊联系。
外键:若有两个表A,B,C是A的主键,而B中也有C字段,则C便是表B的外键,外键约束紧张用来掩护两个表之间数据的同等性。A为基本表,B为信息表。在数据库中,常常不但是一个表,这些表之间也不是相互独立的,不同的表之间须要建立一种关系,才能将它们的数据相互沟通,而在这个沟通过程中,就须要表中有一个字段作为标志,不同的记录对应的字段取值不能相同,也不能是空缺的,通过这个字段中不同的值可以差异各条记录,就像我们差异不同的人,每个人都有名字,但它却不能作为主键,由于人名很随意马虎涌现重复,而身份证号是每个人都不同的,以是可以根据它来差异不同的人,数据库的表中作为主键的段段就要像人的身份证号一样,必须是每个记录的值都不同,这才能根据主键的值来确定不同的记录。
关系:外键一定是其余某个表的主键。
三、select now(),Date_ADD(now(),INTERVAL 14 day),Date_SUB(now(),INTERVAL 3 Day) from table; 会得到什么内容,请写出来。
会得到三条数据:第一条:当前韶光;第二条:当前韶光加上14天;第三条:当前韶光减去3天。
四、您所知道的MYSQL 数据库备份,还原办法有哪几种?备份:一,搭建主从架构,master-slave,通过binlog文件同步复制主库的数据,也可以直接通过binlog文件规复数据。二,通过系统操持任务实行mysqldump做周期性全备份。三,物理备份,直接拷贝数据文件、参数文件、日志文件。还原:一.通过mysql操尴尬刁难象,如phpmyadmin,sqlyog等导入备份过的数据库文件。二.将物理备份的文件拷贝到mysql的data目录下
五、内容管理系统中,表message有如下字段id 文章idtitle 文章标题content 文章内容category_id 文章分类idhits 点击量创建上表,写出MySQL语句
Create table if not exists message(
Id int not null AUTO_INCREMENT PRIMARY key comment '文章id',
title varchar(60) not null comment '文章标题',
Content text not null comment '文章内容',
Category_id tinyint not null comment '文章分类id',
Hits int not null default 0 comment '点击量'
)engine=myisam default charset = utf8;
六、同样上述内容管理系统:表comment记录用户回答内容,字段如下comment_id 回答idid 文章id,关联message表中的idcomment_content 回答内容现通过查询数据库须要得到以下格式的文章标题列表,并按照回答数量排序,回答最高的排在最前面文章id 文章标题 点击量 回答数量用一个SQL语句完成上述查询,如果文章没有回答则回答数量显示0
select m.id,m.title,m.hits,count(c.comment_content) count from message m,comment c where m.id = c.coment_id group by m.id order by count desc;
七、内容管理系统,表category保存分类信息,字段如下category_id int(4) not null auto_increment;category_name varchar(40) not null;用户输入文章时,通过选择下拉菜单选定文章分类写出如何实现这个下拉菜单
<?php
$dsn = ‘mysql:host=;dbname=’;
$pdo = new PDO($dsn,’用户名’,’密码’);
$sql = ‘select category_id,category_name from category’;
$list = $pdo->query($sql);
//利用类似smarty模板引擎
$this->assign(‘list’,$list);
?>
//模板实现端
<select name=””>
<option>-请选择分类-</option>
{foreach $list as $val}
<option value=”{$val.category_id}”>{$val.category_name}</option>
{/foreach}
</select>
八、PHP文件操作
1、内容管理系统:用户提交内容后,系统天生静态HTML页面;写出实现的基本思路
2、大略描述用户修正发布内容的实现流程和基本思路
1)当用户提交后天生一个由url地址MD5后的文件的编译页面,用文件处理file函数天生一个模板合成页,判断模板编译页是否有,模板页无或者编译页的创建韶光戳小于模板页的修正韶光都会重新天生编译页面,编译后的页面会调用对应数据库的值显示在页面中,通过对内存数据的读取开释,显示出我们看到的静态数据,然后用file文件将其保存起来天生静态的页面
2)当用户修正了发布内容都会修正数据干系的内容,并通过编译页面更新静态数据并用文件的办法缓存起来,当用户查看时将不做任何数据库查找,直接调用该缓存文件即可