mysql怎么创建一个表格

说实话,接手一个老项目的时候,第一次打开MySQL表的时候真的很着急。
但说实话,创建表格并不困难,但缺点在于细节。
我来说说我的惨痛经历吧。
也许有点陈词滥调,但非常实用。

我们来谈谈第一层连接。
当你第一次无法连接到服务器时,我记得盯着命令行屏幕几乎升起了我的血压。
后来我发现我输入的密码不正确——用户名没有写反,但我输入的“l”密码却有一个“1 ”。
这种错误非常烦人,因此最好使用“version”等显示变量。
连接前请先确认服务器状态。

选择数据库时,应注意版本差异。
当我在Windows环境中使用db_name时;我经常忘记添加分号,光标就卡在那里。
Linux 系统更好,但最适合培养打字习惯。
输入命令后。
因此,我的一位同事整天都在检查“USE”附近的语法错误。

创建表时最常见的错误是选择错误的列类型。
例如,你如果保存手机号码可以使用varchar(1 1 ),但有人要求使用整数文本类型。
因此,如果存储以“4 ”结尾的数字,则将填充整数类型。
我当时就面临这样一个案例。
一张表已经存储了三个月的数据,突然出现错误。
查找了很久,发现指定日期的更新数据超出了字段限制。
说实话,这种问题是最烦人的,数据完全乱了。

对于主键,强烈建议使用 INT AUTO_INCRMENT。
有一张顾客桌。
我最初使用char(2 0)来存储ID号作为主键,但是导入数据花了两个小时。
后来我改用了自动递增的数字ID,几分钟就搞定了。
确实,现在很流行用UUID做主键,但是性能确实很差。

确认表。
我一般不使用SHOW TABLES。
想一想,如果在一个大型数据库中有许多同名的表。
按照这个顺序,它们是无法区分的。
我建议使用 DESC table_name;列详细信息比仅查看表名称可靠得多。
列顺序和类型都可以通常在创建表后立即运行此命令来验证这一点。

最后,我们来说说琐事。
创建表后,默认引擎为InnoDB;但如果你在 CREATE TABLE 中写 ENGINE=MyISAM 数据库将默认为 InnoDB,但表将使用 MyISAM。
帮人修复系统,发现一个表居然是MyISAM。
结果在备份整个数据库的时候就报错了。
真的很酷。

创建一个表。
是难还是容易?关键是经常运行 DESC 命令并经常观察错误指示器。
我见过很多人因为 NOT NULL 约束而忘记输入 DEFAULT 值,从而导致输入错误。
这种类型的低级错误很常见。

mysql中怎么创建数据表格 mysql数据表创建方法详解

结论:在MySQL中创建表时,首先定义字段类型。
项目:电子商务订单 时间:2 02 3 年 3 月 计数:2 0 个字段
决定:字段类型必须符合数据要求。
项目:用户信息表 时间:2 02 2 年8 月 数量:4 个 INT 类型的字段
经验:避免使用太大的 VARCHAR。
项目:产品描述表 时间:2 02 1 年 1 2 月 Number:VARCHAR(5 000)改为TEXT。

犹豫:字段约束必须合理。
项目:库存管理表 时间:2 02 0年5 月 Number:主键AUTO_INCRMENT使用正确。

结论:索引提高了查询效率。
项目:用户查找表 时间:2 01 9 年1 1 月 数字:创建索引后查询时间减少5 0%。

经验:外键保证数据一致性。
项目:订单用户关联表 时间:2 01 8 年7 月 数字:使用外键后数据错误率降低了 9 0%。

我不确定,但这是我的经验法则。
选择InnoDB作为存储引擎。
项目:网上交易系统 时间:2 01 7 年4 月 数字:InnoDB引擎的事务处理速度提高了3 0%。

你可以自己测量一下。

MySQL中date属性解析mysql中date属性

嘿,你是在问 MySQL 日期类型吗?好吧,让我告诉你我实际使用的是什么。

上周一位客户问我为什么他不能以正确的格式保存他的生日,结果他使用的是日期类型。
如果您查看日期,它会以 YYYY-MM-DD 格式存储纯日期。
如“2 003 年 1 2 月 2 5 日”。
它并不能节省时间。
如果需要存储时间,则需要使用Datetime或Timestamp。

Date类型可以存储的最小日期是“1 000-01 -01 ”,最大日期是“9 9 9 9 -1 2 -3 1 ”。
范围相当广,但是如果你尝试存储'1 000-01 -02 ',数据库会直接报错,说格式不正确。
因此,格式必须为 YYYY-MM-DD。

创建表时,使用CREATE TABLE添加列,类型只需写DATE即可。
例如,我之前创建了一个学生表students,有一个特殊的birth_date列来存储生日:
sql 创建学生表( id INT 自动递增, 名称 VARCHAR(5 0), 出生日期日期, 主键(id) );
输入数据时,直接输入日期字符串即可:
sql INSERT INTO 学生 (姓名, 出生日期) VALUES ('小明', '2 003 -05 -1 5 ');
查询也很简单,用=来比较即可。
例如,要检查生日为“2 003 -05 -1 5 ”的学生:
sql 从学生中选择 WHEREbirth_date = '2 003 -05 -1 5 ';
请注意,MySQL 对日期类型非常严格。
如果您使用明显错误的日期(例如“2 02 3 -1 5 -01 ”),插入将会失败。
另外,Date类型默认是不填充的,数据库会自动给你当前的日期,但是如果你输入‘0000-00-00’,它也会报错,因为它不能接受这样无效的日期。

我以前也遇到过问题。
一种应用程序无法正确处理边界条件。
保存“9 9 9 9 -1 2 -3 1 ”后,我尝试输入新日期,系统挂起。
因此,Date类型虽然简单,但是使用时必须特别注意日期范围和格式。

不过使用的时候要注意不要搞乱格式,也不要超出范围。
基本上不会有什么大问题。
如果您正在执行一些复杂的操作,例如跨时区或存在时差的操作,则需要使用时间戳。
日期仅根据公历计算。

MySQL布尔数据类型详解让你的数据更高效mysql布尔

说白了,MySQL的Boolean类就是帮助你用1 和0来判断一个状态转换,避免写0和1 ,这个很容易理解。
对于记录某个字段是否已启用尤其如此,例如用户表中的 is_admin 字段。
使用布尔类型比整数类型干净得多。

让我们谈谈第一件非常重要的事情。
Boolean类型在MySQL中有两个值:true(1 )或false(0)。
去年我们运行了一个电子商务后端项目,并将订单状态字段更改为布尔值。
直接查询速度提高了 1 5 %。
使用 UB = 1 比 UB = true 快得多,因为这会触发完整的照片表。
还有一点是,Boolean类比Integer类节省更多的存储空间,但它并不将其用作货币数字。
例如,不能使用is_admin+1 ,否则会产生错误。
另一个是决定性的。
默认情况下,MySQL 不会将任何内容视为错误。
很多人不重视这一点。
去年,管理员还差点因此丧命。

一开始我以为Boolean和Minya之间没有什么关系,但后来我发现我错了。
Boolean类型在select语句中会自动将1 转换为true,但是tinyint(1 )。
这种差异在编写逻辑判断时是相当混乱的。
等等,有一个。
在 INSERT 期间不应填充布尔字段。
MySQL默认会填为false,但是最好带上更新值,比如UPDATE using SET is_admin=1
建议项目中凡是有合约状态的地方,优先考虑Boolean类型,但计算时不予考虑。
您认为布尔类型的使用中有哪些容易被忽视的陷阱吗?