MySQL必知必会 第7-9章

MySQL必知必会 第7-9章,第1张

在第六章介绍的所有 WHERE 子句在过滤时,使用的都是单一的条件。为了进行更强的过滤控制,MySQL允许给出多个WHERE子句,并通过 AND 或 OR *** 作符的方式组合使用。

AND *** 作符可以使用对多列的条件进行累加过滤。

OR *** 作符可以使用对多列的条件进行累加过滤。

WHERE 子句可包含任意数目的 AND 和 OR *** 作符。但是 AND 的优先级比 OR 高,应使用适当的圆括号分组 *** 作符。

注意: 任何时候都不应该过分依赖默认计算次序,使用圆括号可以增加可读性,消除歧义。

IN *** 作符用来指定条件范围,范围中每个条件都可以进行匹配。 IN 的合法值由逗号分隔,并全部括在圆括号中。

使用 IN 的优点为:

WHERE子句中的NOT *** 作符有且只有一个功能,就是否定它之后的任何条件。

注意: MySQL支持使用NOT对IN、BETWEEN和EXISTS子句取反,这与其他大多数DBMS允许使用NOT对各种条件取反有很大区别。

之前介绍的都是针对已知值的过滤。而对进行未知内容的匹配,可以使用通配符创建比较数据的搜索模式来完成。通配符的匹配,需要通过LIKE *** 作符指示MySQL完成。

% 表示任何字符出现任意次。例如,为了找到所有以 jet 起头的产品,可使用以下 SELECT 语句

注意:

下划线( _ )通配符只匹配单个字符而不是多个字符。

通配符使用技巧:

正则表达式是用来匹配文本的特殊串(字符集合),所有种类的程序设计语言、文本编辑器、 *** 作系统等都支持正则表达式。

MySQL中的正则表达式仅是正则表达式的一个子集。

为搜索两个串之一,使用( | )。

如果想匹配特定的单一字符,可以使用[]将一组指定的内容括起来。

注意:

集合可用来定义要匹配一个或多个字符,此时可以使用 - 来定义一个范围,例如 [0-9] 表示数字0到9, [a-z] 表示字母a到z。

正则表达式语句由具有特定含义的特殊字符构成。例如 | 或 - 等。如果要表示一些特殊的字母,如含 . 的值,则应该使用 \\\ 为前导。 \\\- 表示查找 - , \\\. 表示查找 . 。

注意:

为方便常见字符集的查找,可以使用预定义的字符集。称为字符类。如下图所示:

目前为止使用的所有正则表达式都试图匹配单词出现。但有时需要对匹配的数目进行更强的控制,此时可以使用下列正则表达式重复元字符来完成。

注意: 使用正则表达式时,编写某个特定的表达式几乎总是有多种方法。

目前为止,所有例子都是匹配一个串中任意位置的文本,为了匹配特定位置的文本,需要使用定位符。

注意:

1、Centos 7 默认不支持mysql (都是因为钱),所以centos 7默认支持的是mariadb

何为mariadb?

MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,使用XtraDB来代替MySQL的InnoDB。 MariaDB由MySQL的创始人Michael Widenius主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中。MariaDB名称来自Michael Widenius的女儿Maria的名字。

说到这,我个人强烈推荐大家开始学习MariaDB,当然由于我们一些项目还是要用mysql的,所以不能放弃。真不难学。

接下来 我讲一下centos 7对mysql的安装过程

1、如果一定要在centos 7上安装mysql ,需要卸载MariaDB,否则会冲突。

2、执行这个命令:rpm -qa | grep mariadb

3、这时会出现一些列表,都是mariadb的包,接下来我们要干掉

4、执行如下命令rpm -e –nodeps mariadb-libs-XXXXX.x86_64 (注意我这里的xxxx, 要根据第三步出现的列表 ,挨个干)

5、干完后,就可以安装mysql了。

6、去度娘搜索mysql的rpm包,一大把。我用的是5.6.22 .(找不到的,问我要)

ww

这里需要安装 至少2个,1个是mysql-server-xxxx.rpm (这个就是服务端), 还有一个是mysql-client-xxxx.rpm(这个是客户端,不想装?不装的话你没法初始化root密码,求懂)

7、执行 rpm -ivh “上面两个文件名 ”

8、这样就装好了。

9、然后 执行:service mysql start (如果OK,说明装好了)

10、再然后执行:service mysql stop (不要问为什么,因为默认root没有密码,你进不去,所以接下来我们要绕过密码登录)

11、执行这个命令:mysqld_safe –user=mysql –skip-grant-tables –skip-networking &mysql -u root mysql (也就是,老子不用密码直接登录,这时mysql服务必须关闭状态)

12、然后执行这个命令:UPDATE user SET Password=PASSWORD(‘XXXXX’) where USER=’root’ 这里就是对root账号初始化密码,xxx自行改,不要忘了。忘掉的话就要用第11步初始化(谁说没有密码就不能进mysql?)

13、然后执行 flush privileges (注意不要忘记最后的分号,必须有,不要问为什么)

14、然后输入quit退出mysql客户端。

15、重新启动mysql,命令:service mysql start

16、然后用root账号登录 命令:mysql -u root -p (接下来会提示你输入密码,此时屏幕不可见,不要以为死机了)

17、这时随便执行一个sql,譬如 show databases

18、这时会报错,大约是You must SET PASSWORD before executing this statement .其实就是我们常见的:第一次登录需要改密码,

19、那我们就改一改吧,反正不会怀孕

20、执行 SET PASSWORD = PASSWORD(‘xxxx’) 注意分号,也可以把密码跟上面搞得一样。

21、然后再去执行 一些sql,看看对不对。对的话quit

22、最后,我们最好吧mysql重启一下. service mysql restart

23、然后配置远程可以连接(注意刚才我们都是在本机 *** 作的哦~~~~)

24、依然mysql -u root -p 输入密码后登入

25、执行:GRANT ALL PRIVILEGES ON *.* TO ‘root’@’%’ IDENTIFIED BY ‘这里填你的密码’ WITH GRANT OPTION(这里root@后面的百分号代表全宇宙都可以连接你的mysql,只要知道密码) ,如果是仅仅允许某个IP连接,那么把这个百分号换成某个ip即可

26 、FLUSH PRIVILEGES并且退出

27、保险起见,再重启mysql服务

好吧,OK了。接下来大家可以用navicate 去连接啦


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/8613899.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-18
下一篇 2023-04-18

发表评论

登录后才能评论

评论列表(0条)

保存