您的位置:首页 > 数据库

第二章、sql语句技巧和优化

2016-05-18 22:30 477 查看
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可以得到所有的帮助大纲,通过这个目录可以在用?
    继续往下细查
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql