草庐IT

sqldatatypes

全部标签

mysql - SQL Select 包括数据类型和数据值

我如何从表中选择数据并将数据类型包含在值中?例如,我有一个名为EMPLOYEE的表,其中包含fname、lastname、phone等。如果我这样做:SELECT*FROMEMPLOYEE我得到了所有的列。如果我这样做:SELECTCOLUMN_NAME,DATA_TYPEFROMINFORMATION_SCHEMA.COLUMNSWHERETABLE_NAME='EMPLOYEE'ORDERBYORDINAL_POSITION我得到了所有的列名和它们的数据类型。我需要将这两者结合起来,以便将值与数据类型一起显示。我是SQL的新手,但我在网上搜索了一些并尝试了各种JOIN和UNION语

mysql - 在MySQL中,当只需要TEXT时,LONGTEXT是否浪费空间?

我有一列,它的数据类型是LONGTEXT。TEXT数据类型足以满足95%的值。我需要LONGTEXT仅用于5%的值。现在我想知道,在LONGTEXT中存储一个小值会浪费很多空间吗?那是优化吗? 最佳答案 让我们看看MySQL文档。TEXT[(M)][CHARACTERSETcharset_name][COLLATEcollation_name]ATEXTcolumnwithamaximumlengthof65,535(2^16−1)characters.Theeffectivemaximumlengthislessifthevalu

mysql - 使MySQL不将字符串转换为数字

我的应用程序中有一个查询,它按ID或用户名从表中选择用户:SELECT*FROMusersWHEREid='$x'ORusername='$x'这在给定用户名如foo、bar123或IDs如1、123时有效。但是,当我提供像2foo这样的用户名时,它会同时选择用户2foo和id=2的用户。所以它获取2foo的2并找到一个用户。此外,我收到一条警告消息:1292:TruncatedincorrectDOUBLEvalue:2foo。有没有办法告诉MySQL不要进行这种转换(对于这个查询而不是整个数据库)?或者我是否需要在查询后进行过滤以丢弃错误结果? 最佳答案

用于存储负数的 MySQL 数据类型

我有一个评分系统,范围从-1到5到0。所以我需要存储以下值-1012345考虑到我想获取每个值的总数(不是总和),哪种数据类型最好? 最佳答案 我会选择TINYINT,已记录here.它占用1个字节的存储空间,范围是-128到127。 关于用于存储负数的MySQL数据类型,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/16617274/

mysql - 如何修改现有列的数据类型?

有点大的表(约10,000条记录)中的一列的数据类型为DECIMAL(10,0)。我正在使用MySQL。我希望这些值显示到小数点后两位,所以我需要将其更改为DECIMAL(10,2),而不会破坏表的现有记录。这是怎么做到的? 最佳答案 您使用的是哪个数据库管理系统?对于MySQL,你可以这样尝试:altertabletblNamemodifycolumnNamenewDataType; 关于mysql-如何修改现有列的数据类型?,我们在StackOverflow上找到一个类似的问题:

PHP PDO Bit(1) 返回错误的数据类型

当我使用PDO对mysql数据库运行此查询时,它返回错误的数据类型。DBH=newPDO("mysql:host={$host};dbname={$db}",$user,$pass,array(PDO::MYSQL_ATTR_INIT_COMMAND=>"SETNAMESutf8"));$this->stmt=$this->DBH->prepare($query);if(count($parameters)>0){foreach($parametersas$key=>$var){switch($var){caseis_int($var):$this->stmt->bindValue($

mysql - Sequelize 数据类型 TEXT 不适用于 mySQL

我在mySQL数据库中使用sequelizeORM。我有一个属性类型为TEXT的模型作为:description:{type:Sequelize.TEXT,unique:true},当我试图为相应的模型创建表时,它给出了一条错误消息:UnhandledrejectionSequelizeDatabaseError:ER_BLOB_KEY_WITHOUT_LENGTH:BLOB/TEXTcolumn'description'usedinkeyspecificationwithoutakeylength这在与postgreSQL一起使用时效果很好。我想到的这个错误的可能原因可能是mySQL

mysql - mysql join可以发生在不同的数据类型上吗

假设我们有两个表,表A(父表)和表B(子表),它们之间是一对多的关系,通过parent_id(VARCHAR(100))表B中的字段。parent_id字段的数据类型与表A中的id(INT(11))字段不同。那么问题是MYSQLJOIN查询是否可以返回正确的记录?我遇到过这种情况。我正在运行以下查询:SELECTp.payment_amount,s.company_nameFROMpaymentspLEFTJOINsupplierssONp.supplier_id=s.idLIMIT5这里一个供应商有多个付款。现在这个查询返回了5条记录,我可以在其中看到所有5条记录的payment_a

mysql - 使用 DECIMAL(31,0) 的原因

为什么有些Oracle背景的人对整数使用DECIMAL(31,0)。在MySQL中效率不高。 最佳答案 Oracle将“INTEGER”ANSI数据类型实现为NUMBER(38)的同义词有关详细信息,请参阅“LearnOracle:DatatypesforSQLandPL/SQL,Numbers”但是,应该使用下表作为Oracle和MySQL中数据类型之间的映射:"Oracle®DatabaseSQLDeveloperSupplementaryInformationforMySQLMigrations"Oracle和MySQL比较>

mysql - 存储 JWT token 的最佳 MYSQL 或 Maria DB 数据类型是什么?

我正在使用以下技术栈Laravel5.2MySQL为了安全起见,我使用了JWT(JSONWebtoken)我能够使用JWT保护我的应用程序。我想将JWTtoken存储在mysql数据库中。QUESTIONWhichofthefollowingdatatypeisbesttostoreJWTtokeninMySQLDB?可变字符CLOB文本长文本 最佳答案 与其他任何事情一样,答案是“视情况而定”。首先,您需要确定存储完全编码的JWT是否是正确的解决方案。我倾向于不存储JWT字符串,而是存储用于构造JWT的声明,这将在数据库中节省大量