Mysql命令

原创 2005年04月30日 01:43:00

use <dbname> [LIKE wild];
show tables;
show databases;
?/help;
exit/quit;
mysqladmin version;
mysql mysqladmin version;
net start mysql;
mysqladmin variables;
mysqladmin -h hostname --port=port_number variables;
缺省的情况下,端口是3306,套接字的名字是MySQL
mysqladmin shutdown;
mysqladmin reload;
mysqladmin –help;
mysqladmin -u root -p shutdown;
如果完全省略了 -p 选项,mysql 就认为您不需要口令,不作提示
shell>mysql –h mysql.domain.net –u tom -p;
CREATE DATABASE db_name;
DROP DATABASE [IF EXISTS] db_name;
SHOW/ DESCRIBE;

source E:/Tomcat/webapps/2richshop1.1/doc/sql.txt;

GRANT privileges (columns) ON what TO user IDENTIFIED BY "password" WITH GRANT OPTION

修改root用户口令:
mysql> UPDATE user SET password=PASSWORD("new password") WHERE user='hunte';
  mysql> FLUSH PRIVILEGES;
  mysql> QUIT


SELECT 语句的语法如下:

SELECT selection_list    选择哪些列

FROM table_list     从何处选择行

WHERE primary_constraint   行必须满足什么条件

GROUP BY grouping_columns      怎样对结果分组

HAVING secondary_constraint     行必须满足的第二条件

ORDER BY sorting_columns 怎样对结果排序

LIMIT count  结果限定

注意:所有使用的关键词必须精确地以上面的顺序给出。例如,一个HAVING子句必须跟在GROUP BY子句之后和ORDER BY子句之前。


COUNT()函数计数非NULL结果的数目

TIMESTAMP列类型提供一种类型,TIMESTAMP值可以从1970的某时的开始一直到2037年,精度为一秒,其值作为数字显示。你可以使用它自动地用当前的日期和时间标记INSERTUPDATE的操作。如果你有多个TIMESTAMP列,只有第一个自动更新。

TIMESTAMP列类型提供一种类型,TIMESTAMP值可以从1970的某时的开始一直到2037年,精度为一秒,其值作为数字显示。你可以使用它自动地用当前的日期和时间标记INSERTUPDATE的操作。如果你有多个TIMESTAMP列,只有第一个自动更新。

自动更新第一个TIMESTAMP列在下列任何条件下发生:

l         列没有明确地在一个INSERTLOAD DATA INFILE语句中指定。

l         列没有明确地在一个UPDATE语句中指定且一些另外的列改变值。(注意一个UPDATE设置一个列为它已经有的值,这将不引起TIMESTAMP列被更新,因为如果你设置一个列为它当前的值,MySQL为了效率而忽略更改。)

l         你明确地设定TIMESTAMP列为NULL.

除第一个以外的TIMESTAMP列也可以设置到当前的日期和时间,只要将列设为NULL,或NOW()

例如,创建如下的表:

mysql> CREATE TABLE student

       -> (

       -> id int,

       -> name char(16),

       -> english tinyint,

       -> chinese tinyint,

       -> history tinyint,

       -> time timestamp

       -> );

向表中插入记录,可以查看效果:

mysql> INSERT student(id,name,englisht,Chinese,history) VALUES(11,”Tom”,66,93,67);

查看记录的存储情况:

mysql> SELECT * FROM student;

 

 

你可以看到time列纪录下了数据录入时的时间值。如果你更新改记录,在查看操作的结果:

mysql> UPDATE student SET english=76 WHERE id=11;

mysql> SELECT * FROM student;

可以清楚的看到,time列的时间被自动更改为修改记录的时间。

有时候你希望不更改任何值,也能打到修改TIMESTAMP列的值,这时只要设置该列的值为NULLMySQL就可以自动更新TIMESTAMP列的值:

mysql> UPDATE student SET time=NULL WHERE id=11;

mysql> select * from student where id=11;

通过明确地设置希望的值,你可以设置任何TIMESTAMP列为不同于当前日期和时间的值,即使对第一个TIMESTAMP列也是这样。例如,如果,当你创建一个行时,你想要一个TIMESTAMP被设置到当前的日期和时间,但在以后无论何时行被更新时都不改变,你可以使用这样使用:

l         MySQL在行被创建时设置列,这将初始化它为当前的日期和时间。

l         当你执行随后的对该行中其他列的更改时,明确设定TIMESTAMP列为它的当前值。

例如,当你在修改列时,可以把原有的值付给TIMESTAMP列:

mysql> UPDATE student SET english=66,time=time WHERE id=11;

mysql> select * from student where id=11;

另一方面,你可能发现,当你想要实现上面这个效果时,很容易用一个你用NOW()初始化的DATETIME列然后不再改变它,这样也许直接些。 但是,TIMESTAMP列的以后好处是存储要求比较小,节省空间。TIMESTAMP的存储需求是4字节,而DATETIME列的存储需求是8字节。



MySQL中,SQL的模式缺省是忽略大小写的。

MySQL中,数据库和表对应于在那些目录下的目录和文件,因而,内在的操作系统的敏感性决定数据库和表命名的大小写敏感性。这意味着数据库和表名在Unix上是区分大小写的,而在Win32上忽略大小写。

注意:在Win32上,尽管数据库和表名是忽略大小写的,你不应该在同一个查询中使用不同的大小写来引用一个给定的数据库和表。下列查询将不工作,因为它作为my_table和作为MY_TABLE引用一个表:

mysql> SELECT * FROM my_table WHERE MY_TABLE.col=1;

2、列名

列名在所有情况下都是忽略大小写的。

3、表的别名

表的别名是区分大小写的。下列查询将不工作,: 因为它用aA引用别名:

mysql> SELECT col_name FROM tbl_name AS a

           WHERE a.col_name = 1 OR A.col_name = 2;

4、列的别名

列的别名是忽略大小写的。

5、字符串比较和模式匹配

缺省地,MySQL搜索是大小写不敏感的(尽管有一些字符集从来不是忽略大小写的,例如捷克语)。这意味着,如果你用col_name LIKE 'a%'搜寻,你将得到所有以Aa开始的列值。如果你想要使这个搜索大小写敏感,使用象INDEX(col_name, "A")=0检查一个前缀。或如果列值必须确切是"A",使用STRCMP(col_name, "A") = 0

简单的比较操作(>=>= < <=、排序和聚合)是基于每个字符的“排序值”。有同样排序值的字符(Ee)被视为相同的字符!

LIKE比较在每个字符的大写值上进行(“E”=”e”)

如果你想要一个列总是被当作大小写敏感的方式,声明它为BINARY

例如:

mysql> SELECT "E"="e","E"=BINARY "e";



MySQL提供的模式匹配的其他类型是使用扩展正则表达式。当你对这类模式进行匹配测试时,使用REGEXPNOT REGEXP操作符(RLIKENOT RLIKE,它们是同义词)

扩展正则表达式的一些字符是:

.”匹配任何单个的字符。

一个字符类“[...]”匹配在方括号内的任何字符。例如,“[abc]”匹配“a”、“b”或“c”。为了命名字符的一个范围,使用一个“-”。“[a-z]”匹配任何小写字母,而“[0-9]”匹配任何数字。

* ”匹配零个或多个在它前面的东西。例如,“x*”匹配任何数量的“x”字符,“[0-9]*”匹配的任何数量的数字,而“.*”匹配任何数量的任何东西。

正则表达式是区分大小写的,但是如果你希望,你能使用一个字符类匹配两种写法。例如,“[aA]”匹配小写或大写的“a”而“[a-zA-Z]”匹配两种写法的任何字母。

如果它出现在被测试值的任何地方,模式就匹配(只要他们匹配整个值,SQL模式匹配)

为了定位一个模式以便它必须匹配被测试值的开始或结尾,在模式开始处使用“^”或在模式的结尾用“$”。

为了说明扩展正则表达式如何工作,上面所示的LIKE查询在下面使用REGEXP重写:

为了找出以“b”开头的名字,使用“^”匹配名字的开始并且“[bB]”匹配小写或大写的“b”:

 

mysql> SELECT * FROM pet WHERE name REGEXP "^[bB]";

 

为了找出以“fy”结尾的名字,使用“$”匹配名字的结尾:

 

mysql> SELECT * FROM pet WHERE name REGEXP "fy$";

 

为了找出包含一个“w”的名字,使用“[wW]”匹配小写或大写的“w”:

 

mysql> SELECT * FROM pet WHERE name REGEXP "[wW]";

 

既然如果一个正规表达式出现在值的任何地方,其模式匹配了,就不必再先前的查询中在模式的两方面放置一个通配符以使得它匹配整个值,就像如果你使用了一个SQL模式那样。

为了找出包含正好5个字符的名字,使用“^”和“$”匹配名字的开始和结尾,和5个“.”实例在两者之间:

mysql> SELECT * FROM pet WHERE name REGEXP "^.....$";

 

你也可以使用“{n}”“重复n次”操作符重写先前的查询:

 

mysql> SELECT * FROM pet WHERE name REGEXP "^.{5}$";




MySQL中,数据库和表对应于在那些目录下的目录和文件,因而,内在的操作系统的敏感性决定数据库和表命名的大小写敏感性。这意味着数据库和表名在Unix上是区分大小写的,而在Win32上忽略大小写。

注意:在Win32上,尽管数据库和表名是忽略大小写的,你不应该在同一个查询中使用不同的大小写来引用一个给定的数据库和表。下列查询将不工作,因为它作为my_table和作为MY_TABLE引用一个表:

mysql> SELECT * FROM my_table WHERE MY_TABLE.col=1;

2、列名

列名在所有情况下都是忽略大小写的。

3、表的别名

表的别名是区分大小写的。下列查询将不工作,: 因为它用aA引用别名:

mysql> SELECT col_name FROM tbl_name AS a

           WHERE a.col_name = 1 OR A.col_name = 2;

4、列的别名

列的别名是忽略大小写的。

5、字符串比较和模式匹配

缺省地,MySQL搜索是大小写不敏感的(尽管有一些字符集从来不是忽略大小写的,例如捷克语)。这意味着,如果你用col_name LIKE 'a%'搜寻,你将得到所有以Aa开始的列值。如果你想要使这个搜索大小写敏感,使用象INDEX(col_name, "A")=0检查一个前缀。或如果列值必须确切是"A",使用STRCMP(col_name, "A") = 0

简单的比较操作(>=>= < <=、排序和聚合)是基于每个字符的“排序值”。有同样排序值的字符(Ee)被视为相同的字符!

LIKE比较在每个字符的大写值上进行(“E”=”e”)

如果你想要一个列总是被当作大小写敏感的方式,声明它为BINARY

例如:

mysql> SELECT "E"="e","E"=BINARY "e";



MySQL提供的模式匹配的其他类型是使用扩展正则表达式。当你对这类模式进行匹配测试时,使用REGEXPNOT REGEXP操作符(RLIKENOT RLIKE,它们是同义词)

扩展正则表达式的一些字符是:

.”匹配任何单个的字符。

一个字符类“[...]”匹配在方括号内的任何字符。例如,“[abc]”匹配“a”、“b”或“c”。为了命名字符的一个范围,使用一个“-”。“[a-z]”匹配任何小写字母,而“[0-9]”匹配任何数字。

* ”匹配零个或多个在它前面的东西。例如,“x*”匹配任何数量的“x”字符,“[0-9]*”匹配的任何数量的数字,而“.*”匹配任何数量的任何东西。

正则表达式是区分大小写的,但是如果你希望,你能使用一个字符类匹配两种写法。例如,“[aA]”匹配小写或大写的“a”而“[a-zA-Z]”匹配两种写法的任何字母。

如果它出现在被测试值的任何地方,模式就匹配(只要他们匹配整个值,SQL模式匹配)

为了定位一个模式以便它必须匹配被测试值的开始或结尾,在模式开始处使用“^”或在模式的结尾用“$”。

为了说明扩展正则表达式如何工作,上面所示的LIKE查询在下面使用REGEXP重写:

为了找出以“b”开头的名字,使用“^”匹配名字的开始并且“[bB]”匹配小写或大写的“b”:

 

mysql> SELECT * FROM pet WHERE name REGEXP "^[bB]";

 

为了找出以“fy”结尾的名字,使用“$”匹配名字的结尾:

 

mysql> SELECT * FROM pet WHERE name REGEXP "fy$";

 

为了找出包含一个“w”的名字,使用“[wW]”匹配小写或大写的“w”:

 

mysql> SELECT * FROM pet WHERE name REGEXP "[wW]";

 

既然如果一个正规表达式出现在值的任何地方,其模式匹配了,就不必再先前的查询中在模式的两方面放置一个通配符以使得它匹配整个值,就像如果你使用了一个SQL模式那样。

为了找出包含正好5个字符的名字,使用“^”和“$”匹配名字的开始和结尾,和5个“.”实例在两者之间:

mysql> SELECT * FROM pet WHERE name REGEXP "^.....$";

 

你也可以使用“{n}”“重复n次”操作符重写先前的查询:

 

mysql> SELECT * FROM pet WHERE name REGEXP "^.{5}$";




语法:SELECT FROM table_reference LEFT JOIN table_reference ON conditional_expr

linux下mysql命令无法执行的原因

由于linux默认执行/usr/bin/下的命令文件,新安装的mysql没有拷贝mysql执行命令文件到/usr/bin下,所以需要手工做一个链接到/usr/bin/下就可以了 ln -s /a...
  • hiw
  • hiw
  • 2016年02月17日 12:48
  • 916

mysql命令

mysql命令 关键字:   mysql命令     use mysql;   //打开库,学过FOXBASE的一定不会陌生吧 ...
  • SmartTony
  • SmartTony
  • 2007年01月09日 18:36
  • 754

mysql命令

1.mysql 怎么查看自己的用户名 select user(); 2.mysql 如何更改root密码 mysqladmin -u USER -p password PASSWORD 该命令...
  • a771948524
  • a771948524
  • 2013年11月19日 18:04
  • 871

php 执行 shell 命令 更新 mysql 到 es

#!/bin/sh # DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" # bin=${DIR}/../bin # lib=${DI...
  • u014017121
  • u014017121
  • 2016年08月04日 15:54
  • 221

MySql命令

use [LIKE wild];show tables;show databases;?/help;exit/quit;mysqladmin version;mysql mysqladmin ver...
  • onlysql
  • onlysql
  • 2006年04月01日 21:47
  • 566

MySQL命令

MySQL命令集:1.创建表 表是数据库的最基本元素之一,表与表之间可以相互独立,也可以相互关联。创建表的基本语法如下: create table table_name (column_na...
  • u011886490
  • u011886490
  • 2013年08月30日 14:45
  • 269

MYSQL命令

1.mysql服务的启动和停止net stop mysqlnet start mysql2.登陆mysql语法如下: mysql -u用户名 -p用户密码键入命令mysql -uroot -p, 回车...
  • yujiaCN
  • yujiaCN
  • 2008年04月24日 13:49
  • 603

mySql命令

自来:http://www.cnblogs.com/hateislove214/archive/2010/11/05/1869889.html 1. 显示所有数据库 show database; ...
  • cs_lht
  • cs_lht
  • 2011年12月15日 14:18
  • 331

mySQL命令

停止mySQL net stop wampmysqld(mySQL名) 开启mySQL net start wampmysqld(mySQL名) 用管理者来关闭mysql mysqladmin -ur...
  • zhaoliang831214
  • zhaoliang831214
  • 2014年10月08日 10:50
  • 326

Centos7安装mysql详细命令

转载于:http://blog.csdn.net/zhouygjp/article/details/50592395 CentOS7的yum源中默认好像是没有MySQL的。为了解决这个问题,我们要先...
  • win7system
  • win7system
  • 2016年12月12日 09:36
  • 1105
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Mysql命令
举报原因:
原因补充:

(最多只允许输入30个字)