MySQL例题一 综合案例
多条件组合查询练习
- 易错知识点
/* NULL和空值
-NULL也就是在字段中存储NULL值,空值也就是字段中存储空字符(’’)。
select length(NULL), length(''), length('1'),length('2');
+--------------+------------+-------------+-------------+
| length(NULL) | length('') | length('1') | length('2') |
+--------------+------------+-------------+-------------+
| NULL | 0 | 1 | 1 |
+--------------+------------+-------------+-------------+
1 row in set
从上面看空值(’’)的长度是0,是不占用空间的;而NULL长度是NULL,其实它是占用空间的。
NULL列需要行中的额外空间来记录它们的值是否为NULL。
总结
1、空值不占空间,NULL值占空间。当字段不为NULL时,也可以插入空值。
2、当使用 IS NOT NULL 或者 IS NULL 时,只能查出字段中没有不为NULL的或者为 NULL 的,不能查出空值。
3、判断NULL 用IS NULL 或者 is not null,SQL 语句函数中可以使用IFNULL()函数来进行处理,判断空字符用 =’‘或者<>’'来进行处理。
4、在进行count()统计某列的记录数的时候,如果采用的NULL值,会别系统自动忽略掉,但是空值是会进行统计到其中的。
5、MySql中如果某一列中含有NULL,那么包含该列的索引就无效了。这一句不是很准确。
6:实际到底是使用NULL值还是空值(’’),根据实际业务来进行区分。个人建议在实际开发中如果没有特殊的业务场景,可以直接使用空值。
参考
NULL和空值 https://blog.csdn.net/u010648555/article/details/94555199
MySQL (37k) 关键字
https://blog.csdn.net/weixin_45851945/article/details/114287877
*/
/*创建外键格式
CONSTRAINT fk_dept_personnel foreign key (d_id) references personnel(id)
CONSTRAINT 别名 foreign key (外键表值) references 主表(主表值)
*/
– COMMENT 创表时设置备注
– auto_increment 设置自增(整型)
– default 设置默认值
– IF EXISTS 判断是否存在(如果存在)
- 创建数据库基本操作语句
– 创建练习题数据库 字符集为utf8
create DATABASE Exercises_One CHARSET=utf8;
– 切换到Exercises_One下
use Exercises_One;
– 创建表之前先删除同名表(结构和数据)一般情况下同数据库下不能出现重名表
DROP TABLE IF EXISTS personnel;
create table personnel (
id int(11)