mysql - SQL:如果用户没有为属性定义任何数据类型或将所有数据类型保留为 varchar 怎么办?

标签 mysql sql database sqlite relational-database

我从 SQL 开始。我正在使用sqlit数据库学习它。

在练习创建表时,我注意到即使我没有定义任何数据类型,也会创建一个表,并且我能够执行所有插入和选择命令。

此外,如果我将所有数据类型定义为 varchar,它也能正常工作。

请告诉我这是正确的方法吗?

最佳答案

SQL标准定义了字段类型,每种类型都有不同的操作可用,所以不,将所有设置为varchar不是正确的方法。

另一方面,SQLite 使用不同的类型系统,实际上它类似于动态类型语言,其中类型与值相关联,而不是与变量相关联。在 SQLite 中,您可以将整数存储在声明为 varchar 的字段中,它不仅可以工作,而且请记住它是一个整数并作为整数进行操作。

对于嵌入式库来说,它是一个非常实用的系统,但偏离了标准,所以如果你想学习“SQL”,那么最好不要依赖SQLite的特性。

关于mysql - SQL:如果用户没有为属性定义任何数据类型或将所有数据类型保留为 varchar 怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27194471/

相关文章:

php - 页面加载时显示的错误消息

sql - 我如何将此 SQL 代码转换为 LINQ?

php - sql获取多个自定义帖子元值

Sql 查询,选择唯一标识符给出 - 将数据类型 varchar 转换为 uniqueidentifier 时出错

java - 如何在 StringBuilder 中追加星号 * ?

java - 在 Spring 类中获取 Hibernate 事务

mysql - 将 MySQL 5.7 更新到 MySQL 8.0

mysql - Oracle Db 按两列分组

mysql - PHP、PDO SQL 查询两次之间然后每小时拆分

java - 指定数据库连接的目录路径