mysql试题
drop,delete与truncate的区别:
优先级: drop > truncate > delete
TRUNCATE 按行删除并不把删除操作记录记入日志保存(不可恢复)
DELETE 全部删除表内数据并可将删除操作记录在日志中,可以加where字句,可应用于table和view
DROP 删除整个表(结构和数据)再插入时自增长id又从1开始
复制基本原理流程
主:binlog线程——记录下所有改变了数据库数据的语句,放进master上的binlog中,SQL线程执行binlog并通知存储引擎;
从:io线程——在使用start slave 之后,负责从master上拉取 binlog 内容,放进 自己的relay log中;
从:sql执行线程——执行relay log中的语句;
myisam与innodb的区别
1.InnoDB支持事物,而MyISAM不支持事物
2.InnoDB支持行级锁,而MyISAM支持表级锁
3.InnoDB支持MVCC, 而MyISAM不支持
4.InnoDB支持外键,而MyISAM不支持
5.InnoDB不支持全文索引,而MyISAM支持
myisam与innodb在select count(*)哪个更快,为什么?
myisam更快,因为myisam内部有一个计数器,可以直接调取
varchar与char的区别:
char是长度固定的,而varchar的长度是可以变化的
比如说存储字符串"abc":
char(10)表示存储的字符将占10个字节(包括7个空字符),大于10个字节时和varchar没区别则都将截掉超出部分
varchar(10)表示只占用3个字节的长度,当存储的字符等于或小于10时,都按实际长度存储
innodb有redo和undo两种日志...
MySQL binlog几种日志的区别
Statement:每一条会修改数据的sql都会记录在binlog中
Row:不记录sql语句上下文相关信息,仅保存哪条记录被修改
Mixedlevel: 是以上两种level的混合使用
在一条 SQL 操作了多行数据时, statement 更节省空间, row 更占用空间。但是 row模式更可靠
当 cpu 飙升到 500%时,先用 top 命令观察是不是 mysqld 占用导致的,如果不是,找出占用高的进程
如果是 mysqld 造成的看session情况,定位是不是有消耗资源的 sql 在运行找出消耗高的 sql并kill掉然后限制连接数或作出其他调整
mysqldump和xtranbackup的区别:
一般来说 100G 内的库,可以考虑使用 mysqldump。轻巧灵活备份出来的文件比较小,压缩之后更小
100G 以上的库,可以考虑用 xtranbackup。比 mysqldump 要快
表:
约束
自增长:auto_increment
非空:not null
默认值:default 'xx'
唯一:unique
指定字符集:charset //例:charset utf-8
主键:primary key
增:
create table students(
id int(15) auto_increment,
name varchar(10) not null,
sex varchar(3) default '',
age char(2),
address varchar(50),
phone char(11) not null unique,
primary key(id));
mysql> desc students;
+---------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+----------------+
| id | int(15) | NO | PRI | NULL | auto_increment |
| name | varchar(10) | NO | | NULL | |
| sex | varchar(3) | YES | | | |
| age | char(2) | YES | | NULL | |
| address | varchar(50) | YES | | NULL | |
| phone | int(11) | NO | UNI | NULL | |
+---------+-------------+------+-----+---------+----------------+
mysql> insert into students (name,sex,age,address,phone) values('zhangsan','男',26,'广东省珠海市香洲区',13356789124);
mysql> insert into students (name,sex,age,address,phone) values('金正南','女',54,'广东省珠海市拱北区',15844551634);
mysql> insert into students values('','金三胖','男',58,'朝鲜',14444444444);
mysql> insert into students values('','小泉纯一郎','男',78,'日本',14445554444);
mysql> insert into students values('','朴槿惠','女',60,'韩国',14445554774);
mysql> select * from students;
+----+------------+------+------+-----------------------------+-------------+
| id | name | sex | age | address | phone |
+----+------------+------+------+-----------------------------+-------------+
| 1 | zhangsan | 男 | 26 | 广东省珠海市香洲区 | 13356789124 |
| 2 | 金正南 | 女 | 54 | 广东省珠海市拱北区 | 15844551634 |
| 3 | 金三胖 | 男 | 58 | 朝鲜 | 14444444444 |
| 4 | 小泉纯⟼ 男 | 78 | 日本 | 14445554444 |
| 5 | 朴槿惠 | 女 | 60 | 韩国 | 14445554774 |
+----+------------+------+------+-----------------------------+-------------+
insert into student (name,money,sex,phone) values ('hk',10000,'男',188);
insert into student values('','小明',100,'',120);
删:
drop table tablename; #删除整张表,操作会被记录
truncate tablename; #删除整表数据,自增长id从头再来,快速,从磁盘直接删除,不可恢复
delete from student #删除整个表的数据,自增长继续
查:
SELECT * from students limit 5; #查询前5条
SELECT id,name,sex,money,phone from students; #指定查询的字段
SELECT * from students where sex='男' and money>100; #多个条件,必须同时满足
SELECT * from students where sex='男' or sex='未知' ; #多个条件,有一个满足即可
SELECT * from students where sex !='男'; # <>也是不等于
SELECT * FROM students where addr like '%东京%'; #模糊匹配,%代表的是通配符,必须得用like
SELECT * from students a where stu_name like '姚_'; #_通配符表示任意一个单字符,姚字后面只能跟一个字
SELECT * from students ORDER BY money desc; #order by xxx desc,根据哪个字段排序,默认是升序,降序是desc,升序asc
select * from table order by id desc,name desc; #多个字段排序
改:
alter table oldtable rename newtable; #改表名
alter table tablename modify name varchar(20); #改表结构
alter table tablename change name newname varchar(20); #改表结构
alter table tablename add age float after name; #在name后面新增age字段
update student set money=100; #不指定条件,修改所有
update student set money=110 where name='hk'; #只改hk
备份库:
mysqldump -u root -p mysql > ~/mysql.sql
还原库:
mysql -u root -p web < ~/web.sql
备份表:
mysqldump -u root -p 数据库名 表名 > xxx.sql
恢复表:
mysqldump -uroot -p 数据库名 < xxx.sql
mysql试题的更多相关文章
- mysql 试题总结
一.MySQL的复制原理以及流程 1.复制基本原理流程 1.主:binlog线程——记录下所有改变了数据库数据的语句,放进master上的binlog中: 2.从:io线程——在使用start sla ...
- Mysql试题集锦
1.一张表,里面有 ID 自增主键,当 insert 了 17 条记录之后,删除了第 15,16,17 条记录,再把 Mysql 重启,再 insert 一条记录,这条记录的 ID 是 18 还是 1 ...
- python之路 目录
目录 python python_基础总结1 python由来 字符编码 注释 pyc文件 python变量 导入模块 获取用户输入 流程控制if while python 基础2 编码转换 pych ...
- php面试题之五——MySQL数据库(基础部分)
五.MySQL数据库 mysql_num_rows() mysql_affected_rows() 这两个函数都作用于 mysql_query($query)操作的结果,mysql_num_rows( ...
- 乐视mysql面试题
http://blog.itpub.net/28916011/viewspace-2093197/ 最近,朋友去乐视面试了mysql DBA,以下是我据整理的乐视mysql面试题答案,供大家参考 ...
- 数据库笔试面试题库(Oracle、MySQL等)
数据库笔试面试题库(Oracle.MySQL等) 版权声明:版权所有,欢迎分享本文,转载请保留出处,否则追究法律责任,谢谢合作. 注:本文将持续更新,可关注作者微信公众号以便获得最新笔试面试资料. ⊙ ...
- [面试] mysql 面试题
最近在准备面试,mysql 实在是不熟悉,就先摘录一些网上的面试题来看一下. 1. MyISAM 和 InnoDB 区别? InnoDB 支持事务处理,支持更大的并发update 和 insert 操 ...
- MySQL高级知识(七)——索引面试题分析
前言:该篇随笔通过一些案例,对索引相关的面试题进行分析. 0.准备 #1.创建test表(测试表). drop table if exists test; create table test( id ...
- Linux运维必会的MySQL企业面试题大全
(1)基础笔试命令考察 1.开启MySQL服务 /etc/init.d/mysqld start service mysqld start systemctl start mysqld 2.检测端口是 ...
随机推荐
- React Native中Mobx的使用
从今天开始我们来搞搞状态管理可否,这几天没怎么写博客,因为被病魔战胜了,tmd,突然的降温让我不知所措,大家最近注意安全,毕竟年底了,查的严,呸,大家注意保暖 特别声明:写该文只是写一下用MobX的思 ...
- 【读书笔记】iOS-解析JSON
JSON相比XML最显著的优点是不需要使用重量级的解析库,因为其本身就是面向数据的,而且非常容易转换成哈希字典.除此之外,JSON文档相比同样的XML文档更小.在网络宽带有限的情况下,你很容易在Iph ...
- Salesforce的基础用户界面定制
Salesforce的用户界面 Salesforce的用户界面易于定制.本文将讲述如何定制: 主菜单和选项卡 自定义按钮和链接 视图列表 页面布局 定制主菜单和选项卡 Salesforce的主菜单默认 ...
- 自定义ScrollView 实现上拉下拉的回弹效果--并且子控件中有Viewpager的情况
onInterceptTouchEvent就是对子控件中Viewpager的处理:左右滑动应该让viewpager消费 public class MyScrollView extends Scroll ...
- 1.Spring MVC详解
目录 1.SpringMVC 详细介绍 2.SpringMVC 处理请求流程 3.配置前端控制器 4.配置处理器适配器 5.编写 Handler 6.配置处理器映射器 7.配置视图解析器 8.Disp ...
- [20170705]diff比较执行结果的内容.txt
[20170705]diff比较执行结果的内容.txt --//有时候需要比较2个命令输出的结果进行比较,比较笨的方法如下,例子: $ lsnrctl status LISTENER_SCAN2 & ...
- Linux删除文件实现回收站功能
转载于 https://blog.csdn.net/u014057054/article/details/52126494 从事过服务器维护的人都知道rm.rm -rf 的厉害,执行起来一点也不马虎, ...
- 非对称加密与GPG/PGP
最近浏览博客的时候,经常会看到博主展示出自己的公钥,于是对 GPG/PGP 产生兴趣.下面简单记录相关文章的链接,方便以后了解. 简介: 1991年,程序员Phil Zimmermann为了避开政府的 ...
- 进入正在运行的 docker 容器(docker container)
在使用 docker 容器的时候,我们总会想看看容器内部长什么样子:我们使用 docker exec 命令可以满足我们的期望: ➜ compose docker exec --help Usage: ...
- 常用DOS命令之通俗易懂篇
目录 常用DOS命令之通俗易懂篇 Arp 命令 Assoc 关联 At 计划服务 Attrib 属性 Cd=chdir 目录 Cipher Cls 清屏 Color 颜色 Comp 比较 Compac ...