一:语法

CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name       #SCHEMA是DATABASE的同义词  [IF NOT EXITTS]可防止建库是已经存在报错
[create_specification] ... #可指定数据库的特征 create_specification:
[DEFAULT] CHARACTER SET [=] charset_name #指定字符集
| [DEFAULT] COLLATE [=] collation_name #specifies the default database collation (排序规则)
例如:创建数据库并指定字符集
  create database db2 default character set=utf8

备注:数据库的字符集存储在数据库目录下的db.opt文件中,我们可通过  find / -name db.opt  查找并用less 查看相关db.opt文件如下

     

二:关于  CHARACTER SET  和   COLLATE

三:查看相关字符集

3.1 :查看MYSQL数据库服务器和数据库字符集

方法一:show variables like '%character%';
方法二:show variables like 'collation%';

3.2 :查看表的字符集(show table status from 库名 like  表名)

show table status from test3 like 'students';

3.4 :查看表中所有列的字符集(show full columns from 表名;)

show full columns from test3.students;

注意:数值型的列没有 collation特性

四:修改相关的字符集

4.1.创建时指定字符集

建库时指定
create database db2 default character set=utf8
建表时指定
create table test1(id int(6),name char(10)) default character set = 'gbk';

4.2修改相关字符集

修改全局字符集
/*建立连接使用的编码*/
set character_set_connection=utf8;
/*数据库的编码*/
set character_set_database=utf8;
/*结果集的编码*/
set character_set_results=utf8;
/*数据库服务器的编码*/
set character_set_server=utf8; set character_set_system=utf8; set collation_connection=utf8; set collation_database=utf8; set collation_server=utf8;

4.3 修改库的字符集(alter database 库名 default character set 字符集;)

mysql> show create database shiyan\G
*************************** 1. row ***************************
Database: shiyan
Create Database: CREATE DATABASE `shiyan` /*!40100 DEFAULT CHARACTER SET utf8 */
1 row in set (0.00 sec) mysql> alter database shiyan default character set gbk;
Query OK, 1 row affected (0.00 sec)

4.4修改表字符集(alter table 表名 convert to character set 字符集;)

修改表的字符集
mysql> show create table test1\G
*************************** 1. row ***************************
Table: test1
Create Table: CREATE TABLE `test1` (
`id` int(6) DEFAULT NULL,
`name` char(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=gbk #原字符集
1 row in set (0.00 sec) mysql> alter table test1 convert to character set utf8;
Query OK, 0 rows affected (0.58 sec)
Records: 0 Duplicates: 0 Warnings: 0 mysql> show create table test1\G
*************************** 1. row ***************************
Table: test1
Create Table: CREATE TABLE `test1` (
`id` int(6) DEFAULT NULL,
`name` char(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 #修改后的字符集
1 row in set (0.00 sec)

 4.5修改字段的字符集(alter table 表名 modify 字段名 字段属性 character set gbk;)

alter table test1 modify name char(10) character set gbk;

五:案例分析

  当我们不知道因和原因创建的一个表(teacher),当我们向表中插入数据是发生乱码如下

  sql : INSERT INTO teacher(tid,class_id,NAME)VALUE(312,2,'小明');

  

  

mysql之CREATE DATABASE Syntax(创建数据库)的更多相关文章

  1. 基于Apache+php+mysql的许愿墙网站的搭建create database xyq; //创建xyq数据库

    1.准备CentOS7与CentOS5的基础配置 2.在两台虚拟机中配置yum. 3.在CentOS7中安装httpd与php与php-mysql PS:截图时已安装 CentOS7 关闭防火墙与se ...

  2. Mysql命令drop database:删除数据库

    drop命令用于删除数据库. drop命令格式:drop database <数据库名>; 例如,删除名为 xhkdb的数据库:mysql> drop database xhkdb; ...

  3. (笔记)Mysql命令drop database:删除数据库

    drop命令用于删除数据库. drop命令格式:drop database <数据库名>; 例如,删除名为 xhkdb的数据库:mysql> drop database xhkdb; ...

  4. SHOW CREATE DATABASE Syntax

    SHOW CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name Shows the CREATE DATABASE statement that cre ...

  5. MySql入门(2-2)创建数据库

    mysql -u root -p; show databases; create database apigateway; use apigateway; show tables;

  6. DataBase First创建数据库

    Entity Framework:ADO.NET Entity Framework 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案,并提供了三种模式,分 ...

  7. (笔记)Mysql命令create table:创建数据表

    create table命令用来创建数据表. create table命令格式:create table <表名> (<字段名1> <类型1> [,..<字段 ...

  8. Navicat for MySQL使用手记(上)--创建数据库和表

    在管理MySQL数据库的图形化工具中,最为熟知的就是phpMyAdmin和Mysql-Front了,今天跟大家分享另外一个管理mysql数据库的另外一个利器---Navicat MySQL. Navi ...

  9. django OperationalError: unable to open database file 创建数据库

随机推荐

  1. sed 笔记

    sed是一个非交互式文本编辑器,他可以对文本文件和标准输入进行编辑,标准输入可以是来自键盘,文件重定向,字符串,变量甚至来自于管道的文本.sed适用于以下三种场合: 编辑相对交互式文本编辑器而言太大的 ...

  2. python 路径处理

    1.分解路径名 比如要把xxx/yyy/zzz.py 分解成文件名和目录 两种方法: 一.os.path.split(file) 二.os.path.basename()  ;   os.path.d ...

  3. JS中的事件(对象,冒泡,委托,绑定)

    - 事件,是文档或浏览器窗口中发生的一些特定的交互瞬间,JS与HTML之间的交互是通过事件实现的 对于web应用来说,有下面这些代表性事件:点击事件,鼠标移动,按下键盘等等 - 事件,是用户和浏览器之 ...

  4. 【测试工具】Macaca 自动遍历器 NoSmoke

    Macaca 提供的基础能力上研发出了一套多端深度遍历爬虫工具. 希望可以最大化减少UI 测试脚本的编写涵盖以下功能点: 支持iOS, Android,PC-Web 三个平台的自动化测试 同时可以通过 ...

  5. [剑指Offer]5-替换空格

    链接 https://www.nowcoder.com/practice/9023a0c988684a53960365b889ceaf5e?tpId=13&tqId=11210&tPa ...

  6. ROLAP、MOLAP和HOLAP区别

    对没有使用过数据仓库的人,对这三个概念确实是有点混淆不清.包括我自己本身不是做数据仓库出身,所以实际上是从实践出发,理论基础是有点匮乏的. 一.基本概念 1. OLAP OLAP(on-Line An ...

  7. 129. Sum Root to Leaf Numbers pathsum路径求和

    [抄题]: Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a ...

  8. 除了Office和wps,还有什么办公软件比较好用?

    一.不能没有的pdf软件 以下介绍的是PDF(Portable Document Format)常用的阅读.编撰以及其他工具.阅读工具1.Adobe AcrobatReader中文版应用平台:Wind ...

  9. CSU 1684-Disastrous Downtime

    题目链接:https://nanti.jisuanke.com/t/28879 思路:贪心,从最早收到请求的时刻开始,统计每个相差1000毫秒的时间段内接收的请求数量再计算该时间段内所需机器数目,答案 ...

  10. Effective C++ 笔记:条款 31 将编译关系降至最低

    31 : Minimize compilation dependencies between files 1 这关乎C++的类(或说都是类惹的祸) 1.1 C++类定义式的问题 C++类定义式不只叙述 ...