PHP网站建设mysql数据库,以下字符是啥中文意思呢?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP网站建设mysql数据库,以下字符是啥中文意思呢?相关的知识,希望对你有一定的参考价值。
DATETIME
TIMESTAMP
TIME :时间
YEAR :年
CHAR :字符
VARCHAR
TINYBLOB
BLOB :一滴
MEDIUMBLOB
LONGBLOB
TINYTEXT
TEXT :文本
MEDIUMTEXT
LONGTEXT
ENUM
SET :设置
BINARY :二进制的
VARBINARY
BIT :小块
BOOLEAN
GEOMETRY :几何学
POINT :点
LINESTRING
POLYGON :多边形
MULTIPOINT
MULTILINESTRING
MULTIPOLYGON
TIMESTAMP : 混合日期和时间值,时间戳
TIME :时间值或持续时间
YEAR :年份值
CHAR :定长字符串
VARCHAR: 变长字符串
TINYBLOB : 不超过255个字符的二进制字符串
BLOB :二进制形式的长文本数据
MEDIUMBLOB : 0 - 16777215字节 二进制形式的中等长度文本数据
LONGBLOB : 0 - 4294967295字节 二进制形式的极大文本数据
TINYTEXT : 0 - 255字节 短文本字符串
TEXT : 0 - 65535字节 长文本数据文本
MEDIUMTEXT : 0 - 16777215字节 中等长度文本数据
LONGTEXT : 0 - 4294967295字节 极大文本数据
ENUM : 枚举;列可赋予某个枚举成员
SET :集合;列可赋予多个集合成员
BINARY :类似Char的二进制存储,特点是插入定长不足补0
VARBINARY : 类似VarChar的变长二进制存储,特点是定长不补0
BIT :无符号[0,255],有符号[-128,127]
BOOLEAN : 布尔型,功能等同于微整型TINYTINT
GEOMETRY :层次结构的根类
POINT :点。指的是代表坐标空间中单个位置的几何类
LINESTRING :具有点之间线性内插特性的Curve
POLYGON :代表多边几何对象的平面Surface
MULTIPOINT :一种由Point元素构成的几何对象集合
MULTILINESTRING : 是一种由 LineString元素构成的MultiCurve几何对象集合
MULTIPOLYGON:是一种由Polygon元素构成的几何对象集合
参考资料:mysql 官方文档(网站) 参考技术A 我是来,ENUM是枚举类型,varchar是变长字符串,char是定长字符串,boolean是布尔型,tinytext是小文件格式0~254个字符。datetime是日期格式化
如何查看 MySQL 数据库/表/列的字符集是啥?
【中文标题】如何查看 MySQL 数据库/表/列的字符集是啥?【英文标题】:How do I see what character set a MySQL database / table / column is?如何查看 MySQL 数据库/表/列的字符集是什么? 【发布时间】:2010-11-06 04:33:41 【问题描述】:什么是(默认)字符集:
MySQL 数据库
MySQL 表
MySQL 专栏
【问题讨论】:
对于表和列,只需使用SHOW CREATE TABLE
,如***.com/questions/57628217/… 中所述
【参考方案1】:
这就是我的做法 -
对于模式(或数据库 - 它们是同义词):
SELECT default_character_set_name FROM information_schema.SCHEMATA
WHERE schema_name = "schemaname";
对于表格:
SELECT CCSA.character_set_name FROM information_schema.`TABLES` T,
information_schema.`COLLATION_CHARACTER_SET_APPLICABILITY` CCSA
WHERE CCSA.collation_name = T.table_collation
AND T.table_schema = "schemaname"
AND T.table_name = "tablename";
对于列:
SELECT character_set_name FROM information_schema.`COLUMNS`
WHERE table_schema = "schemaname"
AND table_name = "tablename"
AND column_name = "columnname";
【讨论】:
应该注意的是 information_schema 我相信只在 MySQL 5 以后。 据我所知,您可以在 MySQL 这个答案非常有帮助,但是如果您想解决 character_set / collation 问题,您可能还需要检查连接 character_set、client_character_set 等...:SHOW VARIABLES LIKE 'character_set%';显示变量,如“collation%”; 表操作为我返回“空集(0.00 秒)” 对于 Schema-Dummies:请注意,schemaname
可能只是数据库名称。【参考方案2】:
对于列:
SHOW FULL COLUMNS FROM table_name;
【讨论】:
你好,这是未来的说法!对于检查此答案的任何人,此方法仅显示排序规则,而不是字符集。我相信这在 MySQL 5 发生了变化。(请参阅更多点的答案以获得更好的方法)。 @fideloper, 通过排序规则,您可以知道字符集。 这是因为排序规则的第一部分包括字符集,例如如果排序规则是latin1_swedish_ci
,则字符集不能是latin1
之外的任何其他字符。如果排序规则是utf8mb4_general_ci
,则字符集不能是除utf8mb4
之外的任何其他字符。
这告诉你表格字符集。当 create table 语法中未指定字符集时,它不会告诉您将来创建的表的字符集(您将需要架构字符集)。【参考方案3】:
对于数据库:
USE your_database_name;
show variables like "character_set_database";
-- or:
-- show variables like "collation_database";
参照。 this page。并查看 MySQL 手册
【讨论】:
这只回答了问题的 1/3。 @TobyJ,我没有看到你在***.com/a/4805510/632951抱怨 cf 代表什么?链接虽然不存在。 @Pacerier 这应该合并到最佳答案中。这对我很有帮助。 @YannisDran:“cf。”是拉丁语“confer”=“bring together”=“compare”的缩写。它通常更普遍地用于表示“看到”。【参考方案4】:对于您在服务器上的所有数据库:
mysql> SELECT SCHEMA_NAME 'database', default_character_set_name 'charset', DEFAULT_COLLATION_NAME 'collation' FROM information_schema.SCHEMATA;
输出:
+----------------------------+---------+--------------------+
| database | charset | collation |
+----------------------------+---------+--------------------+
| information_schema | utf8 | utf8_general_ci |
| my_database | latin1 | latin1_swedish_ci |
...
+----------------------------+---------+--------------------+
对于单个数据库:
mysql> USE my_database;
mysql> show variables like "character_set_database";
输出:
+----------------------------+---------+
| Variable_name | Value |
+----------------------------+---------+
| character_set_database | latin1 |
+----------------------------+---------+
获取表格的排序规则:
mysql> USE my_database;
mysql> SHOW TABLE STATUS WHERE NAME LIKE 'my_tablename';
OR - 将输出创建表的完整 SQL:
mysql> show create table my_tablename
获取列的排序规则:
mysql> SHOW FULL COLUMNS FROM my_tablename;
输出:
+---------+--------------+--------------------+ ....
| field | type | collation |
+---------+--------------+--------------------+ ....
| id | int(10) | (NULL) |
| key | varchar(255) | latin1_swedish_ci |
| value | varchar(255) | latin1_swedish_ci |
+---------+--------------+--------------------+ ....
【讨论】:
什么版本的mysql显示type
的这个输出?我有 mysql 5.7.9 和 type
显示列的 data type
而不是 character set
。有些喜欢int(10)
varchar(255)
...等而不是utf8
我的输出将type
显示为data type
以及@MTK,也许上面是“输出:”部分中的复制粘贴错误。【参考方案5】:
对于表格:
SHOW TABLE STATUS
将列出所有表。
过滤使用:
SHOW TABLE STATUS where name like 'table_123';
【讨论】:
请注意。 show table status 中显示的排序规则不是表的字符集。排序规则告诉您字符是如何排序/比较的。例如utf8_bin_ci 比较数据时不考虑大小写(不区分大小写,因此“m”和“M”相同),utf8_bin_cs 比较区分大小写(因此“m”和“M”不同)。这与表格的字符集不同。 @Daan,停止传播错误信息。请参阅 ***.com/questions/1049728/… ,使用排序规则可以告诉字符集。【参考方案6】:查看数据库的默认排序规则:
USE db_name;
SELECT @@character_set_database, @@collation_database;
查看表格的排序规则:
SHOW TABLE STATUS where name like 'table_name';
要查看列的排序规则:
SHOW FULL COLUMNS FROM table_name;
查看表格的默认字符集
SHOW CREATE TABLE table_name;
【讨论】:
【参考方案7】:对于数据库:
只需使用这些命令:
USE db_name;
SELECT @@character_set_database;
-- or:
-- SELECT @@collation_database;
【讨论】:
这是官方mysql文档的答案。 dev.mysql.com/doc/refman/8.0/en/charset-database.html【参考方案8】: 选择表模式, 表名, CCSA.CHARACTER_SET_NAME 作为 DEFAULT_CHAR_SET, COLUMN_NAME, COLUMN_TYPE, C.CHARACTER_SET_NAME FROM information_schema.TABLES AS T JOIN information_schema.COLUMNS AS C USING (TABLE_SCHEMA, TABLE_NAME) 加入 information_schema.COLLATION_CHARACTER_SET_APPLICABILITY AS CCSA 开(T.TABLE_COLLATION = CCSA.COLLATION_NAME) WHERE TABLE_SCHEMA=SCHEMA() AND C.DATA_TYPE IN ('enum', 'varchar', 'char', 'text', 'mediumtext', 'longtext') 按 TABLE_SCHEMA 排序, 表名, COLUMN_NAME ;【讨论】:
非常好,埃里克。只需将该代码粘贴到 mysql 命令行中,按回车键,即可获得每个数据库中每个表中每一列的字符集:) @JerryKrinock 你得到当前数据库的每一列,如果没有选择数据库,则什么都没有。【参考方案9】:我总是只看SHOW CREATE TABLE mydatabase.mytable
。
对于数据库,看来您需要查看SELECT DEFAULT_CHARACTER_SET_NAME FROM information_schema.SCHEMATA
。
【讨论】:
在mysql数据库中可以有默认字符集select default_character_set_name from information_schema.schemata
是不够的,因为您无法分辨哪一行与哪个数据库相关。使用select default_character_set_name,schema_name from information_schema.schemata
或干脆:select*from information_schema.schemata
。
我用过SELECT * FROM information_schema.SCHEMATA WHERE SCHEMA_NAME = '<database-name>' \G;
效果很好:) 谢谢!【参考方案10】:
对于表格和列:
show create table your_table_name
【讨论】:
它会告诉您用于创建当前表的完整 SQL,其中应包括其字符集。 另外,如果该列没有说明特定的字符集,那么它使用的是表的默认字符集。【参考方案11】:对于数据库:
SELECT SCHEMA_NAME 'database', default_character_set_name 'charset', DEFAULT_COLLATION_NAME 'collation' FROM information_schema.SCHEMATA;
示例输出:
mysql> SELECT SCHEMA_NAME 'database', default_character_set_name 'charset', DEFAULT_COLLATION_NAME 'collation' FROM information_schema.SCHEMATA;
+----------------------------+---------+--------------------+
| database | charset | collation |
+----------------------------+---------+--------------------+
| information_schema | utf8 | utf8_general_ci |
| drupal_demo1 | utf8 | utf8_general_ci |
| drupal_demo2 | utf8 | utf8_general_ci |
| drupal_demo3 | utf8 | utf8_general_ci |
| drupal_demo4 | utf8 | utf8_general_ci |
| drupal_demo5 | latin1 | latin1_swedish_ci |
...
+----------------------------+---------+--------------------+
55 rows in set (0.00 sec)
mysql>
【讨论】:
这不是the first answer on top和***.com/a/1049753/632951的重复吗? @Pacerier 你真的把我的答案和这些正确比较了吗?【参考方案12】:对于数据库:
SHOW CREATE DATABASE "DB_NAME_HERE";
在创建数据库 (MySQL) 时,默认字符集/排序规则始终为 LATIN,而不是您在最初创建数据库时选择了不同的字符集/排序规则
【讨论】:
Citation needed for "default character set/collation is always LATIN" in MySQL. 需要引用吗?你用过 MySQL 数据库吗?每个人都知道默认的字符集/排序规则是latin1_swedish_ci
,因为 MySQL 的创建者 Monty Widenius 是瑞典人,他在开始时并没有像他应该有的那样考虑全局。【参考方案13】:
正如许多人之前所写,SHOW FULL COLUMNS 应该是获取列信息的首选方法。 缺少的是一种在此之后无需直接访问元数据表即可获取字符集的方法:
SHOW FULL COLUMNS FROM my_table WHERE Field = 'my_field'
SHOW COLLATION WHERE Collation = 'collation_you_got'
【讨论】:
【参考方案14】:对于数据库:
USE db_name; SELECT @@character_set_database;
【讨论】:
【参考方案15】:显示全局变量,其中 variable_name like 'character_set_%' 或 variable_name like 'collation%'
【讨论】:
以上是关于PHP网站建设mysql数据库,以下字符是啥中文意思呢?的主要内容,如果未能解决你的问题,请参考以下文章