A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 沈唁 于 2017-8-11 13:09 编辑

为更好使用MySQL,PHPER要了解的16个要点!




1、选取最适用的字段属性


游客,如果您要查看本帖隐藏内容请回复


2、使用连接(JOIN)来代替子查询(Sub-Queries)

游客,如果您要查看本帖隐藏内容请回复


3、使用联合(UNION)来代替手动创建的临时表

游客,如果您要查看本帖隐藏内容请回复


4、当只要一行数据时使用LIMIT 1当你查询表的有些时候,你已经知道结果只会有一条结果,单因为你可能需要去fetch游标,或是你也许会去检查返回的记录数。在这种情况下,加上LIMIT 1 可以增加性能。这样一样, MySQL数据库引擎会在找到一条数据后停止搜索,而不是继续往后查找下一条符合记录的数据。

5、为搜索字段建索引
索引并不一定就是给主键或是唯一的字段。如果在你的表中,有某个字段你总要会经常用来做搜索,那么,请为其建立索引吧。

6、在Join表的时候使用相当类型的列,并将其索引
游客,如果您要查看本帖隐藏内容请回复


7、避免SELECT *

游客,如果您要查看本帖隐藏内容请回复


8、永远为每张表设置一个ID作为主键

游客,如果您要查看本帖隐藏内容请回复


9、使用 ENUM 而不是 VARCHAR ?

游客,如果您要查看本帖隐藏内容请回复


10、尽可能的使用 NOT NULL

游客,如果您要查看本帖隐藏内容请回复


11、把IP地址存成 UNSIGNED INT

游客,如果您要查看本帖隐藏内容请回复


12、垂直分割

游客,如果您要查看本帖隐藏内容请回复


13、拆分大的 DELETE 或 INSERT 语句

游客,如果您要查看本帖隐藏内容请回复


14、越小的列会越快

游客,如果您要查看本帖隐藏内容请回复


15、选择一个正确的存储引擎

游客,如果您要查看本帖隐藏内容请回复


16、小心“永久链接”

游客,如果您要查看本帖隐藏内容请回复



84 个回复

倒序浏览
回复 使用道具 举报
66666666666666
回复 使用道具 举报
12345453654546564465456645456465
回复 使用道具 举报
感谢分享了!!!!!!!!!!!!!
回复 使用道具 举报
顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
回复 使用道具 举报
回复 使用道具 举报
测试........
回复 使用道具 举报
7257242 初级黑马 2016-11-12 11:27:34
9#
66666666666666
回复 使用道具 举报
126个常用的正则表达式分享





电子邮件:/\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/
变量:/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/

基于php常用正则表达式的整理汇总
1        /\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/  电子邮件
2        "^\d+$"  //非负整数(正整数 + 0)
3        "^[0-9]*[1-9][0-9]*$"  //正整数
4        "^((-\d+)|(0+))$"  //非正整数(负整数 + 0)
5        "^-[0-9]*[1-9][0-9]*$"  //负整数
6        "^-?\d+$"    //整数
7        "^\d+(\.\d+)?$"  //非负浮点数(正浮点数 + 0)
8        "^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$"  //正浮点数
9        "^((-\d+(\.\d+)?)|(0+(\.0+)?))$"  //非正浮点数(负浮点数 + 0)
10        "^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$"  //负浮点数
11        "^(-?\d+)(\.\d+)?$"  //浮点数
12        "^[A-Za-z]+$"  //由26个英文字母组成的字符串
13        "^[A-Z]+$"  //由26个英文字母的大写组成的字符串
14        "^[a-z]+$"  //由26个英文字母的小写组成的字符串
15        "^[A-Za-z0-9]+$"  //由数字和26个英文字母组成的字符串
16        "^\w+$"  //由数字、26个英文字母或者下划线组成的字符串
17        "^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$"    //email地址
18        "^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$"  //url
19        /^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$/   //  年-月-日
20        /^((0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$/   // 月/日/年
21        "^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$"   //Emil
22        /^((\+?[0-9]{2,4}\-[0-9]{3,4}\-)|([0-9]{3,4}\-))?([0-9]{7,8})(\-[0-9]+)?$/     //电话号码
23        "^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])$"   //IP地址
24        匹配中文字符的正则表达式: [\u4e00-\u9fa5]
25        匹配双字节字符(包括汉字在内):[^\x00-\xff]
26        匹配空行的正则表达式:\n[\s| ]*\r
27        匹配HTML标记的正则表达式:/<(.*)>.*<\/\1>|<(.*) \/>/
28        匹配首尾空格的正则表达式:(^\s*)|(\s*$)
29        匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
30        匹配网址URL的正则表达式:^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$
31        匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
32        匹配国内电话号码:(\d{3}-|\d{4}-)?(\d{8}|\d{7})?
33        匹配腾讯QQ号:^[1-9]*[1-9][0-9]*$
34        元字符及其在正则表达式上下文中的行为:
35        \ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个后向引用、或一个八进制转义符。
36        ^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的Multiline 属性,^ 也匹配 ’\n’ 或 ’\r’ 之后的位置。
37        $ 匹配输入字符串的结束位置。如果设置了 RegExp 对象的Multiline 属性,$ 也匹配 ’\n’ 或 ’\r’ 之前的位置。
38        * 匹配前面的子表达式零次或多次。
39        + 匹配前面的子表达式一次或多次。+ 等价于 {1,}。
40        ? 匹配前面的子表达式零次或一次。? 等价于 {0,1}。
41        {n} n 是一个非负整数,匹配确定的n 次。
42        {n,} n 是一个非负整数,至少匹配n 次。
43        {n,m} m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。在逗号和两个数之间不能有空格。
44        ? 当该字符紧跟在任何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。
45        . 匹配除 "\n" 之外的任何单个字符。要匹配包括 ’\n’ 在内的任何字符,请使用象 ’[.\n]’ 的模式。
46        (pattern) 匹配pattern 并获取这一匹配。
47        (?:pattern) 匹配pattern 但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。
48        (?=pattern) 正向预查,在任何匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。
49        (?!pattern) 负向预查,与(?=pattern)作用相反
50        x|y 匹配 x 或 y。
51        [xyz] 字符集合。
52        [^xyz] 负值字符集合。
53        [a-z] 字符范围,匹配指定范围内的任意字符。
54        [^a-z] 负值字符范围,匹配任何不在指定范围内的任意字符。
55        \b 匹配一个单词边界,也就是指单词和空格间的位置。
56        \B 匹配非单词边界。
57        \cx 匹配由x指明的控制字符。
58        \d 匹配一个数字字符。等价于 [0-9]。
59        \D 匹配一个非数字字符。等价于 [^0-9]。
60        \f 匹配一个换页符。等价于 \x0c 和 \cL。



61-126个常用正则表达式,回复帖子就可以全部看到(你的每一个回帖,都能让该贴置顶一次,这样该帖就能分享给更多人了),感谢你的回帖!

本帖隐藏的内容

61        \n 匹配一个换行符。等价于 \x0a 和 \cJ。
62        \r 匹配一个回车符。等价于 \x0d 和 \cM。
63        \s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于[ \f\n\r\t\v]。
64        \S 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。
65        \t 匹配一个制表符。等价于 \x09 和 \cI。
66        \v 匹配一个垂直制表符。等价于 \x0b 和 \cK。
67        \w 匹配包括下划线的任何单词字符。等价于’[A-Za-z0-9_]’。
68        \W 匹配任何非单词字符。等价于 ’[^A-Za-z0-9_]’。
69        \xn 匹配 n,其中 n 为十六进制转义值。十六进制转义值必须为确定的两个数字长。
70        \num 匹配 num,其中num是一个正整数。对所获取的匹配的引用。
71        \n 标识一个八进制转义值或一个后向引用。如果 \n 之前至少 n 个获取的子表达式,则 n 为后向引用。否则,如果 n 为八进制数字 (0-7),则 n 为一个八进制转义值。
72        \nm 标识一个八进制转义值或一个后向引用。如果 \nm 之前至少有is preceded by at least nm 个获取得子表达式,则 nm 为后向引用。如果 \nm 之前至少有 n 个获取,则 n 为一个后跟文字 m 的后向引用。如果前面的条件都不满足,若 n 和 m 均为八进制数字 (0-7),则 \nm 将匹配八进制转义值 nm。
73        \nml 如果 n 为八进制数字 (0-3),且 m 和 l 均为八进制数字 (0-7),则匹配八进制转义值 nml。
74        \un 匹配 n,其中 n 是一个用四个十六进制数字表示的Unicode字符。
75        匹配中文字符的正则表达式: [u4e00-u9fa5]
76        匹配双字节字符(包括汉字在内):[^x00-xff]
77        匹配空行的正则表达式:n[s| ]*r
78        匹配HTML标记的正则表达式:/<(.*)>.*</1>|<(.*) />/
79        匹配首尾空格的正则表达式:(^s*)|(s*$)
80        匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
81        匹配网址URL的正则表达式:http://([w-]+.)+[w-]+(/[w- ./?%&=]*)?
82        利用正则表达式限制网页表单里的文本框输入内容:
83        用正则表达式限制只能输入中文:
onkeyup="value=value.replace(/[^u4E00-u9FA5]/g,'')"
84        用正则表达式限制只能输入全角字符:
onkeyup="value=value.replace(/[^uFF00-uFFFF]/g,'')"
85        用正则表达式限制只能输入数字:
onkeyup="value=value.replace(/[^d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^d]/g,''))"
86        用正则表达式限制只能输入数字和英文:
onkeyup="value=value.replace(/[W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^d]/g,''))"
87        =========常用正则式
88        匹配中文字符的正则表达式: [\u4e00-\u9fa5]
89        匹配双字节字符(包括汉字在内):[^\x00-\xff]
90        匹配空行的正则表达式:\n[\s| ]*\r
91        匹配HTML标记的正则表达式:/<(.*)>.*<\/\1>|<(.*) \/>/
92        匹配首尾空格的正则表达式:(^\s*)|(\s*$)
93        匹配IP地址的正则表达式:/(\d+)\.(\d+)\.(\d+)\.(\d+)/g //
94        匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
95        匹配网址URL的正则表达式:http://(/[\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
96        sql语句:^(select|drop|delete|create|update|insert).*$
97        非负整数:^\d+$
98        正整数:^[0-9]*[1-9][0-9]*$
99        非正整数:^((-\d+)|(0+))$
100        负整数:^-[0-9]*[1-9][0-9]*$
101        整数:^-?\d+$
102        非负浮点数:^\d+(\.\d+)?$
103        正浮点数:^((0-9)+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
104        非正浮点数:^((-\d+\.\d+)?)|(0+(\.0+)?))$
105        负浮点数:^(-((正浮点数正则式)))$
106        英文字符串:^[A-Za-z]+$
107        英文大写串:^[A-Z]+$
108        英文小写串:^[a-z]+$
109        英文字符数字串:^[A-Za-z0-9]+$
110        英数字加下划线串:^\w+$
111        E-mail地址:^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$
112        URL:^[a-zA-Z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\s*)?$
113        ^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$
114        邮政编码:^[1-9]\d{5}$
115        中文:^[\u0391-\uFFE5]+$
116        电话号码:^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$
117        手机号码:^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$
118        双字节字符(包括汉字在内):^\x00-\xff
119        匹配首尾空格:(^\s*)|(\s*$)(像vbscript那样的trim函数)
120        匹配HTML标记:<(.*)>.*<\/\1>|<(.*) \/>
121        匹配空行:\n[\s| ]*\r
122        提取信息中的网络链接:(h|H)(r|R)(e|E)(f|F) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)?
123        提取信息中的邮件地址:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
124        提取信息中的图片链接:(s|S)(r|R)(c|C) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)?
125        提取信息中的IP地址:(\d+)\.(\d+)\.(\d+)\.(\d+)
126        提取信息中的中国手机号码:(86)*0*13\d{9}
回复 使用道具 举报
ewijhfheksdjwla
回复 使用道具 举报
dxp 初级黑马 2016-11-15 17:10:03
12#
好好学习,天天向上。。。
回复 使用道具 举报
晓宇 初级黑马 2016-11-16 17:54:44
13#
好吧 来学习了
回复 使用道具 举报
eldoon 初级黑马 2016-11-17 10:49:40
14#
RE: 为更好使用MySQL,PHPER要了解的16个要点! [修改]
回复 使用道具 举报
1111111111111111111111111111111111111111111111111111111111111111111111111111111111111
回复 使用道具 举报
谢谢分享
回复 使用道具 举报
16个要点
回复 使用道具 举报
fasddddddddddddddddddddddddddddd
回复 使用道具 举报
Antik1 初级黑马 2016-11-20 19:44:49
19#
为更好使用MySQL,PHPER要了解的16个要点!
回复 使用道具 举报
lanbao 初级黑马 2016-11-22 14:37:10
20#
haohaohaophaohaohao
回复 使用道具 举报
12345下一页
您需要登录后才可以回帖 登录 | 加入黑马