mysql基本操作有哪些

说白了,MySQL基本操作就是建库、建表、增删改查,但细节多得很。

展开来说,先说最重要的:建表时字段类型别瞎用,比如用CHAR(1 )存性别,去年我们跑那个项目就是因为这个,每次插入都得加引号,简直麻烦死人。
另外一点,清空表数据用DELETE FROM肯定比TRUNCATE TABLE慢,去年我们跑那个3 000量级的项目,TRUNCATE直接秒了DELETE,差了快一分钟。
还有个细节挺关键的,导入.sql文件时别忘了USE数据库,否则报错不说,还容易误操作别的库。

我一开始也以为UPDATE随便改就行,后来发现不对,条件写错了全表都会改,差点把生产环境数据整没了。

总之,建表时字段类型选对,批量操作用TRUNCATE,导入文件记得先USE库。
这个点很多人没注意,但踩坑了才知道有多疼。

如何使用命令在navicat中创建数据库及表

说白了,Navicat提供命令行界面主要是为了给追求效率和批处理的用户留条后路。
其实很简单,图形界面适合快速上手,但命令行能让你在量大的时候把效率拉满。
去年我们跑的那个项目,处理3 000条数据导入,用命令行脚本分分钟搞定,要是点着鼠标一个个来,天都黑了。

先说最重要的,命令行适合批量操作,比如用"source"命令直接跑整个SQL文件,去年我们半夜搞活动,全靠这个秒开表结构。
另外一点,命令行能直接接管道,比如用"select...|sed"做数据清洗,这个很多人没注意。
还有个细节挺关键的,命令行参数可以传变量,像"navicat -u user -p pass"登录,比填对话框省事多了。

我一开始也以为命令行是给老古董用的,后来发现不对,现在写脚本全靠它。
等等,还有个事,Windows下用"cmd"执行Navicat命令行会报路径错,得用完整路径或者加"start"命令,这个点很多人没注意。

建议试试用命令行跑几个小脚本,绝对觉得值回票价。

mysql怎么创建一个表格

说实话,在MySQL里建表这事儿吧,我当年刚摸数据库那会儿也觉得挺绕的。
不过搞懂了套路,其实也就那么回事儿。

记得第一次给客户系统搭环境时,我连着命令行,输入mysql -uadmin -p这行命令,手心都出汗了——那时候还用明文密码呢。
密码输完,看见光标在那儿闪啊闪,说实话当时还有点紧张,生怕输错了啥。
后来才慢慢习惯这种命令行交互的感觉。

说到选数据库,我有个小习惯。
比如我要给某个电商项目建用户表,我不会直接USE projectdb;就完事儿,会先SHOW DATABASES;确认下叫啥名最合适。
有时候项目名一变,数据库名跟着改,容易出岔子。

建表的时候最容易踩坑的是列定义。
我之前有个项目,需求说地址字段要存省市县三级,一开始就想着VARCHAR(2 5 5 )糊上去了。
结果后来查数据发现,北京这种短地名占位多,上海这种长地名就特别挤。
所以现在建表前,我肯定先琢磨琢磨数据量大概是个啥情况。
像这种,address VARCHAR(5 00)可能比VARCHAR(2 5 5 )更稳妥些。

主键这事儿,我坚持用AUTO_INCREMENT。
刚开始用UNIQUE+手动递增,后来发现更新数据时偶尔会手滑填重复的数字,特别烦。
AUTO_INCREMENT这边MySQL自己管着,省心多了。

验证表格?我通常不止用SHOW TABLES;。
建完表后,我会直接USE mydatabase;然后DESCRIBE mytable;看下列定义对不对,或者直接SELECT FROM mytable LIMIT 1 ;尝尝能不能查出来。
这种即时反馈的感觉,比光看命令行输出要直观多了。

其实吧,这些步骤说起来简单,但真上手,每个环节都可能出点小状况。
比如连接不上服务器,可能是端口不对;建表语句报错,多半是列类型写错了。
这些踩过的坑,现在想想都是宝贵的经验。