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、理论知识—走的更远  项目—经验


上面大多都是借鉴,当这些知识融入自己时,才算真正掌握呀。


优缺点、版本、发展史...(避免懵逼,考验深度)
原创粉丝点击