MySQL使用帮助及基本概念

MySQL使用帮助及基本概念

系统数据库

MySQL系统数据库(不同版本不一样)
information_schema (记录CHARACTER_SETS,触发器,表,视图等信息)
mysql (记录user等信息)
performance_schema (threads)(记录变量等信息)
sys(innodb_buffer_stats_by_schema)(记录会话等信息)

系统表对所有用户都是重要的工具。通过查询系统表,用户可以得到关于自己的表、视图、索引等对象的信息

mysql show的使用
访问系统表的一个快捷方式是使用show语句(40条):
SHOW {BINARY | MASTER} LOGS
SHOW BINLOG EVENTS [IN ‘log_name’] [FROM pos] [LIMIT [offset,] row_count]
SHOW CHARACTER SET [like_or_where] ##展示所有的字符集,常用utf8,gbk
SHOW COLLATION [like_or_where]
SHOW [FULL] COLUMNS FROM tbl_name [FROM db_name] [like_or_where]
##展示tbl_name的列的情况,和desc tbl_name一个效果

SHOW CREATE DATABASE db_name ##可以把当初建立db_name数据库的语句展示出来
SHOW CREATE EVENT event_name
SHOW CREATE FUNCTION func_name
SHOW CREATE PROCEDURE proc_name
SHOW CREATE TABLE tbl_name ##展示之前创建tbl_name表的语句,首先要进入包含tbl_name的数据库
SHOW CREATE TRIGGER trigger_name
SHOW CREATE VIEW view_name
SHOW DATABASES [like_or_where]
SHOW ENGINE engine_name {STATUS | MUTEX}
SHOW [STORAGE] ENGINES
SHOW ERRORS [LIMIT [offset,] row_count]
SHOW EVENTS
SHOW FUNCTION CODE func_name
SHOW FUNCTION STATUS [like_or_where]
SHOW GRANTS FOR user
SHOW INDEX FROM tbl_name [FROM db_name]
SHOW MASTER STATUS
SHOW OPEN TABLES [FROM db_name] [like_or_where]
SHOW PLUGINS
SHOW PROCEDURE CODE proc_name
SHOW PROCEDURE STATUS [like_or_where]

mysql show的实际举例

例1:显示ceshi表中所有列的信息
show columns from ceshi;
desc ceshi;
describe ceshi
例2: 显示ceshi表上索引的信息
show index from penalties;
select * from statistics where TABLE_SCHEMA=‘test’ and table_name=‘a’;
 例3:显示系统中所有数据库的名字
show databases;
select schema_name from SCHEMATA;
例4:显示当前数据库中所有表的名字
show tables;
select table_name from tables where table_schema=‘test’;
例5:显示创建ceshi表的create table语句
show create table ceshi;
例6:显示用户sqlyog拥有的权限
show grants for ‘sqlyog’@’%’;
select * from USER_PRIVILEGES where GRANTEE =’‘sqlyog’@’%’’;
例7:显示所有权限的名称及其含义
show privileges;
show tables like ‘%PRIVILEGES’; # 找个表表名有PRIVILEGES(关键字)
select distinct(PRIVILEGE_TYPE) from user_PRIVILEGES; #列出用户的权限类型

mysql help的使用

查看所有可help信息
mysql> ? contents | help contents
Account Management
Administration #超级管理员
Compound Statements
Data Definition
Data Manipulation # 增删改查
Data Types # 数据类型
Functions #功能函数
Functions and Modifiers for Use with GROUP BY

mysql help的实际举例
例1: ? CREATE USER
CREATE USER ‘chen’@‘localhost’ IDENTIFIED BY ‘123’;
CREATE USER ‘zhi’@‘localhost’ IDENTIFIED BY ‘123’ PASSWORD EXPIRE NEVER;
例2:? SET
show variables like ‘%slow%’;

查官方文档
set global slow_query_log=1;
show variables like ‘%slow%’;
搜索:variable(变量) ——》 Server Option and Variable Reference

cmd-line:是否允许出现在命令行(mysql启动时)
option-file:是否允许出现在配置文件中(unknown variable)
system var:是否是系统变量,可以进行设置
status var:是否是状态值,只能进行查看不能修改
dynamic:是否允许动态修改

注:在查看帮助时 大写字母是关键字;小写字母是变量,使用真实值代替;[ ]可以省略

通过官方文档修改变量参数值

参数类型:
1、变量参数:
静态——只允许出现在配置文件中
动态——可以在会话中直接修改
2、状态值
监控有意义的状态值有利于监控mysql的运行状况

作用域:
全局(global)
会话(session)
type:类型
默认值:
值的范围:最小——最大

1、编辑MySQL的配置文件my.cnf,在 [mysqld] 下增加一行:
lower_case_table_names=1

2、重启数据库

3、验证修改成功
mysql> show variables like ‘lower%’;
±-----------------------±------+
| Variable_name | Value |
±-----------------------±------+
| lower_case_file_system | OFF |
| lower_case_table_names | 1 |
±-----------------------±------+
2 rows in set (0.01 sec)

获取错误消息

当sql语句执行出错时,会产生一个错误消息。但是不是所有的错误消息都会显示,这取决于错误的严重程度。当一条sql语句执行出错了,我们可以使用show warnings 语句来显示所有错误消息(提示、警告和错误)
 mysql> select ‘abc’/0;
±---------+
| ‘abc’ /0 |
±---------+
| NULL |
±---------+
1 row in set, 2 warnings (0.00 sec)

mysql> show warnings;
±--------±-----±----------------------------------------+
| Level | Code | Message |
±--------±-----±----------------------------------------+
| Warning | 1292 | Truncated incorrect DOUBLE value: ‘abc’ |
| Warning | 1365 | Division by 0 |
±--------±-----±----------------------------------------+
2 rows in set (0.00 sec)

mysql>

mysql大小写

1.lower_case_file_system:文件系统级别区分大小写,off表示区分大小写,on表示不区分。无法修改

2.lower_case_table_names:表名大小写敏感参数。可以修改,在配置文件里添加一行 lower_case_table_names=1
0:区分大小写,敏感
1:不区分大小(以小写保存文件)

3.MySQL在Linux下数据库名、表名、表别名大小写默认规则:
数据库名、表名、表别名严格区分大小写
create database Ceshi; -区分大小写
create database CeShi;
Ceshi和CeShi都创建成功
create table AaBbC(id int); -区分大小写
create table aabbC(id int);
AaBbC和aabbC都创建成功
select * from AaBbC AABBC join aabbC aabbc where AABBC.id=aabbc.id; - 区分大小写
select * from AaBbC AABBC join aabbC aabbc where AABBC.id=aabbc.id;

4.MySQL在Windows下各个对象名都不区分大小写

5.MySQL在Linux下列名、列别名的大小写的默认规则:
列名、列的别名忽略大小写
select * from AaBbC AABBC join aabbC aabbc where AABBC.Id=aabbc.iD;
select id ID from AaBbC ;

6.变量名严格区分大小写
set @aa=1; #用户变量 @@是系统变量
set @aA=1;

7.通过修改参数可以改变大小写的默认规则

mysql> show variables like ‘lower_case%’; ##展示参数以lower_case开头的
±-----------------------±------+
| Variable_name | Value |
±-----------------------±------+
| lower_case_file_system | OFF | ##mysql数据库所在的文件系统的大小写是敏感的(区分大小写)只读变量,不能修改
| lower_case_table_names | 0 |
±-----------------------±------+
2 rows in set (0.06 sec)

修改配置文件添加lower_case_table_names=1重启生效,数据库名、表名、表别名不区分大小写

注意:如果数据库已经存在大写的数据库名或表名,当你更改这个选项后,必须在重启 mysqld 前将大写的数据库名或表名转换为小写字母。否则,启动后,将不识别大写的名字

系统变量
1.MySQL服务器有特定的设置。当MySQL服务器启动时,这些设置被读取来确定下一步骤。例如,某些设置定义了数据如何被存储,其它的则影响到处理速度。这些设置叫做系统变量(system variable)

2.系统变量的名字前要带2个@@符号

3.查看系统中有哪些系统变量:
要得到系统变量的值,使用select语句:
例:查询MySQL服务器的最新版本
mysql> select @@version 
某一些系统变量的值可以被修改,使用set语句:
mysql> set @@show_compatibility_56 = 1;

数据库相关命令
1.mysql> show databases; 列出当前的数据库
2.mysql> use mysql 使用mysql数据库
3.mysql> select database(); 查询当前在哪个数据库
4.mysql> show tables; 进入数据库之后查询有哪些表
5.mysql> ? create 查看create的帮助
6.mysql> ? CREATE DATABASE 查看 CREATE DATABASE的用法
{命令字符1 | 命令字符2 } 表示两个命令必须选一个
[命令字符] 表示可选可不选
命令字符(小写) 表示变量(例如数据库的名字)根据实际情况改变
(命令字符|…) 表示多选一并且要带()
7.mysql> help create 查看create的帮助
8.mysql> CREATE DATABASE db_yang; 创建db_yang的数据库
9.mysql> CREATE TABLE t(id int,name varchar(20)); 创建t表(列与列之间以冒号分隔)
10.mysql>create table ceshi(id int,name varchar(20),primary key(id),key(name)); 表示创建了id和name两个列,一个数字列,一个字符列,数字列是主键,字符列是索引
11.mysql>select index_name from information_schema.statistics where table_name=‘ceshi’; ##表示访问 information_schema库的statistics表中的ceshi 列
12.mysql> desc STATISTICS; 表示查看STATISTICS表中的列的信息
13.mysql>drop database test; 将test数据库删掉

猜你喜欢

转载自blog.csdn.net/qq_43028054/article/details/93138446