Chinaunix首页 | 论坛 | 博客
  • 博客访问: 882145
  • 博文数量: 66
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 2071
  • 用 户 组: 普通用户
  • 注册时间: 2012-12-04 15:22
个人简介

从事IT相关工作近10年,获得《网络规划师》《信息系统项目管理师》《系统分析师》、Cisco等认证,对网络和操作系统有较深理解,对认证计费系统和虚拟化技术有深入研究。

文章分类

全部博文(66)

文章存档

2019年(4)

2018年(1)

2015年(2)

2014年(16)

2013年(43)

分类: Mysql/postgreSQL

2013-08-08 11:18:13

1、Schema 模式,数据库和表的布局以及特性,模式和数据库是同义词,注意含义。
2、Primary Key(主键),唯一标示自己的一列(或一组列),能够唯一标示一条记录。注意主键:不能有相同记录,不能是NULL类型。
3、DBMS实现SQL语句都不完全相同,Database Management System。
4、MySQL是C/S结构,和其他的DBMS一样,要求执行命令前先登录到DBMS系统。MySQL在其内部保存自己的用户列表,并把每个用户与各种权限关联起来。

5、命令级的查看数据表结构:
    desc table_name;
    describe table_name;
    show columns from table_name;

    show status 显示详细的数据库系统信息
    show grants 显示授权用户信息,如何授权用户的整个过程语句

6、多条语句使用;号进行分隔,单条SQL语句后面是不需要分号的,SQL语句不区分大小写。检索的时候,数据的格式化是一个表示问题,而不是一个检索问题。检索的时候使用通配符进行检索,会导致性能较严重的下降,因为检索了不需要的字段。

7、查询的时候可以使用 like 语句进行查询,这样的话就能够使用通配符了,也就是 % 代表任意数量的字符,而下划线 _ 代表任意一个字符

8、强调一次,需要查询的内容一定要使用引号(单引号)括起来,即使是PHP变量也要,否则会导致错误的语法,查询失败等。需要查询的内容指的是字符串,如果是数字的话不需要使用引号的,变量名是需要的,即使变量的类型是数字型。

9、对应的记录限制【limit 和 distinct】
 limit 2,3 limit 3 offset 2 两种限制使用记录数量的方法,内容相同。还有select distinct(username) from radcheck 可以查询出唯一的记录,强调下:select distinct * from table 这种写法没有意义,因为主键是不会重复的,还是查询出来所有的记录。


where字句操作符比较多,比如
如果是对比的字符串,需要加上单引号,数字的话可以不加(加上也不会有影响)
!=  <>
< <= > >=
BETWEEN 1 AND 5
强调下,where子句如果需要多个条件,需要使用逻辑运算符连接,和排序GROUP BY使用逗号分隔不同。

10、逻辑运算符 AND OR 其中AND的优先级更高一些【会先计算AND,使用括号可以解决问题】,IN的话值使用逗号分隔,可以使用括号括起来实现优先级改变。NOT是对IN,BETWEEN EXISTS子句进行取反操作。IN语句有个好处,可以使用子句,比如SELECT等子句,更加方便而且IN的速度更快。

11、通配符进行通配查找:
必须使用LIKE操作符(操作符什么时候不是操作符?就是它作为谓词的时候,技术上来说,LIKE是谓词而不是操作符),%表示0个或者任意多个字符,而_表示一个字符,不能多也不能少。

内容尾字符为空格时可能干扰查找,于是可以使用 % 附加到尾部进行任意匹配,要注意的是NULL这个不会被 % 匹配,尽量减少 % 的使用,因为这个效率比较低,查找的内容非常多。

重要的一点是:尽可能的不要将 % 放到模式匹配的开头处,这样效率会极低,开销非常大。

12、正则表达式进行对应的字符匹配:基础的语法是 
select * from table where 字段 REGEXP '正则表达式内容'
正则表达是中 . 是特殊的字符 . 表示的含义是 匹配恩义一个字符,比如 .200 可以代表 a200,1200,x200 等很多的内容
正则表达式中 ^ 和 $ 符号分别代表字符串的开始和结束位置,默认的正则表达式是不区分大小写的,如果需要使其区分,可以使用 BINARAY 关键字,即 where regexp binary

逻辑运算 OR 匹配方法,比如 'for|four' 这样会匹配for或者four
匹配字符之一 [123]  实际效果和 [1|2|3] 相同

13、MySQL允许定义使用的标准字符和写法规范:
 无论是数据库、表、列都需要遵守: 长度不大于64个字符;合法的字符是数字、字母和下划线【-线是不标准的,如需使用必须用重音符括在其中】;名称可以数字开头但是不能完全是数字;任何名称中包含非法字符或者空格,都必须在查询中用重音符 ` 将其括在其中。

14、 MySQL最初是在瑞典开发的,所以默认编码是 latin1_Swedish_ci ,英语也是latin1语言,因此排序是完全相同的。

15、MySQL几个类型:CHAR固定长度,最长255个字符没有变,VARCHAR已经由255到65535个字符长了,但是好多仍然是21845个字符长度;DECIMAL类型默认的配置是DECIMAL(10,0)这样的长度,默认字符串型的数据无法通过SUM等在SQL内部进行计算的,但是使用 重音符 括上字段名即可。

16、BLOB(Binary Large Object)二进制大对象的缩写,TINYBLOB是255,BLOB到了64K,MEDIUMBLOB到了16MB,而LONGBLOB到了4GB大小。
阅读(2093) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~