2.1 正则表达式的使用
1.^在字符串的开始处匹配
2.$在字符串的末尾处进行匹配
3..匹配任意单个字符,包括换行符
4.[]匹配括号里任意字符
5.[^]匹配不出现在括号里的任意字符
6.a*匹配0个或者多个a
7.a+匹配一个或者多个(不包括字符串)
8.a?匹配一个或者0个a
9.a1|a2匹配a1或者a2
10.a(m)匹配m个a
11.a(m,)匹配至少m个a
12.a(m.n)匹配m到n个a
13.a(,n)匹配0到n个a
14.()将模式元素组成单一元素
mysql>select name, email from t where email REGEXP "@163[.,].com$";
2.2 巧用rand()提取随机行
随机查询
>select from t1 order by rand() limit 3;
2.3 利用group by 的with rollup
同样使用with rollup关键字之后,统计出更多的信息
注意:with rollup 不可以和order by 同时使用
>select cname, pname, count(pname) from t group by cname, pname with rollup;
2.4 用bit group function 做统计
在使用group by 语句时,同时用bit_and、 bit_or 函数来统计工作,
这两个函数的作用主要是做数值之间的逻辑位运算
mysql>select id, bit_or(kind) from order_tab group by id
对order_table表中的id分组时对kind做位和或运算
mysql>select id, bit_and(kind) from order_tab group by id
example:
mysql>create table demo(name varchar(30), score int);
mysql>insert into demo(name, score) values("user1", 10),
mysql>("user1", 20), ("user1", 30), ("user2", 1), ("user2", 2), ("user2", 3)
mysql>select bit_or(score) from demo group by name;
30
3
2.5 使用外键需要注意的问题
创建的外键的方式如下
mysql>create table temp(id int, name varchar(20), foreign key(id)
references outTable(id) on delete cascade on update cascade);
注意:Innodb类型的表支持外键,myisam类型的表,虽然可以创建外键,
但是不起作用,主要原因是不支持外键(不建议使用)
2.6 mysql help使用
mysql提示符:
1.? % 可以获得所有mysql>里的命令
2.? create
3.? opti% 因为记不住optimize的全称
4.? reg% regexp
5.查看所有用? contents可以得到所有的帮助大纲,通过这个目录可以在用?
继续往下细查