连接

主机名 端口 一个合法用户 用户口令

Mysql -u root -p -h myserver -P 9999

选择数据库

可使用USE关键字,mysql语言组成部分的一个关键字,绝不要使用关键字命名一个表或列

USE dataname;

显示数据库列表

SHOW DATABASES;

一个数据库内的表的列表(USE进入数据库的情况下)

SHOW TABLES;

SHOW也可以用来显示表列

SHOW COLUMNS FROM column;

DESCRIBE 是SHOW COLUMNS的一种快捷方式;DESCRIBE cust;

其他的SHOW 语句

SHOW STATUS 显示广泛的服务器状态信息

SHOW CREATE DATABASE 显示创建特定数据库的MYSQL语句

SHOW CREATE TABLE 显示创建特定表的MYSQL语句

SHOW GRANTS 显示授权用户的安全权限

SHOW ERRORS 显示服务器的错误信息

SHOW WARNINGS 显示服务器的警告信息

限制结果条数

sql语句后面加入下面sql语句

LIMIT 5 显示结果的前5条

LIMIT 3,4 从行3开始的后4行

LIMIT 4 OFFSET 3 从行3开始的后4行

用正则表达式进行搜索(仅支持正则表达式的一小部分)

基本字符匹配

检索列prod_name包含1000 的所有行

SELECT columnOne FROM table WHERE columnOne REGEXP '1000' ORDER BY columnOne

. 匹配任意一个字符1000 2000 3000 a000

SELECT columnOne FROM table WHERE columnOne REGEXP '.000' ORDER BY columnOne

正则匹配不区分大小写 ,如想区分匹配可在REGEXP 后面加上BINARY关键字

进行OR匹配

为搜索两个或n个字符串之一

SELECT columnOne FROM table WHERE columnOne REGEXP '1000|2000|3000' ;

匹配单个字符

SELECT columnOne FROM table WHERE columnOne REGEXP '[123] Ton'; //匹配1 Ton 或2 Ton或3 Ton

当有非匹配的内容时使用[],它是 | 的另一种形式,如1|2|3 Ton这时匹配的只有3带有Ton

如果想要得到非匹配的内容可以使用[^123]的形式

匹配范围 [0-9] [a-z][A-Z]

SELECT columnOne FROM table WHERE columnOne REGEXP '[1-5] Ton' ;

匹配特殊字符

想要匹配 . [ ] | 这些字符串怎么办呢,可以在这些字符前加 \\ 进行转义,第一个\ mysql自己解释,第二个给正则解释的

元字符 说明

\\\ \

\\f 换页

\\n 换行

\\r 回车

\\t 制表

\\v 纵向制表

使用全文本搜索

启用全文本搜索

一般在创建表时启用全文本搜索。CREATE TABLE语句接受FULLTEXT子句。它给出被索引列的一个逗号分隔的列表。

CREATE TABLE productontes

(

note_id int NOT_NULL AUTO_INCREMENT,

prod_id char(10) NOT_NULL,

note_date datetime NOT_NULL,

note_text text NOT_NULL,

PRIMARY KEY(note_id),

FULLTEXT(note_text)

)ENGINE=MyISAM;

为了进行全文本搜索,mysql根据子句FULLTEXT(note_text)的指示对它进行索引。这里FUNLL_TEXT索引了单个列,如果需要可以索引多个列,多列之间用逗号分隔

在定义之后mysql对自动维护该索引,在增加、更新和删除行时,索引随之自动更新。

不要在导入数据时使用FUNLLTEXT,否则会耗费很多时间,应该先导入数据,再定义FULLTEXT这样有助于更快的导入数据

进行全文本搜索

在索引之后,使用两个函数Match()和Against()执行全文本搜索,其中Match()指定被搜索的列Against()指定要使用的搜索表达式。

SELECT note_text FROM productnotes WHERE Match(note_text) Against('rabbit');

使用完整的Match()说明: 传递给Match()的值必须和与FULLTEXT()定义中的相同。如果指定了多个列,则必须列出它们(而且次序正确)

除非使用BINARY方式,否则全文本搜索不区分大小写

使用SELECT 语句同样可以检索出两行,但次序不同。

全文本搜索返回一文本匹配的良好程度的数据。具有较高等级的行先返回。

使用查询扩展

查询扩展用来设法放宽所返回的全文本搜索结果的范围。想找出与搜索有关的其他行。不包含要搜索才字母。

如SELECT note_text FROM productnotes WHERE Match(note_text) Against('anvils');

返回一行数据

使用查询扩展

SELECT note_text FROM productnotes

WHERE Match(note_text) Against('anvils' WITH QUERY EXPANSION);

返回7行

布尔文本搜索

Mysql支持全文本搜索的另一种形式,称为布尔方式。布尔方式可以提供以下细节:

1 要匹配的词

2 要排斥的词(如果该行包含这个词,则不返回该行,即使它已经包含指定的词也是如此)

3 排列提示(指定某些词比其他词重要,更重要的词的词等级更高)

4 表达式分组

5 另外一些内容

即使没有FULLTEXT索引也可以使用 布尔方式不同迄今为止使用的全文本搜索语法的地方在于,即使没有定义FULLTEXT索引,也可以使用它,但这是一种非常缓慢的操作(其性能将随着数据量的增加而降低)

例如:匹配包含heavy但不包含任意以rope开始的词的行,可以使用以下查询:

SELECT note_text FROM productnotes

WHERE Match(note_text) Against('heavy -rope*' IN BOOLEAN MODE)

全文本布尔操作符

+ 包含,词必须存在

- 排除,词必须不出现

> 包含,而且增加等级值

< 包含,而且减少等级值

() 吧词组成子表达式(允许这些子表达式作为一个组被包含)

~ 取消一个词的排序值

* 词尾的通配符

"" 定义一个短语,(与单词不一样,它匹配整个短语以便包含或排除这个短语)

SELECT note_text FROM productnotes

WHERE Match(note_text) Against('+hea +rop' IN BOOLEAN MODE)

//包含hea 和rop的行

SELECT note_text FROM productnotes

WHERE Match(note_text) Against('hea rop' IN BOOLEAN MODE)

//包含hea 和rop至少一个就行的行

SELECT note_text FROM productnotes

WHERE Match(note_text) Against('"hea rop"' IN BOOLEAN MODE)

//包含hea rop这个短语而不是hea 和rop的行

SELECT note_text FROM productnotes

WHERE Match(note_text) Against('>hea

//包含hea 和rop的行,增加前者的等级,降低后者的等级

SELECT note_text FROM productnotes

WHERE Match(note_text) Against('+hea +(

//包含hea 和rop的行降低后者的等级

mysql特有语法_MySQL 独有SQL语法汇总(一)相关推荐

  1. 总结mysql的基础语法_mysql 基础sql语法总结 (二)DML

    二.DML(增.删.改) 1)插入数据 第一种写法:INSERT INTO 表名 (列名1,列名2,,......)VALUES(列值1,列值2,......) 第二种写法:INSERT INTO 表 ...

  2. map语法获取index_MySQL SQL语法优化——使用Explain查看执行计划

    夜深,最近在写SQL优化的一些文章,看到私聊中,有很多人在问如何判断是否需要优化或者是如何查看MySQL执行计划,本文简要介绍一下MySQL EXPLAIN命令. EXPLAIN命令是查看优化器如何决 ...

  3. sql与mysql的区别_MySQL和SQL是什么?MySQL和SQL之间的区别有哪些

    MySQL和SQL之间的区别有哪些?很多PHP的初学者,对MySQL,MyAdmin和SQL有什么区别并不是很清楚?下面php中文网就带领大家来学习一下MySQL和SQL之间的区别.[推荐阅读:MyS ...

  4. sql常见语法_常见SQL语法错误以及解决方法

    sql常见语法 SQL Server Management Studio, errors can be tracked down easily, using the built in 错误列表&quo ...

  5. mysql8版本语法_Mysql 8.0 语法

    redis服务端启动:redis-server redis.windows.conf 添加系统服务: mysqld -- install 服务名(设置为mysql) 启动服务: net start m ...

  6. mysql数据库sql语法参考_MySQL数据库SQL语法参考

    一.资料定义 ddl(data definition language) 资料定语言是指对资料的格式和形态下定义的语言,他是每个资料库要建立时候时首先要面对的,举凡资料分哪些表格关系.表格内的有什麽栏 ...

  7. mysql数据库sql语法_Mysql数据库SQL语句整理

    mysql [-h host] -u root -p 连接MySQL -h host:host代表要连接的主机地址 可以省略 -u root:root为MySQL中的管理员用户名 -p :root用户 ...

  8. MySQL员工表题目_MySql的sql语法练习【员工、部门】

    一.dept和emp表结构: create table dept ( deptno int(100) not null, dname varchar(255), loc    varchar(255) ...

  9. mysql 索引语法_MySQL 索引:语法及案例剖析

    MySQL 索引 MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度. 打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索 ...

最新文章

  1. Quick Sort 快速排序算法
  2. 【数理知识】《数值分析》李庆扬老师-第6章-解线性方程组的迭代法
  3. MySQL 百万级数据量分页查询方法及其优化
  4. 用python做自我介绍_python入门教程NO.2 用python做个自我介绍
  5. c6011取消对null指针的引用_C++| 函数的指针参数如何传递内存?
  6. RabbitMQ-使用@RabbitListener注解消费消息
  7. 不加密,DES加密 RSA加密图
  8. 数据流中的中位数 c语言,41 数据流中的中位数(时间效率)
  9. html图片控件显示图片不清楚,jQuery图片模糊插件crossfade.js
  10. Unity 3D涂色
  11. 明源(2.5.6)二次开发 - 添加菜单
  12. Eureka常见问题解答
  13. 华为搅局ERP,北用友南金蝶格局改变?用户:NO,我们另有选择
  14. Struts框架简介
  15. 以太坊 geth 命令相关
  16. 土豆 GhostXP SP3 系统2012新年纯净版V1
  17. 继承(下)----虚继承
  18. SAP自动检验批应用中检验开始日期和检验结束日期的产生逻辑
  19. Mac删东西显示 不能完成此操作,因为发生意外错误(错误代码-50)怎么解决?
  20. 发送邮件的JavaMail和Spring提供的MailSender比较分析

热门文章

  1. ajax传递json对象 php,PHP传递通过AJAX传递JSON对象数组到前台,前台解析,遍历JSON...
  2. Python编译、运行、反编译pyc文件
  3. 相机靶面大小和显微镜FN的匹配关系
  4. winsock编程:关于因为头文件而报错的问题
  5. FFT分析的加窗和重叠
  6. LeetCode31.下一个排列 JavaScript
  7. 爬虫、请求库requests
  8. centos6.5 tomcat开机启动
  9. python中关于正则表达式二
  10. php设计模式总结-单件模式