连接
MySQL与其他所有客户机-服务器DBMS一样, 要求在能执行命令之前登录到DBMS。MySQL在内部保存自己的用户列表, 并且把每个用户与各种权限关联起来
连接到MySQL需要以下信息
- 主机名(计算机) - 如果连接到本地MySQL服务器, 为localhost
- 端口 - 如果使用默认端口3306之外的端口需要指定端口
- 一个合法的用户名
- 用户口令(如果需要)
mysql -u root -p -h mysqlserver -P 9999
选择数据库
在执行任意数据库操作前, 需要先选择一个数据库。使用USE关键字
关键字(Key word): 作为MySQL语言组成部分的一个保留字。决不要用关键字命名一个表或一个列
例如: 为了使用crashcourse数据库, 应该输入如下内容:
MariaDB [(none)]> use crashcourse;
Database changed
MariaDB [crashcourse]>
USE语句并不返回任何结果。只是显示某种形式的提示信息。
记住: 必须先使用USE打开数据库, 才能读取其中的数据
了解数据库和表
数据库、表、列、用户、权限等信息都被存储在数据库和表中(MySQL使用MySQL来存储这些信息)。不过, 内部的表一般不直接访问。可用MySQL的SHOW命令来显示这些信息(MySQL从内部表中提取这些信息)
例如:
MariaDB [crashcourse]> show databases; +--------------------+ | Database | +--------------------+ | crashcourse | | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 5 rows in set (0.000 sec) MariaDB [crashcourse]>
SHOW DATABASES: 返回可用数据库的一个列表。包含在这个列表中的是MySQL内部使用的数据库和自己创建的数据库
为了获得一个数据库内的表的列表, 可以使用SHOW TABLSE; 如下所示:
MariaDB [crashcourse]> SHOW TABLES; Empty set (0.000 sec) MariaDB [crashcourse]>
SHOW TABLES: 返回当前选择数据库内可用表的列表。当然应该这是一个新建的库, 里面没有一张表, 所以返回的是空。
SHOW也可以用来显示表列:
MariaDB [blog]> show columns from xadmin_log; +-----------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------------+--------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | action_time | datetime(6) | NO | | NULL | | | ip_addr | char(39) | YES | | NULL | | | object_id | longtext | YES | | NULL | | | object_repr | varchar(200) | NO | | NULL | | | action_flag | varchar(32) | NO | | NULL | | | message | longtext | NO | | NULL | | | content_type_id | int(11) | YES | MUL | NULL | | | user_id | int(11) | NO | MUL | NULL | | +-----------------+--------------+------+-----+---------+----------------+ 9 rows in set (0.001 sec) MariaDB [blog]>
SHOW CLOUMNS: SHOW CLOUMNS要求给出一个表名, 它对表中的每个字段返回一行, 行中包括字段名、数据类型、是否允许为NULL、键信息、默认值以及其他的信息(如字段id的auto_increment)
什么是自增量?
某些表列需要唯一值, MySQL可以自动为每一行分配下一个可用编号, 不用在添加一行时手动分配唯一值, 这个功能就是所谓的自动增量。
所支持的其他SHOW命令还有:
- SHOW STATUS: 用于显示广泛的服务器状态信息
- SHOW CREATE DATABASE 数据库名 和 SHOW CREATE TABLES 表名: 分别用来显示创建特定数据库或表的MySQL语句
- SHOW GRANTS: 用来显示授予用户(所有用户或特定用户)的安全权限
- SHOW ERRORS 和 SHOW WARNINGS: 用来显示服务器错误或经过消息