空值是一个比较特殊的字段.在mysql数据库中,在不同的情形下,空值往往代表不同的含义.这是mysql数据库的一种特性.如在普通的字段中(字符型的数据),空值就是表示空值.但是如果将一个空值的数据插入到timestamp类型的字段中,空值就不一定为空.此时为出现什么情况呢
我先创建了一个表.在这个表中有两个字段:user_id(其数据类型是int)、date(其数据类型是timestamp).现在往这个表中插入一条记录,其中往date字段中插入的是一个null空值.可是当我们查询时,其结果显示的却是插入记录的当前时间.这是怎么一回事呢?其实这就是在mysql数据库中执行sql语句时经常会遇到的一个陷阱:空值不一定为空.在操作时,明明插入的是一个空值的数据,但是最后查询得到的却不是一个空值.
在mysql数据库中,null对于一些特殊类型的列来说,其代表了一种特殊的含义,而不仅仅是一个空值.对于这些特殊类型的列,各位读者主要是要记住两个.一个就是笔者上面举的timestamp数据类型.如果往这个数据类型的列中插入null值,则其代表的就是系统的当前时间.另外一个是具有auto_increment属性的列.如果往这属性的列中插入null值的话,则系统会插入一个正整数序列.而如果在其他数据类型中,如字符型数据的列中插入null的数据,则其插入的就是一个空值.
"空值"是对null值的中文叫法,两者同指一个东西. 我想是想弄清楚null(空值)与零长度字符串''(或称为空字符串)之间的区别.
参考
①.、找到配置文件my.ini ,然后将其打开,可以选择用记事本打开
打开后,搜索mysqld关键字
找到后,在mysqld下面添加skip-grant-tables,保存退出.
PS:若提示不让保存时,可以将该文件剪切到桌面,更改保存后再复制到mySQL目录下
保存后重启mySQL
然后运行cmd
输入mysql -u root -p就可以不用密码登录了,出现password:的时候直接回车可以进入.
所以我就用了另一种方法,找到Mysql下面的bin目录,并复制
然后运行cmd,输入cd◆刚复制的地址然后回车
在输入百度上说的mysql -u root -p回车即可
这里就是更改密码的地方.输入你要设置的密码即可.完后再修改一下my.ini这个文件,把我们刚才加入的"skip-grant-tables"这行删除,保存退出再重启mysql服务就可以了.
但是当我们登入navicat的时候,发现不论什么输入什么密码都行,对于这个我也无法做出解释.但是我先测试连接一个后,在里面修改用户名密码后,这时密码才算真正的修改成功了.
安装之后root用户默认没有密码,通过命令设置密码.
然后设置root用户的远程访问权限
在mysql控制台执行
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'MyPassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
分两种情况
第一种是当你的值为null的时:select * from tablename where 列名 is null
第二种情况值为空字符串时:select * from tablename where 列名=''
以上就是土嘎嘎小编为大家整理的mysql为空怎么说相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!