`
happmaoo
  • 浏览: 4340451 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

关于MySQL的一些东西

阅读更多

MySQL命令:

mysql –h localhost –u root –p

quit

select version()

select current_date

select version(), current_date

select sin(pi()/2)

select now()

select user()

show databases

grant all on database.* to ‘username’@’localhost’

use database

show tables

create table …

alter table …

describe table

将数据装入表中

load data方法:

创建一个文本文件,每个条目一行,用tab分开,各个列与create table中的列次序相对应,不知道的值为NULL\N代替。

LOAD DATA LOCAL INFILE ‘/path/filename.txt’ INTO TABLE table_name;

注意windows\r\n做为行的结束符因此应该使用

LOAD DATA LOCAL INFILE ‘/path/filename.txt’ INTO TABLE table_name LINES TERMINATED BY ‘\r\n’;

如果想一次增加一条新的记录使用INSERT语句

从表检索信息

SELECT what_to_select

FROM which_table

WHERE conditions_to_satisfy;

SELECT * FROM table

UPDATE table SET …

SELECT DISTINCT column FROM table WHERE …

ORDER BY column

强制执行区分大小写ORDER BY BINARY column

ORDER BY column DESC/ASC

可以按照不同的方向对不同的列进行排序:

SELECT name, species, birth FROM pet ORDER BY species, birth DESC;

即按照species升序,按照birth降序

MySQL提供了丰富的日期处理函数:

MySQL提供几个日期部分的提取函数:YEAR(), MONTH(), DAYOFMONTH()

NULL需要使用IS NULL或者IS NOT NULL来判断



MySQL中的模式匹配:

<!--[if !supportLists]-->1. <!--[endif]-->标准的SQL模式匹配,不能使用=!=,而应该使用LIKENOT LIKE

“_”匹配任何单个字符,”%”匹配任意数目的字符(包含零字符)

默认情况是不区分大小写

<!--[if !supportLists]-->2. <!--[endif]-->同时MySQL提供扩展的正则表达式匹配的格式

使用REGEXPNOT REGEXP(或者叫做RLIKENOT RLIKE)

扩展的字符有:

. 匹配单个字符;

[…]匹配方括号内的任何字符,如[abc]

[a-z], [0-9]

*匹配0个或多个在它前面的字符,如x*

.*匹配任何数量的任何字符

同时可以定位一个模式必须匹配被匹配字符串的开始或结尾,可以在模式开始使用”^”结尾使用”$”

SELECT * FROM pet WHERE name REGEXP '^b';

寻找b开头的名字

字符串比较函数

  • expr LIKE pat [ESCAPE 'escape-char']

模式匹配,使用SQL简单正规表达式比较。返回1 (TRUE) 0 (FALSE) expr pat 中任何一个为 NULL,则结果为 NULL

模式不需要为文字字符串。例如,可以被指定为一个字符串表达式或表列。

在模式中可以同LIKE一起使用以下两种通配符:

字符

说明

%

匹配任何数目的字符,甚至包括零字符

_

只能匹配一种字符

mysql> SELECT 'David!' LIKE 'David_';

-> 1

mysql> SELECT 'David!' LIKE '%D%v%';

-> 1

若要对通配符的文字实例进行检验, 可将转义字符放在该字符前面。如果没有指定 ESCAPE字符, 则假设为‘\’

字符串

说明

\%

匹配一个 ‘%’字符

\_

匹配一个 ‘_’ 字符

mysql> SELECT 'David!' LIKE 'David\_';

-> 0

mysql> SELECT 'David_' LIKE 'David\_';

-> 1

要指定一个不同的转义字符,可使用ESCAPE语句:

mysql> SELECT 'David_' LIKE 'David|_' ESCAPE '|';

-> 1

转义序列可以为空,也可以是一个字符的长度。 MySQL <chsdate year="1899" month="12" day="30" islunardate="False" isrocdate="False" w:st="on">5.1.2</chsdate>开始, 如若 NO_BACKSLASH_ESCAPES SQL模式被激活, 则该序列不能为空。

以下两个语句举例说明了字符串比较不区分大小写,除非其中一个操作数为二进制字符串:

mysql> SELECT 'abc' LIKE 'ABC';

-> 1

mysql> SELECT 'abc' LIKE BINARY 'ABC';

-> 0

MySQL, LIKE 允许出现在数字表达式中。 (这是标准SQL LIKE 的延伸)。

mysql> SELECT 10 LIKE '1%';

-> 1

注释 由于 MySQL在字符串中使用 C转义语法(例如, ‘\n’代表一个换行字符),在LIKE字符串中,必须将用到的‘\’双写。例如, 若要查找 ‘\n’, 必须将其写成 ‘\\n’。而若要查找 ‘\’, 则必须将其写成 it as ‘\\\\’;原因是反斜线符号会被语法分析程序剥离一次,在进行模式匹配时,又会被剥离一次,最后会剩下一个反斜线符号接受匹配。

  • expr NOT LIKE pat [ESCAPE 'escape-char']

这相当于 NOT (expr LIKE pat [ESCAPE 'escape-char'])


计数行

SELECT COUNT(*) …

GROUP BY结合使用

查询多个表:

单个表的自连接;

多个表之间的连接;

批处理模式下使用MySQL

Mysql <batch-file

其中batch-file即是要运行的脚本文件

如果想分页显示使用mysql <batch-file|more, 或者将结果输出到mysql <batch-file>mysql.out

MySQL一些查询的例子:

列的最大值MAX等,参看MySQL Tutorial.

用户变量:

可以先在用户变量中保存值然后在以后引用它;这样可以将值从一个语句传递到另一个语句。用户变量与连接有关。也就是说,一个客户端定义的变量不能被其它客户端看到或使用。当客户端退出时,该客户端连接的所有变量将自动释放。

使用用户变量的例子,

SELECT @min_price:=MIN(price),@max_price:=MAX(price) FROM shop;

mysql> SELECT * FROM shop WHERE price=@min_price OR price=@max_price;

可以使用LAST_INSERT_ID()函数获取插入新的记录的ID

INSERT INTO person VALUES (NULL, 'Antonio Paz');

SELECT @last := LAST_INSERT_ID();

INSERT INTO shirt VALUES

(NULL, 'polo', 'blue', @last),

(NULL, 'dress', 'white', @last),

(NULL, 't-shirt', 'blue', @last);

或者使用mysql_insert_id()MySQL API函数获取新插入记录的ID

根据两个键搜索

可以充分利用使用单关键字的OR子句,如同AND的处理。

一个比较灵活的例子是寻找两个通过OR组合到一起的关键字:

SELECT field1_index, field2_index FROM test_table

WHERE field1_index = '1' OR field2_index = '1'

该情形是已经优化过的。参见7.2.6节,索引合并优化

还可以使用UNION将两个单独的SELECT语句的输出合成到一起来更有效地解决该问题。参见13.2.7.2节,“UNION语法

每个SELECT只搜索一个关键字,可以进行优化:

SELECT field1_index, field2_index

 FROM test_table WHERE field1_index = '1'

<place w:st="on"><span lang="EN-US" style='font-size: 10.5pt; font-family: "Times New Roman";'>UNION</span></place>

SELECT field1_index, field2_index

 FROM test_table WHERE field2_index = '1';





更多的参考资料:

MySQL参考手册


MySQL教程

MySQL正则表达式


分享到:
评论

相关推荐

    mysql命令 很实用的东西

    mysql常用命令 很实用的东西mysql常用命令 很实用的东西mysql常用命令 很实用的东西mysql常用命令 很实用的东西mysql常用命令 很实用的东西mysql常用命令 很实用的东西mysql常用命令 很实用的东西mysql常用命令 很...

    mysql简明教程比较基础的东西

    mysql基础 对于初学者是个不错的东西 希望对大家有用 mysql基础 对于初学者是个不错的东西 希望对大家有用 mysql基础 对于初学者是个不错的东西 希望对大家有用

    mysql8一键化安装脚本

    1 可以自由安装在任何目录下(直接回车默认安装在/auto),而且所有的东西都在此目录下,不会出现在其他目录中 2 内置可以在存储过程中执行Linux命令插件 3 安装完成后,cd /auto/mysql/support-files/, ./mysql.xs....

    昨天搞的CSV导入Mysql的东西。

    昨天搞了一个CSV导入MYSQL的东西,发现LOADDATA命令不是很方便。 比较简陋的一个东西,日后还会不断完善。有什么建议请发邮件到tailspin@126.com. 使用前请先阅读文档中的readme.txt

    mysql for liunx 免安装版

    2. 把mysql.tar.gz 复制到对应的/usr/local目录下: Cd /usr/local Tar –xvzf mysql.tar.gz 然后执行 groupadd mysql useradd -g mysql mysql chown -R root:mysql /usr/local/mysql/ chown -R mysql:mysql /usr/...

    深入解析mysql.sock不见的问题

    之前在网上看过好多关于mysql.sock不见的问题,并没有关注这个东西存在的意义,直到自己的mysql也出现了相同的问题。让人纠结了一把…… 代码如下:zhouqian@zhou:~$ mysqlERROR 2002 (HY000): Can’t connect to ...

    mysql的简单应用

    安装完毕后在cmd 里面 以 mysql -uroot -p;... 显示表格 后面的操作属于 sql 基础的东西 自己查哈 就 知道了 退出 为 quit; 指令. 一定 要有 分号 再 按确定键. mysql的安装不需要配置环境变量。

    MySQL数据库命令大全

    MySQL数据库命令大全 初学者的好东西!!

    Mysql的卸载 Mysql完全卸载 强力卸载mysql

    1、查看mysql安装了哪些东西 rpm -qa |grep -i mysql 2、开始卸载 yum remove mysql-community-common-5.7.20-1.el7.x86_64 yum remove mysql-community-client-5.7.20-1.el7.x86_64 yum remove mysql57-community-...

    MySql数据库性能优化

    MySql5.6性能优化。MySql5.6性能优化。MySql5.6性能优化。

    全国省市县mysql数据库脚本(好东西啊!)

    全国省市县mysql数据库脚本(好东西啊!)

    MySQL配置文件解析

    MySQL参数优化对于新手来讲,是比较难懂的东西,其实这个参数优化,是个很复杂的东西,对于不同的网站,及其在线量,访问量,帖子数量,网络情况,以及机器硬件配置都有关系,优化不可能一次性完成,需要不断的观察...

    MySQL入门教程

    此外,在操作这个样例数据库的过程中,将能学到下列东西: ■ 如何利用mysql客户机程序与MySQL通信。 ■ SQL 语言的基本语句。(如果您曾经使用过其他RDBMS,从而熟悉SQL,那么浏览一下这个教程,看看SQL 的MySQL版...

    linux下C++程序连接mysql数据库

    1)安装mysql:sudo apt-get install mysql-server mysql-client,这两个东西安装好后,(安装的过程中,会有设置用户名和密码的提示,我设置为root用户)sudo apt-get install libmysqlclient15-dev,(如果没有这一步...

    mysql-8.0.18-1.el7.x86_64.zip

    看看系统中有没有自带有mysql的东西,有就先删除掉。 查看: find / -name mysql 删除: rm -rf 上边查找到的路径,多个路径用空格隔开 #或者下边一条命令即可 find / -name mysql|xargs rm -rf; mkdir -p ...

    MYSQL最全的学习资料

    个人推荐mysql学习资料, 很不错,好东西不但要珍藏,还要分享

    mysql的使用心得

    这个是我在使用mysql中积累的一些心得体会,比较基础点的东西,但是只是归根结底还是最基础的东西是最重要的。

    php+mysql+apache组合之mysql

    对于初学php者来说,配置环境可是相当的复杂,本人一时心血来潮想学下php,结果配置了2天的环境无果,网上搜了很多方法,可是没有个系列全套、、很多地方说发都...此压缩包为php+mysql+apache+zend组合套件2.0之mysql

    最小的MySQL5.0

    最小最精简的MySQL5.0 ,没有任何多余的东西,但开发使用却足够了。

Global site tag (gtag.js) - Google Analytics