【MYSQL 5.1 手册】教程

3.1. 连接与断开服务器

  • 连接服务器
shell> mysql -h host -u user -p
Enter password: ********
shell> mysql -h host -u user -pyourpwd dbname
  • 断开服务器,QUIT (或\q)
mysql> QUIT
Bye
  • unix断开服务器:control-D

3.2. 输入查询

了解几个mysql如何工作的查询语句(连接服务器后)

  • 查询服务器的版本号和当前日期:
mysql> SELECT VERSION(),CURRENT_DATE;
+-----------+--------------+
| VERSION() | CURRENT_DATE |
+-----------+--------------+
| 5.5.53    | 2018-05-08   |
+-----------+--------------+
1 row in set (0.02 sec)

一个命令通常由SQL语句组成,随后跟着一个分号。(有一些例外不需要分号。比如QUIT。)

能够以大小写输入关键词,以下命令等价:

mysql> SELECT VERSION(), CURRENT_DATE;
mysql> select version(), current_date;
mysql> SeLeCt vErSiOn(), current_DATE;
  • mysql用作一个简单的计算器:
mysql> select sin(pi()/4),(4+1)*5;
+--------------------+---------+
| sin(pi()/4)        | (4+1)*5 |
+--------------------+---------+
| 0.7071067811865475 |      25 |
+--------------------+---------+
1 row in set (0.12 sec)
  • 在一行上输入多条语句,只需要以一个分号间隔开各语句:
mysql> SELECT VERSION();SELECT NOW();
+-----------+
| VERSION() |
+-----------+
| 5.5.53    |
+-----------+
1 row in set (0.00 sec)

+---------------------+
| NOW()               |
+---------------------+
| 2018-05-08 10:46:43 |
+---------------------+
1 row in set (0.02 sec)
  • 不必在一个行内给出全部命令,mysql通过寻找终止分号而不是输入行的结束来决定语句在哪儿结束。(换句话说,mysql接受自由格式的输入:它收集输入行但直到看见分号才执行。)
mysql> SELECT USER()
    -> ,CURRENT_DATE;
+----------------+--------------+
| USER()         | CURRENT_DATE |
+----------------+--------------+
| root@localhost | 2018-05-08   |
+----------------+--------------+
1 row in set (0.02 sec)

注意提示符如何从mysql>变为->,这正是mysql如何指出它没见到完整的语句并且正在等待剩余的部分。
如果你决定不想执行正在输入过程中的一个命令,输入\c取消它:

mysql> SELECT
    -> USER()
    -> \c
mysql>
  • 下表显示出可以看见的各个提示符并简述它们所表示的mysql的状态:
提示符 含义
mysql> 准备好接受新命令。
‘> 等待下一行,等待以单引号(“’”)开始的字符串的结束。
“> 等待下一行,等待以双引号(“””)开始的字符串的结束。
`> 等待下一行,等待以双引号(“`”)开始的字符串的结束。
/*> 等待下一行,等待以/*开始的注释的结束。
mysql> '
    '> '
    -> "
    "> "
    -> `
    `> `
    -> /*
   /*> */
    ->

示例:

mysql> SELECT * FROM my_table WHERE name = 'Smith AND age < 30;
    '> '\c
mysql>

出现以上问题时,不能只是输入\c,因为mysql作为它正在收集的字符串的一部分来解释它!相反,应输入关闭的引号字符(这样mysql知道你完成了字符串),然后输入\c

如果你错误地输入一个未终止的字符串,任何后面输入的行将要被mysql忽略(意味着断连或取消命令将不起作用):

mysql> `
    `> \c
    `> QUIT

3.3. 创建并使用数据库

  • 查询数据库
mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)

数据库列表可能不同;mysql是必需的,描述用户访问权限;test数据库经常作为用户试身手的工作区。
如果没有SHOW DATABASES权限,则不能看见所有数据库

  • 访问数据库
mysql> USE TEST
Database changed

USE类似QUIT不需要分号。(给分号也无碍)

USE语句必须在一个单行上给出:

mysql> USE
ERROR:
USE must be followed by a database name
  • 创建数据库
mysql> CREATE DATABASE dbname;
  • 创建表

查询表

mysql> SHOW TABLES;
Empty set (0.00 sec)

创建表

mysql> CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20),
    -> species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);

查询表结构

mysql> DESCRIBE pet;
  • 将数据装入表中

    创建一个文本文件“pet.txt”,每行包含一个记录,用定位符(tab)把值分开,使用\N(反斜线,字母N)表示NULL值

Whistler        Gwen    bird    \N      1997-12-09      \N

这里写图片描述

要想将文本文件“pet.txt”装载到pet表中,使用这个命令:

mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet
    -> LINES TERMINATED BY '\r\n';   //如果用Windows中的编辑器(使用\r\n做为行的结束符)创建文件

示例:

mysql> LOAD DATA LOCAL INFILE 'D:\pet.txt' INTO TABLE PET
    -> LINES TERMINATED BY '\r\n';

mysql> select * from pet;
+----------------------+--------+---------+------+------------+-------+
| name                 | owner  | SPECIES | sex  | birth      | death |
+----------------------+--------+---------+------+------------+-------+
| "whistler"           | "Gwen" | "bird"  | NULL | 1997-12-09 | NULL  |
+----------------------+--------+---------+------+------------+-------+

3.3.4. 从表检索信息

  • 去重:增加关键字DISTINCT检索出每个唯一的输出记录:
mysql> SELECT DISTINCT owner FROM pet;
  • 排序:多个字段排序
mysql> SELECT * FROM tbname ORDER BY col1,col2 DESC,BINARY col3 DESC;

按字母大小写排序:ORDER BY BINARY col_name,默认大写为顺序,小写为倒叙

mysql> select * from orders order by order_no,user_id desc,binary word desc;
+----+---------+----------+------+
| id | user_id | order_no | word |
+----+---------+----------+------+
| 47 |       1 | 1        |      |
| 50 |       4 | 2        |      |
| 49 |       3 | 3        |      |
| 48 |       2 | 3        | a    |
| 51 |       2 | 3        | A    |
+----+---------+----------+------+

猜你喜欢

转载自blog.csdn.net/qq_39251267/article/details/80235921