DEFAULT CHARACTER SET utf8 COLLATE utf8_general_

    在创建数据库的时候,经常用到一句:CREATE DATABASE `tpcms` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci。

     总结如下:

 

在创建数据库的时候,经常用到一句:

CREATE DATABASE `tpcms` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci

具体意思不太明白,经查阅一番,总结如下:

 * CREATE DATABASE `tpcms`:创建数据库tpcms。在命令行里创建的时候,`要用键盘Esc下的那个,而不是单引号,否则出错;
 * DEFAULT CHARACTER SET utf8:数据库字符集。设置数据库的默认编码为utf8,这里utf8中间不要"-";
 * COLLATE utf8_general_ci:  数据库校对规则。该三部分分别为数据库字符集、通用、区分大小写。

       utf8_unicode_ci比较准确,utf8_general_ci速度比较快。通常情况下 utf8_general_ci的准确性就够我们用的了,在我看过很多程序源码后,发现它们大多数也用的是utf8_general_ci,所以新建数据 库时一般选用utf8_general_ci就可以了。

比如:

CREATE DATABASE `articles` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci

这句话主要是用来指定数据库的字符集和校对规则。每一个数据库有一个数据库字符集和一个数据库校对规则,它不能够为空。CREATE DATABASE 和 ALTER DATABASE语句有一个可选的子句来指定数据库字符集和校对规则: 

CREATE DATABASE db_name 
     [[DEFAULTCHARACTER SET charset_name] 
     [[DEFAULTCOLLATE collation_name]

ALTER DATABASE db_name 
     [[DEFAULTCHARACTER SET charset_name] 
     [[DEFAULTCOLLATE collation_name]

例如: 

CREATE DATABASE db_name DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;

MySQL这样选择数据库字符集和数据库校对规则: 

如果指定了CHARACTER SET X和COLLATE Y,那么采用字符集X和校对规则Y。 
如果指定了CHARACTER SET X而没有指定COLLATE Y,那么采用CHARACTER SET X和CHARACTER SET X的默认校对规则。 否则,采用服务器字符集和服务器校对规则。 

如果在CREATE TABLE语句中没有指定表字符集和校对规则,则使用数据库字符集和校对规则作为默认值。

根据以下给的数据库表结构,用PyQt5+MySQL实现增删改查,表结构如下:CREATE TABLE `register_copy1` ( `id` int NOT NULL AUTO_INCREMENT, `register_type` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `tooth_number` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `hospital_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `doctor_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `patient_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `color_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `category_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `price` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `tooth_a` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `tooth_b` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `tooth_c` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `tooth_d` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `number` int NOT NULL, `amount_of_money` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `delivery_date` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `register_date` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `remark` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `total_amount` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 48 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; SET FOREIGN_KEY_CHECKS = 1;
03-08
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值