当前位置: 代码迷 >> 综合 >> PHP面试题——MySQL
  详细解决方案

PHP面试题——MySQL

热度:51   发布时间:2023-09-05 19:15:24.0

1、从表login中选出name字段包含admin的前10条结果所有信息的sql语句。

//前10条,注意要排序
select * from login where name like '%admin%' limit 10 order by id;

2、解释左连接,右连接,内连接,索引。

左连接:left join,以左表为主导

右连接:right join,以右表为主导

内连接:inner join,一般普通多表查询就可实现,内连接用得少

索引:index,索引就像字典的目录,一个表只能有一个主键索引

3、简述论坛中无限分类的实现原理。

首先设计无限分类表,该表有四个字段id,name,pid,path,

4、sql优化

尽量避免全局扫描,几乎没有将一个表中所有数据都使用的请求,对where order by使用的字段添加索引

  应尽量避免在where字句中使用!= <>操作符,否则存储引擎会放弃使用索引而进行全局搜索

  避免在where条件中使用or,这也会使存储引擎进行全局搜索

  使用模糊搜索的时候,like '%string%',不会使用索引。like 'string%'会使用索引

  慎用 in,可能也会导致全表检索。如果是连续的条件可以考虑使用between

六 能用char的尽量不用varchar,因为char是固定长度的,所以检索速度快。但是相对来说占空大,所以应该对固定长度的字段用char,如身份证号

5、MySQL取得当前时间的函数是?格式化日期的函数是?

now(),date()

6、数据类型(int,char,varchar,datetime,text)的意思,请问varchar和char有什么区别?

int是数字类型,char是固定长度字符串,varchar是实际长度字符串,datatime是日期时间类型,text是文本字符串

7、MyISAM和InnoDB的基本区别?

(1)在增删改查方面,myisam要优于innodb表引擎,当数据量特别大时,他们的速度相差不大;

(2)innodb支持事务、存储过程、行锁。

8、

 增加一个字段性别sex:alter table user add sex tinyint unsigned not null default "男";

注:int 和 tinyint 的区别;unsigned无符号

9、什么是数据库索引,主键索引、唯一索引的区别,索引的缺点是什么?

(1)相当于字典的目录,提高检索速度。

(2)主键索引是给每张表的主键设置索引,唯一索引是给每张表的唯一值字段设置索引。

主键索引包含唯一索引,主键索引比唯一索引快,一个表只能有一个主键索引,一个表可以有多个唯一索引。

(3)索引的缺点是建立索引需要增加存储空间,空间利用率低。

10、写出发帖数最多的十个人的名字的SQL,利用下表:members(id,username,posts,pass,email)

select username,count(id) from members group by id order by count(id) desc limit 10;

11、mysql_fetch_row()和mysql_fetch_array()之间有什么区别?

mysql_fetch_row是从结果集取出一行数据,作为枚举

mysql_fetch_array是从结果集取出一行数组作为关联数组或数字数组

12、

  相关解决方案