数据库连接
Debian9 初始默认连接,无密码
root用户:mysql -u root -p
创建数据库相关
查看当前使用的数据库
- SHOW DATABASE();
- SHOW TABLES;第一行为Tables_in_XX;
- STATUS;
查看数据库
- 显示所有数据库
SHOW DATABASES; 或者SHOW SCHEMAS;
- 显示数据库创建选项
SHOW CREATE {DATABASE | SCHEMA} db_name;
- SHOW CREATE DATABASE 引用服务系统变量sql_quote_show_create中的数据库名值。
创建数据库
CREATE [OR REPLACE] {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [create_specification]
create_specification:
[DEFAULT] CHARACTER SET [=] charset_name |
[DEFAULT] COLLATE [=] collation_name
REPLACE like this(10.1.3+):
DROP DATABASE IF EXISTS db_name;
CREATE DATABASE db_name ...;
删除数据库
DROP {DATABASE | SCHEMA} [IF EXISTS] db_name;
- 需要删除权限,另删除数据库的同时不会删除用户权限
修改数据库
ALTER {DATABASE | SCHEMA} [db_name] alter_specification
ALTER {DATABASE | SCHEMA} db_name UPGRADE DATA DIRECTORY NAME
alter_specification:
[DEFAULT] CHARACTER SET [=] charset_name |
[DEFAULT] COLLATE [=] collation_name
修改数据库特性,数据库特性存于数据库目录db.opt文件
CHARACTER COLLATION关系
查看字符集设置:
SHOW CHARACTER SET;
mariadb 默认字符集:latin1
-
Server等级修改
character_set_server 系统变量用于改变server默认字符集SET character_set_server = ' ';
-
Database等级修改
CREATE / ALTER DATABASE db_name DEFAULT CHARACTER SET = ' ';
查看各个数据库的默认字符集设置:SELECT * FROM INFORMATION_SCHEMA.SCHEMATA;
-
Table等级修改
创建时设置:CREATE TABLE english_names (id INT, name VARCHAR(40))
CHARACTER SET 'utf8'
COLLATE 'utf8_icelandic_ci';修改表:
ALTER TABLE table_name
CONVERT TO CHARACTER SET charset_name [COLLATE collation_name]; -
Column等级修改
CREATE TABLE european_names (
croatian_names VARCHAR(40) COLLATE 'cp1250_croatian_ci',
greek_names VARCHAR(40) CHARACTER SET 'greek');
查看字符比对设置:
SHOW COLLATION;
mariadb 默认collation为latin1_swedish_ci
- SET collation_server = ' ';
修改默认字符集或者比对设置不会修改存储过程和存储函数,需要丢弃重新创建;
当修改默认字符集,如果未制定对比,修改后字符集默认的比对设置将会启用;