MySQL基本操作 MySQL登录 MySQL退出 修改MySQL提示符 MySQL常用命令 MySQL语句的规范 数据库操作

mysql [参数]

参数 描述
-D , --database = name 打开指定数据库
--delimite = name 指定分隔符
-h , --host = name 服务器名称
-p , --password[=name] 密码
-P , --post = # 端口号
--prompt = name 设置提示符
-u , --user = name 用户名
-V , --version 输出版本信息并且退出

示例:

C:WINDOWSsystem32>mysql -uroot -p -P3307 -h127.0.0.1
Enter password: ********

说明:
-P 后面加的端口号,默认为3306,如果不写-P,那么就是默认的,如果修改为其他,这里要注明。我这里修改了端口号为3307,所以需要注明 -P3307

MySQL退出

mysql > exit;
mysql > quit;
mysql > q;

修改MySQL提示符

prompt

连接客户端时,可通过以下命令连接:

shell > mysql -uroot -proot --prompt 提示符

注意:
-u后面是用户名,这里是root; -p后面是密码root,可以空着(即-p后面不加任何字符,系统会等下要去输入)

关于提示符,这里列一个表格:

提示符参数 描述
D 完整的日期
d 当前数据库
h 服务器名称
u 当前用户

连接上客户端后,也可以修改提示符:

mysql > prompt 提示符

示例:

C:WINDOWSsystem32>mysql -uroot -p -P3307 --prompt new
Enter password: ********
new
C:WINDOWSsystem32>mysql -uroot -p -P3307
Enter password: ********

mysql> prompt u@h d >
PROMPT set to 'u@h d > '
root@localhost (none) >

其中root来自u,localhost来自h,(none)来自d,因为还没有创建数据库,所以是(none)

MySQL常用命令

SELECT VERSION();
显示当前服务器版本

SELECT NOW();
显示当前日期

SELECT USER();
显示当前用户

示例:

root@localhost (none) > SELECT USER();
+----------------+
| USER()         |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)

root@localhost (none) > SELECT VERSION();
+------------+
| VERSION()  |
+------------+
| 5.7.16-log |
+------------+
1 row in set (0.06 sec)

root@localhost (none) > SELECT NOW();
+---------------------+
| NOW()               |
+---------------------+
| 2016-11-15 20:25:09 |
+---------------------+
1 row in set (0.06 sec)

MySQL语句的规范

  • 关键字和函数名全部用大写
  • 数据库名称、表名称,字段名称全部用小写
  • SQL语句必须以分号结尾

数据库操作

创建数据库

CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET [=] charset_name

说明:

{DATABASE | SEHEMA},表示在大括号里面任意选择其中一个,一般用 DATABASE
[IF NOT EXISTS],“如果不存在”,表示如果存在数据库,那么就不创建,这条语句不会给出具体提示,如果出错,会有warning,可以用 SHOW WARNING来查看提示,如果对不存在数据库进行创建,那么就顺利执行。
同样的,有些语句是[IF EXISTS],表示如果存在,那么执行将不会有问题,比如DROP删除数据库,就可以添加这个选项,即如果数据库存在,才可以删除。同样可以用SHOW WARNING来查看错误提示。
[DEFAULT] CHARACTER SET 表示设置编码方式,如果不写,默认使用系统自带的编码方式。

下面通过示例进行讲解:

创建数据库D1:

root@localhost (none) > CREATE DATABASE D1;
Query OK, 1 row affected (0.00 sec)

查看数据库列表:

root@localhost (none) > SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| d1                 |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

重新创建一个D1数据库:

root@localhost (none) > CREATE DATABASE D1;
ERROR 1007 (HY000): Can't create database 'd1'; database exists

提示错误:数据库已经存在,无法创建

root@localhost (none) > CREATE DATABASE IF NOT EXISTS D1;
Query OK, 1 row affected, 1 warning (0.00 sec)

添加 IF NOT EXISTS,没有报错,但是给出 1 warning的提示
通过 SHOW WARNING; 来查看错误:

+-------+------+---------------------------------------------+
| Level | Code | Message                                     |
+-------+------+---------------------------------------------+
| Note  | 1007 | Can't create database 'd1'; database exists |
+-------+------+---------------------------------------------+
1 row in set (0.00 sec)

查看数据库D1的信息:

root@localhost (none) > SHOW CREATE DATABASE D1;
+----------+-------------------------------------------------------------+
| Database | Create Database                                             |
+----------+-------------------------------------------------------------+
| D1       | CREATE DATABASE `D1` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+-------------------------------------------------------------+
1 row in set (0.00 sec)

可以看出数据库D1的编码方式是 utf8

创建数据库的同时指定编码方式:

root@localhost (none) > CREATE DATABASE D2 CHARACTER SET GBK;
Query OK, 1 row affected (0.00 sec)

root@localhost (none) > SHOW CREATE DATABASE D2;
+----------+------------------------------------------------------------+
| Database | Create Database                                            |
+----------+------------------------------------------------------------+
| D2       | CREATE DATABASE `D2` /*!40100 DEFAULT CHARACTER SET gbk */ |
+----------+------------------------------------------------------------+
1 row in set (0.00 sec)

可以看出编码为gbk

查看当前服务器下的数据表列表

SHOW {DATABASES | SCHEMA} [LIKE 'pattern' | WHERE expr]

前面的例子已经讲到。

root@localhost (none) > SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| d1                 |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

可以看到一共有五个数据库,其中除了 d1 是刚刚创建的之外,其他的都是系统自带的数据库。

修改数据库

ALTER {DATABASE | SCHEMA} [db_name] [DEFAULT] CHARACTER SET [=] charset_name

示例:修改数据库D2的编码方式为utf8

root@localhost (none) > ALTER DATABASE D2 CHARACTER SET = UTF8;
Query OK, 1 row affected (0.00 sec)

root@localhost (none) > SHOW CREATE DATABASE D2;
+----------+-------------------------------------------------------------+
| Database | Create Database                                             |
+----------+-------------------------------------------------------------+
| D2       | CREATE DATABASE `D2` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+-------------------------------------------------------------+
1 row in set (0.00 sec)

删除数据库

DROP {DATABASE | SCHEMA} [IF EXISTS] db_name

这里的 IF EXISTS 前面已经讲到了,这里不赘述。

我们把数据库D1,D2删除:

root@localhost (none) > SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| d1                 |
| d2                 |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
6 rows in set (0.00 sec)

root@localhost (none) > DROP DATABASE D1;
Query OK, 0 rows affected (0.00 sec)

root@localhost (none) > DROP DATABASE D2;
Query OK, 0 rows affected (0.00 sec)

root@localhost (none) > SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)