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模式匹配,不能使用=或!=,而应该使用LIKE或NOT LIKE
“_”匹配任何单个字符,”%”匹配任意数目的字符(包含零字符)
默认情况是不区分大小写
<!--[if !supportLists]-->2. <!--[endif]-->同时MySQL提供扩展的正则表达式匹配的格式
使用REGEXP和NOT REGEXP(或者叫做RLIKE和NOT 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基础 对于初学者是个不错的东西 希望对大家有用
1 可以自由安装在任何目录下(直接回车默认安装在/auto),而且所有的东西都在此目录下,不会出现在其他目录中 2 内置可以在存储过程中执行Linux命令插件 3 安装完成后,cd /auto/mysql/support-files/, ./mysql.xs....
昨天搞了一个CSV导入MYSQL的东西,发现LOADDATA命令不是很方便。 比较简陋的一个东西,日后还会不断完善。有什么建议请发邮件到tailspin@126.com. 使用前请先阅读文档中的readme.txt
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也出现了相同的问题。让人纠结了一把…… 代码如下:zhouqian@zhou:~$ mysqlERROR 2002 (HY000): Can’t connect to ...
安装完毕后在cmd 里面 以 mysql -uroot -p;... 显示表格 后面的操作属于 sql 基础的东西 自己查哈 就 知道了 退出 为 quit; 指令. 一定 要有 分号 再 按确定键. 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-...
MySql5.6性能优化。MySql5.6性能优化。MySql5.6性能优化。
全国省市县mysql数据库脚本(好东西啊!)
MySQL参数优化对于新手来讲,是比较难懂的东西,其实这个参数优化,是个很复杂的东西,对于不同的网站,及其在线量,访问量,帖子数量,网络情况,以及机器硬件配置都有关系,优化不可能一次性完成,需要不断的观察...
此外,在操作这个样例数据库的过程中,将能学到下列东西: ■ 如何利用mysql客户机程序与MySQL通信。 ■ SQL 语言的基本语句。(如果您曾经使用过其他RDBMS,从而熟悉SQL,那么浏览一下这个教程,看看SQL 的MySQL版...
1)安装mysql:sudo apt-get install mysql-server mysql-client,这两个东西安装好后,(安装的过程中,会有设置用户名和密码的提示,我设置为root用户)sudo apt-get install libmysqlclient15-dev,(如果没有这一步...
看看系统中有没有自带有mysql的东西,有就先删除掉。 查看: find / -name mysql 删除: rm -rf 上边查找到的路径,多个路径用空格隔开 #或者下边一条命令即可 find / -name mysql|xargs rm -rf; mkdir -p ...
个人推荐mysql学习资料, 很不错,好东西不但要珍藏,还要分享
这个是我在使用mysql中积累的一些心得体会,比较基础点的东西,但是只是归根结底还是最基础的东西是最重要的。
对于初学php者来说,配置环境可是相当的复杂,本人一时心血来潮想学下php,结果配置了2天的环境无果,网上搜了很多方法,可是没有个系列全套、、很多地方说发都...此压缩包为php+mysql+apache+zend组合套件2.0之mysql
最小最精简的MySQL5.0 ,没有任何多余的东西,但开发使用却足够了。