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)