MYSQL不太熟练的+其他
来源:互联网 发布:mac镜像 编辑:程序博客网 时间:2024/06/06 20:29
MYSQL不太熟练的+其他(优缺点等)
1、执行sql脚本
恢复数据库:mysql -uroot -p 密码 数据库名 < 备份文件.sql
(1)未连接数据库:mysql -h localhost -u root -p 123456 < F:\sql\user.sql(注意路径不加引号)
(2)已连接数据库,source F:\sql\user.sql
参考:http://www.cnblogs.com/kenkofox/archive/2011/01/14/1935422.html
2、TRUNCATE
TRUNCATE (TABLE) tb; 删除表中的所有数据,不能与WHERE一起使用
TRUNCATE和DELETE区别
1、事务:TRUNCATE是不可以ROLLBACK的,但是DELETE是可以ROLLBACK的;
原因:TRUNCATE是删除整表数据(DDL语句,隐式提交),DELETE是一行一行的删除,可以ROLLBACK;
2、效果:TRUNCATE删除后将重置水平线和索引(id从零开始),delete不会删除索引
3、TRUNCATE不能触发任何Delete触发器
4、DELETE删除可以返回行数
参考:http://www.cnblogs.com/shuaiandjun/p/6042600.html
3、COUNT(1)
和COUNT(*)效果是一样的:对行的数目进行计算,包括NULL
COUNT(column)对特定的列进行计算,不包括NULL
性能问题:
(1)任何情况下SELECT COUNT(*) FROM tablename是最优选择
(2)尽量减少SELECT COUNT(*) FROM tablename WHERE COL = 'value' 这种查询
(3)杜绝SELECT COUNT(COL) FROM tablename WHERE COL2 = 'value' 的出现
如果表没有主键,那么COUNT(1)比COUNT(*)快。
如果有主键,那么COUNT(主键,联合主键)比COUNT(*)快。
如果表只有一个字段,COUNT(*)最快。
COUNT(1)跟COUNT(主键)一样,只扫描主键。COUNT(*)跟COUNT(非主键)一样,扫描整个表。明显前者更快一些。
参考:http://blog.csdn.net/lzm18064126848/article/details/50491956
注:COUNT(NULL) = 0;(在我这边执行报错)
4、LIKE
%:表示任意个字符。可匹配任意类型和长度的字符。
_:表示任意单个字符。
如果真的要查%或者_,用escapse,转义字符后面的%或_就不作为通配符了,注意前面没有转义的%和_仍然
起通配符作用
SELECT username
FROM user
WHERE username LIKE '%xiao/_%' escapse '/';
SELECT username
FROM user
WHERE username LIKE '%xiao/%%' escapse '/';
参考:http://blog.csdn.net/my2010sam/article/details/19109235
5、VARCHAR、CHAR
(1)CHAR(M) 定长字符串,可能会产生空间浪费问题,但存取速度快,M不能超过255。VARCHAR(M)变长字符串,
不会产生空间浪费,但存取速度慢,M不能超65535。
6、VARCHAR(50)中50的涵义
mysql4.0版本以下,varchar(50),指的是50字节,如果存在UTF8汉字时,只能存放16个(每个汉字3字节)。
mysql5.0版本以上,varchar(50),指的是50字符,无论存放的是数字、字母还是UTF8汉字(每个汉字
3字节),都可以存放50个。
7、INT(M)
当我们在选择使用INT类型的时候,不论是INT(3)还是INT(11),它在数据库里面存储的都是4个字节的长度。INT(M)其中M指示最大显示宽
度。最大的有效显示宽度是255.这里的M代表的
并不是存储在数据库中的具体的长度,认为INT(3)只能存储3个长度的数字,INT(11)就会存储
11个长度的数字,这是大错特错的。在使用INT(3)的时候如果你输入的
10,会默认给你存储010,也就是说这个3代表的是默认的一个宽度,当
你不足3位时,会帮你补全,当你超过3位时,就没有任何的影响。要查看出不同效果记得在创建类型的时候加zerofill这个值,表示用0填充,否则是看不出效果的。
INT类型数据的字节大小是固定的4个字节;但是INT(5)和INT(11)的区别在于,显示的数据位数一个是5位一个是11位,在开启zerofill
(填充零)情况下,若INT(5)存储的数字长度是小于5的则会在不足位数
的前面补充0,但是如果INT(5)中存储的数字长度大于5位的话,则按照
实际存储的显示(数据大小在INT类型的4个字节范围内即可),也就是
说INT(M)不代表数据的长度。
总结:
int(M)M表示的不是数据的最大长度,只是数据宽度,并不影响存储多少位长度的数据;varchar(M)M表示的是varchar类型数据在数据库中存储的最大长度,超过则不存。
8、MYSQL数据库的特点有哪些?
(1)MYSQL是一个关系数据库管理系统,把数据存储在表格中,使用标准的结构化查询语言-SQL访问数据库;
(2)MYSQL是完全免费的,在网上可以任意下载,并且可以查看到
它的源文件,进行必要的修改;
(3)MYSQL服务器的功能齐全,运行速度很快,十分可靠,有很好
的安全感;
(4)MYSQL服务器在客户机,服务器嵌入系统中使用,是一个客户机/服务器系统,能够支持多线程,支持不同的客户程序和管理工具;
(5)MYSQL是一个小型关系型数据库管理系统,开发者为瑞典MYSQLAB公司,现在已经被Sun公司收购,后来Sun公司被ORACLE公司收购,支持FreeBSD、Linux、MAC、Windows等多种操作系
统。与其他的大型数据库例如Oracle、DB2、SQL Server等相比功能稍弱一些。
6、MYSQL优点(相比其他数据库)
(1)可以处理拥有上千万条记录的大型数据;
(2)支持常见的SQL语句规范;
(3)可移植性高,安装简单小巧;
(4)良好的运行效率,有丰富信息的网络支持;
(5)调试、管理,优化简单(相对其他大型数据库)。
7、MYSQL、ORACLE、SQLSEVER
8、LEFT JOIN ... ON(ON总是写成WHERE)
9、PHP语言优缺点
10、PHP、JAVA、...
11、JS语言优缺点
12、Angular JS是谁开发?第几个版本了?2和3区别?
13、为什么用Angular JS?用2还是3?
14、为什么选择这种技术?渊源等
15、理论知识—走的更远 项目—经验
上面大多都是借鉴,当这些知识融入自己时,才算真正掌握呀。
优缺点、版本、发展史...(避免懵逼,考验深度)
1、执行sql脚本
恢复数据库:mysql -uroot -p 密码 数据库名 < 备份文件.sql
(1)未连接数据库:mysql -h localhost -u root -p 123456 < F:\sql\user.sql(注意路径不加引号)
(2)已连接数据库,source F:\sql\user.sql
参考:http://www.cnblogs.com/kenkofox/archive/2011/01/14/1935422.html
2、TRUNCATE
TRUNCATE (TABLE) tb; 删除表中的所有数据,不能与WHERE一起使用
TRUNCATE和DELETE区别
1、事务:TRUNCATE是不可以ROLLBACK的,但是DELETE是可以ROLLBACK的;
原因:TRUNCATE是删除整表数据(DDL语句,隐式提交),DELETE是一行一行的删除,可以ROLLBACK;
2、效果:TRUNCATE删除后将重置水平线和索引(id从零开始),delete不会删除索引
3、TRUNCATE不能触发任何Delete触发器
4、DELETE删除可以返回行数
参考:http://www.cnblogs.com/shuaiandjun/p/6042600.html
3、COUNT(1)
和COUNT(*)效果是一样的:对行的数目进行计算,包括NULL
COUNT(column)对特定的列进行计算,不包括NULL
性能问题:
(1)任何情况下SELECT COUNT(*) FROM tablename是最优选择
(2)尽量减少SELECT COUNT(*) FROM tablename WHERE COL = 'value' 这种查询
(3)杜绝SELECT COUNT(COL) FROM tablename WHERE COL2 = 'value' 的出现
如果表没有主键,那么COUNT(1)比COUNT(*)快。
如果有主键,那么COUNT(主键,联合主键)比COUNT(*)快。
如果表只有一个字段,COUNT(*)最快。
COUNT(1)跟COUNT(主键)一样,只扫描主键。COUNT(*)跟COUNT(非主键)一样,扫描整个表。明显前者更快一些。
参考:http://blog.csdn.net/lzm18064126848/article/details/50491956
注:COUNT(NULL) = 0;(在我这边执行报错)
4、LIKE
%:表示任意个字符。可匹配任意类型和长度的字符。
_:表示任意单个字符。
如果真的要查%或者_,用escapse,转义字符后面的%或_就不作为通配符了,注意前面没有转义的%和_仍然
起通配符作用
SELECT username
FROM user
WHERE username LIKE '%xiao/_%' escapse '/';
SELECT username
FROM user
WHERE username LIKE '%xiao/%%' escapse '/';
参考:http://blog.csdn.net/my2010sam/article/details/19109235
5、VARCHAR、CHAR
(1)CHAR(M) 定长字符串,可能会产生空间浪费问题,但存取速度快,M不能超过255。VARCHAR(M)变长字符串,
不会产生空间浪费,但存取速度慢,M不能超65535。
6、VARCHAR(50)中50的涵义
mysql4.0版本以下,varchar(50),指的是50字节,如果存在UTF8汉字时,只能存放16个(每个汉字3字节)。
mysql5.0版本以上,varchar(50),指的是50字符,无论存放的是数字、字母还是UTF8汉字(每个汉字
3字节),都可以存放50个。
7、INT(M)
当我们在选择使用INT类型的时候,不论是INT(3)还是INT(11),它在数据库里面存储的都是4个字节的长度。INT(M)其中M指示最大显示宽
度。最大的有效显示宽度是255.这里的M代表的
并不是存储在数据库中的具体的长度,认为INT(3)只能存储3个长度的数字,INT(11)就会存储
11个长度的数字,这是大错特错的。在使用INT(3)的时候如果你输入的
10,会默认给你存储010,也就是说这个3代表的是默认的一个宽度,当
你不足3位时,会帮你补全,当你超过3位时,就没有任何的影响。要查看出不同效果记得在创建类型的时候加zerofill这个值,表示用0填充,否则是看不出效果的。
INT类型数据的字节大小是固定的4个字节;但是INT(5)和INT(11)的区别在于,显示的数据位数一个是5位一个是11位,在开启zerofill
(填充零)情况下,若INT(5)存储的数字长度是小于5的则会在不足位数
的前面补充0,但是如果INT(5)中存储的数字长度大于5位的话,则按照
实际存储的显示(数据大小在INT类型的4个字节范围内即可),也就是
说INT(M)不代表数据的长度。
总结:
int(M)M表示的不是数据的最大长度,只是数据宽度,并不影响存储多少位长度的数据;varchar(M)M表示的是varchar类型数据在数据库中存储的最大长度,超过则不存。
8、MYSQL数据库的特点有哪些?
(1)MYSQL是一个关系数据库管理系统,把数据存储在表格中,使用标准的结构化查询语言-SQL访问数据库;
(2)MYSQL是完全免费的,在网上可以任意下载,并且可以查看到
它的源文件,进行必要的修改;
(3)MYSQL服务器的功能齐全,运行速度很快,十分可靠,有很好
的安全感;
(4)MYSQL服务器在客户机,服务器嵌入系统中使用,是一个客户机/服务器系统,能够支持多线程,支持不同的客户程序和管理工具;
(5)MYSQL是一个小型关系型数据库管理系统,开发者为瑞典MYSQLAB公司,现在已经被Sun公司收购,后来Sun公司被ORACLE公司收购,支持FreeBSD、Linux、MAC、Windows等多种操作系
统。与其他的大型数据库例如Oracle、DB2、SQL Server等相比功能稍弱一些。
6、MYSQL优点(相比其他数据库)
(1)可以处理拥有上千万条记录的大型数据;
(2)支持常见的SQL语句规范;
(3)可移植性高,安装简单小巧;
(4)良好的运行效率,有丰富信息的网络支持;
(5)调试、管理,优化简单(相对其他大型数据库)。
7、MYSQL、ORACLE、SQLSEVER
8、LEFT JOIN ... ON(ON总是写成WHERE)
9、PHP语言优缺点
10、PHP、JAVA、...
11、JS语言优缺点
12、Angular JS是谁开发?第几个版本了?2和3区别?
13、为什么用Angular JS?用2还是3?
14、为什么选择这种技术?渊源等
15、理论知识—走的更远 项目—经验
上面大多都是借鉴,当这些知识融入自己时,才算真正掌握呀。
优缺点、版本、发展史...(避免懵逼,考验深度)
阅读全文
0 0
- MYSQL不太熟练的+其他
- 解决MySQL其他机器连接不上的问题
- mysql 默认是表级锁一些不太常用命令
- mysql 不太熟悉概念收集
- 不太确定的想法
- 不太明白的调用。
- MySql面试前必须练习到熟练的
- MySql面试前必须练习到熟练的。
- 一些不太常用的asp语句
- 几个不太常用的HTML Tag
- 不太常用的正则表达式
- 一次不太完美的软件工程总结
- 不太成功的hz面试
- Java不太注意的陷阱
- 一些不太常用的sql语法
- Android最大的问题:太不人性化!
- 不太吸引人的成就系统
- 几个不太准确的C++概念
- NIOS EDS最容易出错的地方
- String类为什么是final
- mySQL多表联合删除
- RTSP请求详解及RTP 基于UDP和TCP协议传输数据的对比
- 模拟银行定期存款
- MYSQL不太熟练的+其他
- js中的call和apply方法
- FPGA论剑
- eclipse&&myeclipse debug调试教程
- 音视频编解码基础知识(1)- 音视频编解码过程
- Unity3D 初识序列化相反序列化
- MYSQL 术语(官网翻译)-B
- 从零开始前端学习[34]:Cs3中的2D变换,transform变换,
- 十进制,八进制,十六进制数的表示方法