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试题的更多相关文章

  1. mysql 试题总结

    一.MySQL的复制原理以及流程 1.复制基本原理流程 1.主:binlog线程——记录下所有改变了数据库数据的语句,放进master上的binlog中: 2.从:io线程——在使用start sla ...

  2. Mysql试题集锦

    1.一张表,里面有 ID 自增主键,当 insert 了 17 条记录之后,删除了第 15,16,17 条记录,再把 Mysql 重启,再 insert 一条记录,这条记录的 ID 是 18 还是 1 ...

  3. python之路 目录

    目录 python python_基础总结1 python由来 字符编码 注释 pyc文件 python变量 导入模块 获取用户输入 流程控制if while python 基础2 编码转换 pych ...

  4. php面试题之五——MySQL数据库(基础部分)

    五.MySQL数据库 mysql_num_rows() mysql_affected_rows() 这两个函数都作用于 mysql_query($query)操作的结果,mysql_num_rows( ...

  5. 乐视mysql面试题

      http://blog.itpub.net/28916011/viewspace-2093197/ 最近,朋友去乐视面试了mysql DBA,以下是我据整理的乐视mysql面试题答案,供大家参考 ...

  6. 数据库笔试面试题库(Oracle、MySQL等)

    数据库笔试面试题库(Oracle.MySQL等) 版权声明:版权所有,欢迎分享本文,转载请保留出处,否则追究法律责任,谢谢合作. 注:本文将持续更新,可关注作者微信公众号以便获得最新笔试面试资料. ⊙ ...

  7. [面试] mysql 面试题

    最近在准备面试,mysql 实在是不熟悉,就先摘录一些网上的面试题来看一下. 1. MyISAM 和 InnoDB 区别? InnoDB 支持事务处理,支持更大的并发update 和 insert 操 ...

  8. MySQL高级知识(七)——索引面试题分析

    前言:该篇随笔通过一些案例,对索引相关的面试题进行分析. 0.准备 #1.创建test表(测试表). drop table if exists test; create table test( id ...

  9. Linux运维必会的MySQL企业面试题大全

    (1)基础笔试命令考察 1.开启MySQL服务 /etc/init.d/mysqld start service mysqld start systemctl start mysqld 2.检测端口是 ...

随机推荐

  1. 【Redis】3、Redis集群部署

    Redis 集群是一个提供在多个Redis间节点间共享数据的程序集. Redis集群并不支持处理多个keys的命令,因为这需要在不同的节点间移动数据,从而达不到像Redis那样的性能,在高负载的情况下 ...

  2. 简单说一下UWP中的JumpList

    在Windows10的10856这个版本中,微软为桌面版提供了一组新的应用交互方式,磁贴和Toast通知的个性化都有了一定的改善.针对磁贴方面,微软为我们提供了一组新的API来扩充我们对应用的交互方式 ...

  3. regular.js

    //手机号验证 var regMobile=/^1[3,5,8]\d{9}$/; //固定电话 var regPhone=/^(^0\d{2}-?\d{8}$)|(^0\d{3}-?\d{7}$)|( ...

  4. git与vscode连接的一种简单方式

    首先你得安装git,如果你还没安装git,推荐你一个视频git的下载与安装,这套视频包含VS code和git的基本使用,当你看完它,就可以不看我的这篇博客了. 废话不多说,直接进入正题: 首先进入g ...

  5. 2018-01-11 Antlr4的分析错误处理

    中文编程知乎专栏原文地址 (前文通用型的中文编程语言探讨之一: 高考, 即使是这"第一步", 即使一切顺利达到列出的功能恐怕也需要个人数年的业余时间. 看到不少乎友都远更有资本和实 ...

  6. mysql主从复制报错(一主一从):从库报错Last_SQL_Errno: 1008

    配置完主从复制后(一主一从),在从库删了一个测试库,结果在从库上使用show slave status\G查看主从同步状态报如下错误:Last_Errno: 1008,经过排查得知:主从环境删除要先在 ...

  7. loadrunner 运行场景-运行时设置

    运行场景-运行时设置 by:授客 QQ:1033553122 A.   查看.修改单个脚本的运行时设置 a)   途径1: Scenario Groups.Scenario Groups Script ...

  8. flow-vue.js移动端效果

    得益于vue.js和element,以及vue-element-extends在线表格编辑.前后端分离的后端用golang+beego框架,服务器采用腾讯云. vue的自适应做的很好,只要将侧栏加一行 ...

  9. Python进阶点

    1. 模块化设计,分而治之 2. 组合数据类型 2.1 集合类型:list.set(无序/不重复),用于数据去重 2.2 序列类型:字符串.元组.列表(有序) 2.3 字典类型:根据字典中 k/v 来 ...

  10. [20170617]vim中调用sqlplus.txt

    [20170617]vim中调用sqlplus.txt --//以前写过一篇emacs下调用sqlplus的文章,一直想学emacs,受限制自己掌握vim,对学习它没有兴趣,原链接如下:--//htt ...