mysql是开源的,一个非常好用的数据库,上一章给大家介绍了Navicat for MySQL来管理mysql数据库,本章给大家介绍一下数据库的基本操作。
数据库相关操作
1.创建数据库
create database basictest;
2.查看所有数据库
show databases;
结果:
+--------------------+
| Database |
+--------------------+
| information_schema |
| basictest |
| dedecmsv57gbk |
| mysql |
| phptest |
| test |
| |
+--------------------+
8 rows in set
3.选择特定数据库
use basictest;
4.查看数据库默认编码
show variables like 'char%';
结果:
+--------------------------+----------------------------------------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | D:\mysoftware\DedeAMPZ\DedeAMPZ\Program\MySQL5\share\charsets\ |
+--------------------------+----------------------------------------------------------------+
如果要查看某个数据库的编码,在运行上面的命令前,应先执行use db_name;命令切换数据库(db_name为要查看的数据库名)。
查看字符的排序
show variables like 'collation%';
结果:
+----------------------+-------------------+
| Variable_name | Value |
+----------------------+-------------------+
| collation_connection | utf8_general_ci |
| collation_database | latin1_swedish_ci |
| collation_server | latin1_swedish_ci |
+----------------------+-------------------+
关于数据编码,mqsql中涉及到下面几个问题:
1、客户端发过来的数据使用什么字符集编码的?
2、接收到数据之后,应该用什么编码格式编码之后再将数据插入到mysql server中?
3、执行查询之后,查询出来的结果应该用什么编码集编码之后再返回?
4、数据库的各种表的数据,应该用什么字符集编码,以及它们用什么排序?
5.查询语句的字符串比较时,应该在哪一个标准里面来比较,比如:’Mueller’ = ‘Müller’是为真还是假?
6.数据库的各种元数据,包括表名、数据库名、密码、用户名、以及comment等,用什么字符集表示?
针对这六个问题,mysql就提供了不同的环境变量来进行跟踪,这些变量为:
变量名 | 含义 |
---|---|
character_set_server | 默认的内部操作字符集 |
character_set_client | 客户端来源数据使用的字符集,也就是客户端发过来的查询语句使用的什么字符集 |
character_set_connection | MySQL接受到用户查询后,按照character_set_client将其转化为character_set_connection设定的字符集。 |
character_set_results | 查询结果编码的字符集 |
character_set_database | 当前选中数据库的默认字符集 |
character_set_system | 系统元数据(字段名等)字符集 |
collation_connection | 执行字符比较时采用的编码规则 |
5.改变MySQL数据库的默认编码
安装MySQL数据库时的默认编码是latin1,实际使用时可能要使用其他编码。如果要将默认编码改为utf8:
首先修改MySQL的配置文件/etc/mysql/my.cnf:
在[client]下追加:
default-character-set=utf8
在[mysqld]下追加:
character-set-server=utf8
在[mysql]下追加:
default-character-set=utf8
修改完毕后,使用如下命令之一重启mysql服务:
service mysql restart
/etc/init.d/mysql restart
改变后,之前手工创建的数据库如未显式指定编码,则其编码仍是默认的latin1,可使用如下命令更改编码:
mysql> alter database db_name CHARACTER SET utf8;
6.mysql数据库乱码问题
解决乱码的方法是,在执行SQL语句之前,将MySQL以下三个系统参数设置为与服务器字符集character-set-server相同的字符集。
character_set_client:客户端的字符集。
character_set_results:结果字符集。
character_set_connection:连接字符集。
7.删除数据库
drop database 数据库名 ;