插入数据前必须使用use选择操作的数据库吗

插入数据前必须使用use选择操作的数据库吗,有的说对有的说错
mysql的

不一定,如果你只操作一个数据库,连接字符串里面指定了数据库,就不用use了

use 指令是为了更改当前数据库

如果你在操作的时候,select 或其他指令指定了数据库,可以不用 use ,比如 select * from databaseA.tableA ,这就是指定了数据库的操作,而不论当前数据库是不是 databaseA

反之,如果你省略了数据库指定,想从 databaseA 中获取数据,则需要 use 数据库,以便将指定的数据库变成当前数据库

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/724425
  • 这篇博客也不错, 你可以看下针对数据库拒绝访问的解决办法以及Mysql数据库的安装环境变量配置一条龙
  • 除此之外, 这篇博客: 简单谈谈MySQL的索引失效问题中的 哪些索引可以被使用,哪些索引被实际使用了 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • possible_keys显示可能引用在这张表的索引,一个或多个

    查询涉及到的字段上若存在索引,则该索引将会被列出,但查询时不一定被实际引用!

    keys表示实际用到的一个索引,如果为null则没有使用索引

    查询中若使用了覆盖索引,则该索引仅出现在key列表中

    如果一个索引包含(或覆盖)所有需要查询的字段的值,称为‘覆盖索引’。即只需扫描索引而无须回表

    类似于sql语句EXPLAIN select * from t_user where uname='yyf' and uid=2

    其中uid是默认的主键索引,uname是创建的普通索引

    possible_keys为PRIMARY,index_user_uname,表示可能用到的索引有两个

    而keys为PRIMARY,表示实际用到的是主键索引

    key_len表示索引中使用的字节数

    可通过该列计算查询中使用的索引的长度。在不损失精确性的情况下,长度越短越好

    key_ len 显示的值为索引字段的最大可能长度,并非实际使用长度

    即key_ len是 根据表定义计算而得,不是通过表内检索出的