社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  DATABASE

《深入浅出MySQL》问答录(一)

看,未来 • 3 年前 • 339 次点击  

在这里插入图片描述

本系列出自《深入浅出MySQL》,全文以问答形式展开,是我的个人学习笔记。

问答录

Q:如果我只有一张白表,我为什么还要创建数据库?

A:SQL语言要求所有的表都放在数据库中,这当然有它的理由。SQL能控制多位用户同时访问表的行为,能够授予或撤销对整个数据库的访问权,这有时比控制每张表的权限要简单的多。


Q:我发现CREATE DATABASE 命令的字母全是大写,一定要这样吗?

A:有些系统确实要求某些关键字采用大写形式,但SQL本身不区分大小写。也就是说,命令不大小写也可以,但命令大小写是良好的SQL编程惯例。
大写让我们很容易分辨命令与数据库名称。


Q:给数据库、表和列命名时有什么注意事项吗?

A:创建具有描述性的名称通常有不错的效果。有时候要多用几个单词来命名。所有名称都不能包含空格,所以使用下划线能够让你创建更具描述性的名称。
命名时最好避免首字母大写,因为SQL不区分大小写,极可能会搞错数据库。


Q:为什么不能直接把BLOB当成所有文本值的类型?

A:因为这样很浪费空间。VARCHAR或CHAR只会占用特定空间,不会多于256个字符。但BLOB需要很大的存储空间。
另外,有些重要的字符串运算无法操作BLOB类型的数据,只能用于VARCHAR或CHAR。


Q:NULL是什么都没有的意思吗?
A:当然不是!! 它从来就不等于0。而且它也不等于另一个NULL,事实上,两个NULL根本不能放在一起比较。值可以是NULL,但是它不会等于NULL,因为NULL代表未定义的值!

花絮

  1. DEC(6,2):六位数,其中小数点后两位数。
  2. DATATIME(时间和日期):10:30 a.m. 4/12/2020
  3. 如果想查看表的数据结构,可以使用DESC语句
  4. DRAP TABLE 语句可以用于丢弃表,谨慎使用!
  5. 为表插入数据时,可以使用任何一种INSERT语句。
  6. NULL是未定义的值。它不等于0,也不是空值。值可以是NULL,但绝非等于NULL。
  7. 没有在INSERT语句中被赋值的列默认为NULL。
  8. 可以把列修改为不使用NULL,这需要在创建表时使用关键字NOT NULL。
  9. 创建表时使用DEFAULT,可于日后输入缺乏部分数据的记录时自动的填入默认值。
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/71638
 
339 次点击