数据库(mysql)
一、left join right join inner join
left join(左连接),在两张表进行连接查询时,会返回左表所有的行,即使在右表中没有匹配的记录。
right join(右连接),在两张表进行连接查询时,会返回右表所有的行,即使在左表中没有匹配的记录。
full join(全连接),在两张表进行连接查询时,返回左表和右表中所有没有匹配的行。(full join,在两张表进行连接查询时,返回左表和右表中所有没有匹配的行。)
inner join(内连接),在两张表进行连接查询时,只保留两张表中完全匹配的结果集。
二、myisam innodb(存储引擎)
myisam 锁是表级、支持全文索引、不支持事物处理、占用空间小
innodb 锁是行级、不支持全文索引、支持事物处理、占用空间大(2倍)
三、数据库优化查询方法
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在where及order by涉及的列上建立索引
2.应尽量避免在where子句中使用!=或<>操作符,否则引擎将放弃使用索引而进行全表扫描
3.任何地方都不要使用select * from t,用具体的字段列表代替“ * ”,不要返回用不到的任何字段
4.尽量避免大事务操作,提高系统并发能力
5.尽量避免向客户端返回大数据量,若数据量过大,应该考虑相应需求是否合理
四、索引、视图、事务
索引:是一个数据结构,用来查询数据库表的数据
主键索引:
primary key
作用:确认表中一条特定数据记录的位置,不能为空,一个表只有一个主键
外键索引:表中的一个字段(非主键)指向另一张表中的主键,称该字段为主键。
foreign key(外键名) references 主表(主键) ;
作用:多表查询时方便联系两表数据。限制:表类型必须是innodb(有约束效果)
唯一索引:确定某一列不能出现重复的值
unique
普通索引:
create index 索引名 on 表名(列名)
索引操作:
创建:create index 索引名 on 表名(列名)
查看:show index from 表名
删除:drop index 索引名 on 表名
视图:是一个虚拟的表,不占用物理内存、不存放数据,数据只存在基表中,相互影响
优点:简单、方便,查看数据更清楚;安全性:保护数据;不占物理内存
缺点:性能差;查询效率偏低,需要转换;修改限制:对于复杂视图(多表查询)修改是麻烦的
创建:create view 视图名 as select语句
查询:show creaw view 视图名
删除:drop view 视图名
事务:将多个SQL语句要完成的任务看出一个任务,只要有一个环节出错,所有的语句都不执行
限制:表类型必须是innodb、先关闭数据库的自动提交(set autocommit=0/1(开启))
回滚:返回前面的操作 rollback
提交:开启自动提交:set autocommit=1
关闭自动提交:set autocommit=0
数据库(mysql)的更多相关文章
- MYSQL添加新用户 MYSQL为用户创建数据库 MYSQL为新用户分配权限
1.新建用户 //登录MYSQL @>mysql -u root -p @>密码 //创建用户 mysql> insert into mysql.user(Host,User,Pas ...
- Robot Framework-DatabaseLibrary数据库(MySql)
Robot Framework-Mac版本安装 Robot Framework-Windows版本安装 Robot Framework-工具简介及入门使用 Robot Framework-Databa ...
- paip.导入数据英文音标到数据库mysql为空的问题之道解决原理
paip.导入数据英文音标到数据库mysql为空的问题之道解决原理 #---原因:mysql 导入工具的bug #---解决:使用双引号不个音标括起来. 作者 老哇的爪子 Attilax 艾龙, E ...
- paip.解决 数据库mysql增加列 字段很慢添加字段很慢
paip.解决 数据库mysql增加列 字段很慢添加字段很慢 #环境如下: mysql5.6 数据仅仅3w alter table xxx add column yyy int default ...
- Sqoop是一款开源的工具,主要用于在HADOOP(Hive)与传统的数据库(mysql、oracle...)间进行数据的传递
http://niuzhenxin.iteye.com/blog/1706203 Sqoop是一款开源的工具,主要用于在HADOOP(Hive)与传统的数据库(mysql.postgresql.. ...
- 数据库MySQL多个数据库服务冲突
一.目标名称 MySQL 二.目标版本 mysql-5.6.24-win32.1432006610.zip 三.环境信息 系统:windows 7 旗舰版 防火墙:关闭 —— 注意:如果防火墙不关闭 ...
- paip.将数据导入到在英语语音数据库mysql道路解决空原则问题
paip.将数据导入到在英语语音数据库mysql道路解决空原则问题 #---原因:mysql 导入工具bug #---解决:不要使用双引号括注音. 笔者 老哇爪 Attilax 艾龙. EMAIL: ...
- Yii Framework2.0开发教程(5)数据库mysql性能
继续<Yii Framework2.0开发教程(3)数据库mysql入门> 首先给予一定的尊重yii2数据库支持引进 Yii 基于 PHP's PDO一个成熟的数据库访问层的建立.它提供了 ...
- cpanel导入大数据库(mysql)的方法
phpmyadmin是一件很方便的在线管理MySQL数据库的工具,但对于较大的数据库的导出和导入却很容易出错.特别是导入工作,通常5M已经是它的极限了.这里,主要介绍一下如何通过cPanel导入大型的 ...
- 前端学习数据库MYSQL
这篇文章主要写了 1.数据库MYSQL 2.基本上会遇到的所有SQL语句 数据库可视化软件------Navicat 数据库里边存放的是表,表与表之间是有关联的,而且可以对表进行相关操作(增,删,改, ...
随机推荐
- 软件工程第三个程序:“WC项目” —— 文件信息统计(Word Count ) 命令行程序
软件工程第三个程序:“WC项目” —— 文件信息统计(Word Count ) 命令行程序 格式:wc.exe [parameter][filename] 在[parameter]中,用户通过输入参数 ...
- 构建模式--Adapter模式(JAVA)
适配器模式: 适配器就相当于我们的转接头,比如手机充电器插头(小米和华为的手机充电器不能共用,这时候就可以给华为的充电器按一个转接头,就可以给小米手机充电). 同理,当一个类(充电器 HuaweiCh ...
- C++复习:对C的拓展
简单的C++程序 求圆的周长和面积 数据描述: 半径,周长,面积均用实型数表示 数据处理: 输入半径 r: 计算周长 = 2*π*r : ...
- linux 3.10 tcp的accept测试
net.ipv4.tcp_abort_on_overflow 为 0 有个兄弟跟我说accept的时候,如果故意不去accept,那么客户端connect的时候,一开始很快,后来就很慢: connec ...
- codes often WA
枚举: 1.完美立方 #include<iostream> #include <cstdio> using namespace std; int main() { int N; ...
- Python 数据结构基本操作
数据结构是用来存储数据的逻辑结构,合理使用数据结构才能编写出优秀的代码.本文主要介绍Python提供的几种内置数据结构,包括元组.列表.字典的定义和基本操作方法以及介绍典型函数的使用方法. 元组结构 ...
- js版MD5 (Message-Digest Algorithm)加密算法
/**** MD5 (Message-Digest Algorithm)* http://www.webtoolkit.info/***/ var MD5 = function (string) { ...
- c++之enum(枚举)可以没有枚举名
转载自https://blog.csdn.net/u013591613/article/details/71215000 C_enum(枚举)可以没有枚举名 如果声明枚举类型时没有指定枚举名,其作用就 ...
- JAVA语言 第七周
啊因为来学校了,没有网,昨天的总结今天来写吧. num1=In.next(); student1[number].stuNum=num1; 这个添加的代码,显示添加成功了,但是根本查询不出来,烦 ...
- 04_web基础(一)之tomcat介绍
01.web引入 在这之前我们已经能够在数据库进行CRUD,在dao处进行CRUD,在service处进行CRUD,对用户来说必须在浏览器上进行CRUD,要完成这个就必须具备web知识. 而web运行 ...