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_num
缺省的情况下,端口是3306,
mysqladmin shutdown;
mysqladmin reload;
mysqladmin –help;
mysqladmin -u root -p shutdown;
如果完全省略了 -p 选项,mysql 就认为您不需要口令,不作提示
shell>mysql –h mysql.domain.ne
CREATE DATABASE db_name;
DROP DATABASE [IF EXISTS] db_name;
SHOW/ DESCRIBE;
source E:/Tomcat/webap
GRANT privileges (columns) ON what TO user IDENTIFIED BY "password" WITH GRANT OPTION
修改root用户口令:
mysql> UPDATE user SET password=PASSWO
mysql> FLUSH PRIVILEGES;
mysql> QUIT
SELECT 语句的语法如下:
SELECT selection_list 选择哪些列
FROM table_list 从何处选择行
WHERE primary_constra
GROUP BY grouping_column
HAVING secondary_const
ORDER BY sorting_columns
LIMIT count 结果限定
注意:所有使用的关键词必须精确
COUNT()函数计数非NULL
结果的数目
TIMESTAMP列类型提供一种类型,TIMESTAMP值可以从1970的某时的开始一直到2037年,精度为一秒,其值作为数字显
自动更新第一个TIMESTAMP列在下列任何条件下发生:
l 列没有明确地在一个INSERT或LOAD DATA INFILE语句中指定。
l 列没有明确地在一个UPDATE语句中指定且一些另外的列改变值
l 你明确地设定TIMESTAMP列为NULL.
除第一个以外的TIMESTAMP列也可以设置到当前的日期和时间
例如,创建如下的表:
mysql> CREATE TABLE student
-> (
-> id int,
-> name char(16),
-> english tinyint,
-> chinese tinyint,
-> history tinyint,
-> time timestamp
-> );
向表中插入记录,可以查看效果:
mysql> INSERT student(id,name
查看记录的存储情况:
mysql> SELECT * FROM student;
+------+---------+---------+---------+---------+----------------+
| id | name | english | chinese | history | time |
+------+---------+---------+---------+---------+----------------+
| 11 | Tom | 66 | 93 | 67 | 20010220123335 |
+------+---------+---------+---------+---------+----------------+
你可以看到time列纪录下了数据录入时的时间值。
mysql> UPDATE student SET english=76 WHERE id=11;
mysql> SELECT * FROM student;
+------+------+---------+---------+---------+----------------+
| id | name | english | chinese | history | time |
+------+------+---------+---------+---------+----------------+
| 11 | Tom | 76 | 93 | 67 | 20010220125736 |
+------+------+---------+---------+---------+----------------+
可以清楚的看到,time列的时间被自动更改为修改记录的
有时候你希望不更改任何值,也能
mysql> UPDATE student SET time=NULL WHERE id=11;
mysql> select * from student where id=11;
+------+------+---------+---------+---------+----------------+
| id | name | english | chinese | history | time |
+------+------+---------+---------+---------+----------------+
| 11 | Tom | 76 | 93 | 67 | 20010220130517 |
+------+------+---------+---------+---------+----------------+
通过明确地设置希望的值,你可以
l 让MySQL在行被创建时设置列,这将初始化
l 当你执行随后的对该行中其他列的
例如,当你在修改列时,可以把原
mysql> UPDATE student SET english=66,time
mysql> select * from student where id=11;
+------+------+---------+---------+---------+----------------+
| id | name | english | chinese | history | time |
+------+------+---------+---------+---------+----------------+
| 11 | Tom | 66 | 93 | 67 | 20010220130517 |
+------+------+---------+---------+---------+----------------+
另一方面,你可能发现,当你想要
在 MySQL中,SQL的模式缺省是忽略大小写的。
在MySQL中,数据库和表对应于在那些目录
注意:在Win32上,尽管数据库和表名是忽略大小
mysql> SELECT * FROM my_table WHERE MY_TABLE.col=1;
2、列名
列名在所有情况下都是忽略大小写
3、表的别名
表的别名是区分大小写的。下列查
mysql> SELECT col_name FROM tbl_name AS a
WHERE a.col_name = 1 OR A.col_name = 2;
4、列的别名
列的别名是忽略大小写的。
5、字符串比较和模式匹配
缺省地,MySQL搜索是大小写不敏感的(尽管有一些字符集从来不是忽略大
简单的比较操作(>=、>、= 、< 、<=、排序和聚合)是基于每个字符的“排序值”。有
LIKE比较在每个字符的大写值上进行(“E”=”e”)。
如果你想要一个列总是被当作大小
例如:
mysql> SELECT "E"="e","E"=BIN
+---------+----------------+
| "E"="e" | "E"=BINARY "e" |
+---------+----------------+
| 1 | 0 |
+---------+----------------+
由MySQL提供的模式匹配的其他类型是使用
扩展正则表达式的一些字符是:
“.”匹配任何单个的字符。
一个字符类“[...]”匹配在方括号内的任何字符。例
“ * ”匹配零个或多个在它前面的东西
正则表达式是区分大小写的,但是
如果它出现在被测试值的任何地方
为了定位一个模式以便它必须匹配
为了说明扩展正则表达式如何工作
为了找出以“b”开头的名字,使用“^”匹配名字的开始并且“[bB]”匹配小写或大写的“b”:
mysql> SELECT * FROM pet WHERE name REGEXP "^[bB]";
+--------+--------+---------+------+------------+------------+
| name | owner | species | sex | birth | death |
+--------+--------+---------+------+------------+------------+
| Buffy | Harold | dog | f |
1989-05-13
| NULL |
| Bowser | Diane | dog | m |
1989-08-31
|
1995-07-29
|
+--------+----- ---+---------+- -----+--------- ---+----------- -+
为了找出以“fy”结尾的名字,使用“$”匹配名字的结尾:
mysql> SELECT * FROM pet WHERE name REGEXP "fy$";
+--------+--------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+--------+--------+---------+------+------------+-------+
| Fluffy | Harold | cat | f |
1993-02-04
| NULL |
| Buffy | Harold | dog | f |
1989-05-13
| NULL |
+--------+----- ---+---------+- -----+--------- ---+-------+
为了找出包含一个“w”的名字,使用“[wW]”匹配小写或大写的“w”:
mysql> SELECT * FROM pet WHERE name REGEXP "[wW]";
+----------+-------+---------+------+------------+------------+
| name | owner | species | sex | birth | death |
+----------+-------+---------+------+------------+------------+
| Claws | Gwen | cat | m |
1994-03-17
| NULL |
| Bowser | Diane | dog | m |
1989-08-31
|
1995-07-29
|
| Whistler | Gwen | bird | NULL |
1997-12-09
| NULL |
+----------+-------+---------+------+------------+------------+
既然如果一个正规表达式出现在值
为了找出包含正好5个字符的名字,使用“^”和“$”匹配名字的开始和结尾,和5个“.”实例在两者之间:
mysql> SELECT * FROM pet WHERE name REGEXP "^.....$";
+-------+--------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+-------+--------+---------+------+------------+-------+
| Claws | Gwen | cat | m |
1994-03-17
| NULL |
| Buffy | Harold | dog | f |
1989-05-13
| NULL |
+-------+------ --+---------+-- ----+---------- --+-------+
你也可以使用“{n}”“重复n次”操作符重写先前的查询:
mysql> SELECT * FROM pet WHERE name REGEXP "^.{5}$";
+-------+--------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+-------+--------+---------+------+------------+-------+
| Claws | Gwen | cat | m |
1994-03-17
| NULL |
| Buffy | Harold | dog | f |
1989-05-13
| NULL |
+-------+------ --+---------+-- ----+---------- --+-------+
语法:SELECT FROM table_reference