MySQL数据库的常用技巧
这篇文章主要讲解了“MySQL数据库的常用技巧”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL数据库的常用技巧”吧!
正则表达式
-- 是否以a开头
select 'abcdefg' REGEXP '^a'
-- 是否以fg结尾 www.2cto.com
select 'abcdefg' REGEXP 'fg$'
-- 哇,汉字也管用
select STAFF_Name,STAFF_NAME REGEXP '^测试' from g_staff
select STAFF_Name from g_staff where STAFF_NAME REGEXP '^刘'=1
-- "."匹配任意单个字符
select 'abcdefg' REGEXP '.h','abcdefg' REGEXP '.g'
-- "[...]" 匹配出中括号的内的任意字符
select 'abcdefg' regexp '[weh]'
select 'abcdefg' REGEXP '^[ead]'
-- "[^...]" 匹配不出括号内的任意字符
select 'efg' REGEXP '[^XYZ]','X' REGEXP '[^XYZ]'
www.2cto.com
select * from user where email REGEXP '@163.com$'
巧用rand()提取随机行
-- 随机抽取5个用户
select * from tf_f_user order by rand() limit 5
with rollup bit_or bit_and
和group by 一起用,起到求和的作用
数据库和表名的大小写问题
总是以小写或者大写创建并引用数据库名和表名
MySQL在下名、表名、列名、别名大小写规则是这样的:
1、数据库名与表名是严格区分大小写的;
2、表的别名是严格区分大小写的;
3、列名与列的别名在所有的情况下均是忽略大小写的;
4、变量名也是严格区分大小写的; www.2cto.com
MySQL在Windows下都不区分大小写。
----------------------------------------------------------------------------------------------------
1、以Ubuntu为例:Ubuntu下安装完后是默认:区分表名的大小写,不区分列名的大小写;
2、用root帐号登录后,在/etc/mysql/my.cnf 中的[mysqld]后添加添加lower_case_table_names=1,重启MYSQL服务,这时已设置成功:不区分表名的大小写;
lower_case_table_names参数详解:
lower_case_table_names = 0
其中 0:区分大小写,1:不区分大小写
----------------------------------------------------------------------------------------------------
3、如果想在查询时区分字段值的大小写,则:字段值需要设置BINARY属性,设置的方法有多种:
A、创建时设置:
CREATE TABLE T(
A VARCHAR(10) BINARY
); www.2cto.com
B、使用alter修改:
ALTER TABLE `tablename` MODIFY COLUMN `cloname` VARCHAR(45) BINARY;
C、mysql table editor中直接勾选BINARY项。
外键注意事项
在mysql中,InnoDB存储引擎支持对外部关键字约束条件的检查。而对于其他类型的存储引擎的表,当使用 reference table_name(colomn_name)子句定义列时,可以使用reference,但是该子句没有实际效果,只作为备忘录或者注视来提醒用户目前正定义的列执行另一个表中的一个列。
感谢各位的阅读,以上就是“MySQL数据库的常用技巧”的内容了,经过本文的学习后,相信大家对MySQL数据库的常用技巧这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341