一:语法

  1. CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name #SCHEMA是DATABASE的同义词 [IF NOT EXITTS]可防止建库是已经存在报错
  2. [create_specification] ... #可指定数据库的特征
  3.  
  4. create_specification:
  5. [DEFAULT] CHARACTER SET [=] charset_name #指定字符集
  6. | [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数据库服务器和数据库字符集

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

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

  1. show table status from test3 like 'students';

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

show full columns from test3.students;

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

四:修改相关的字符集

4.1.创建时指定字符集

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

4.2修改相关字符集

  1. 修改全局字符集
  2. /*建立连接使用的编码*/
  3. set character_set_connection=utf8;
  4. /*数据库的编码*/
  5. set character_set_database=utf8;
  6. /*结果集的编码*/
  7. set character_set_results=utf8;
  8. /*数据库服务器的编码*/
  9. set character_set_server=utf8;
  10.  
  11. set character_set_system=utf8;
  12.  
  13. set collation_connection=utf8;
  14.  
  15. set collation_database=utf8;
  16.  
  17. set collation_server=utf8;

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

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

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

  1. 修改表的字符集
  2. mysql> show create table test1\G
  3. *************************** 1. row ***************************
  4. Table: test1
  5. Create Table: CREATE TABLE `test1` (
  6. `id` int(6) DEFAULT NULL,
  7. `name` char(10) DEFAULT NULL
  8. ) ENGINE=InnoDB DEFAULT CHARSET=gbk #原字符集
  9. 1 row in set (0.00 sec)
  10.  
  11. mysql> alter table test1 convert to character set utf8;
  12. Query OK, 0 rows affected (0.58 sec)
  13. Records: 0 Duplicates: 0 Warnings: 0
  14.  
  15. mysql> show create table test1\G
  16. *************************** 1. row ***************************
  17. Table: test1
  18. Create Table: CREATE TABLE `test1` (
  19. `id` int(6) DEFAULT NULL,
  20. `name` char(10) DEFAULT NULL
  21. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 #修改后的字符集
  22. 1 row in set (0.00 sec)

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

  1. 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. keepalive高可用

    Keepalived软件起初是专门为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能.因此,Keepalived除了能够管理LVS软 ...

  2. 手游开发之lua的table 元表的运用

    元表在项目中的运用,其中就包括元方法这点.元方法是指__index和__newIndex,下面我总结下,更详细的例子讲解可以参考<lua程序设计 第2版>的第13章内容.长h短说,简言之有 ...

  3. NSLog无法使用

    iOS/macos 中 #import<foundation/foundation.h> nslog不能用 如果项目中包含c/c++程序代码 将其后缀修改成.m .mm 将项目的build ...

  4. 通过django的rest-framework……(CBV)

    为什么不使用FBV,因为CBV重用性很高 先看一个例子: from django.views.generic.base import View from django.http import Http ...

  5. 数字提取——C语言

    Problem Description AekdyCoin is the most powerful boy in the group ACM_DIY, whose signature is valu ...

  6. 搭建Fabric网络(四)运行网络

    启动网络 docker-compose -f docker-compose-cli.yaml up -d如果container cli关闭了,可以手动启动 docker start cli 设置环境变 ...

  7. 【APP测试(Android)】--交叉事件

  8. 图解HTTP第五章

    与 HTTP 协作的 Web 服务器 一台 Web 服务器可搭建多个独立域名的 Web 网站,也可作为通信路径上的中转服务器提升传输效率. 1>用单台虚拟主机实现多个域名 HTTP/1.1 规范 ...

  9. urlrewrite的rule怎么写

    一.正则表达式教程 常用正则如下: .              换行符以外的所有字符 \w          匹配字母或数字或下划线或汉字 \s           匹配任意的空白符 \d     ...

  10. 响应式---web设计之CSS3 Media Queries

    一:设置视口  (view [vju:] 看; ==看待  port [pɔ:t] 接口)==视口 <meta name="viewport" content="w ...