MySQL使用总结
来源:互联网 发布:云计算iaas paas saas 编辑:程序博客网 时间:2024/06/07 02:28
1. NULL和 “”的区别
空值(NULL)不等于空字符(”“),比如电话号码字段,可以设置为NULL(表示电话号码未知)或者设置为“”(表示后来取消该号码)。NULL是不占用空间的, “”其实是占用空间的,对表索引时不会存储NULL值,如果索引字段可以为NULL,索引的效率会下降很多。
注意事项:
(1)NOT NULL字段是不能插入空值(NULL),只能够插入空字符(“”)。
(2)在进行count()统计某列的记录数的时候,如果插入的NULL值,会被系统自动忽略掉,但是“”会进行统计。
(3)判断NULL用IS NULL或者IS NOT NULL,SQL语句函数可以使用ifnull()函数来进行处理,判断空字符用=或者<>来进行处理。
(4)特殊注意,对于timestamp数据类型,如果往该数据类型插入NULL值,则出现的值是当前系统时间,插入空值,则会出现’0000-00-00 00:00:00’。
(5)特殊注意,对于auto_increment属性的列。如果往这个属性的列插入NULL值的话,系统会插入一个正整数序列。
示例:
(1)表结构及内容如下
表内容:
('Alice', 23, 1, NULL), ('Bob', 24, 0, ''), ('Alice', 24, 0, NULL), ('Alice', 23, 1, NULL),
表结构:CREATE TABLE IF NOT EXISTS `t_test1` ( `name` char(255) DEFAULT NULL, `age` int(10) DEFAULT '0', `sex` tinyint(4) DEFAULT '0', `phone` varchar(255) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8;插入语法:insert t_test (name, age, sex, phone) values ('Bob', 24, 0, ''); //插入空字符insert t_test (name, age, sex, phone) values ('Alice', 23, 1, NULL);//插入空值
测试: IS NULL查询语法
select * from t_test where phone IS NULL
('Alice', 23, 1, NULL), ('Alice', 24, 0, NULL), ('Alice', 23, 1, NULL),
2.MySQL中单引号(‘)、双引号(“)和反引号(`)
反引号(`)
- 反引号一般在Esc键的下方,和~在一起。它是为了区分MySQL的保留字与普通字符而引入的符号。
create table desc 报错
create tabledesc
成功 - 一般我们建表时都会将表名,库名都加上反引号来保证语句的执行度。
单引号(‘)、双引号(“)
- 在标准 SQL 中,字符串使用的是单引号。
- 如果字符串本身也包括单引号,则使用两个单引号(注意,不是双引号,字符串中的双引号不需要另外转义)。
- MySQL对 SQL 的扩展,允许使用单引号和双引号两种。
示例:
insert into t_test (name) values ('Mark'Neoril'); 报错insert into t_test (name) values ('Mark''Neoril'); 成功,将单引号转换为两个单引号
以上是一种字符串中包含单引号的处理方式,笔者使用的是将报错的字符转化为转义字符然后再插入。例如:’Mark’Neoril’-做字符串替换-‘Mark\’Neoril’。
字符串替换:
MySQL提供REPLACE替换函数
REPLACE(str,from_str,to_str)
MySQL提供QUOTA转义字符处理的函数
QUOTE(str)
可在插入之前用语言支持的库函数进行替换,例如golang
func Replace(s, old, new string, n int) string
如果确认字符串中只包含单引号或双引号两者中的一个,则不必做替换,只需要用另外一种类型包围即可。
insert into t_test (name) values ('Mark"Neoril');成功insert into t_test (name) values ("Mark'Neoril");成功
- MySQL使用总结(1)
- MySql使用总结
- Mysql日期使用总结
- Mysql使用总结
- mysql命令使用总结
- mysql workbench使用总结
- mysql变量使用总结
- mysql变量使用总结
- mysql变量使用总结
- mysql变量使用总结
- mysql变量使用总结
- mysql变量使用总结
- mysql变量使用总结
- mysql使用总结
- mysql变量使用总结
- mysql变量使用总结
- mysql变量使用总结
- mysql使用总结
- shiro快速学习(一)
- 《深入理解java虚拟机》学习笔记7——Java虚拟机类生命周期
- struts2之类型转换器的简单使用
- C++信息学奥赛一本通题库1030
- springMVC项目Controller中Invalid mime type错误
- MySQL使用总结
- 【微信小程序】初识地图组件(一)
- c# wpf 无参有参构造函数
- “Hello Word“ 图形用户界面
- 146. LRU Cache
- python打包成exe 程序
- 《深入理解java虚拟机》学习笔记8——Tomcat类加载器体系结构
- 排序中的快速排序
- java多线程