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.检测端口是 ...
随机推荐
- 【Spring】8、Spring框架中的单例Beans是线程安全的么
看到这样一个问题:spring框架中的单例Beans是线程安全的么? Spring框架并没有对单例bean进行任何多线程的封装处理.关于单例bean的线程安全和并发问题需要开发者自行去搞定.但实际上, ...
- Matlab .asv是什么文件
有时在存放m文件的文件夹中会出现*.asv asv 就是auto save的意思,*.asv文件的内容和相应的*.m文件内容一样,用记事本和matlab都能打开它.它可以作为*.m文件的"备 ...
- 基于mave的dubbo分别架构
开始前,先看一下demo项目工程结构: 1.抽离接口 dubbo-api工程,根据业务抽离接口,deploy到mave nexus. public interface TestService { /* ...
- php面向对象的接口和APP接口区别
以下是php面向对象的接口:
- html5新特性学习笔记
1.语义化标签兼容问题(语义化标签只支持ie8以上,不包括ie8) 解决方法一:该标签的css中加上display:block; 通过DOM的方式创建这个标签 document.createEleme ...
- 【读书笔记】iOS-工作区的使用
一,打开Xcode--->File-->New-->Workspace--->AllProject. 二,打开桌面上的AllProject--->File--->N ...
- 网站pc端分享QQ好友,空间,微博
在开发pc端网站的过程中,涉及到邀请好友的功能,之前单纯的复制粘贴已经无法满足用户的体验.故,仿照移动端添加自动分享到QQ好友,QQ空间,QQ微博的功能. 分享到QQ好友:http://connect ...
- 伪类选择器 E:nth-child(n)、E:nth-of-type(n)
结构伪类是css3新增的类型选择器. E:nth-child(n).E:nth-of-type(n)就是其中之二.搞懂了这两个,基本上跟他俩一家的其他几个兄弟伙基本上也可以弄懂了. 首先先用文字语言来 ...
- [转]Docker容器可视化监控中心搭建
[原文链接]https://www.jianshu.com/p/9e47ffaf5e31?hmsr=toutiao.io&utm_medium=toutiao.io&utm_sourc ...
- tkinter中lable标签控件(二)
lable控件 对于tkinter来说,学起来很简单,只要设置好相应的参数即可出结果,所以不用刻意去记住这些参数.学习一遍后理解每个参数的作用是什么即可. 当下次用到的时候来笔记上看一下就行. 内容很 ...