深入浅出数据库-查询SELECT

上文已描述查询全表语句,回顾一下

SELECT * FROM my_contacts;

我们想知道,没有赋值的列显示什么?从结果中可以看到,显示NULL,它的含义是什么?

它不等于0,0是字符。NULL代表未定义的值。不等于0,也不是空字符串变量。有些列不允许为空,只要使用NOT NULL设置就可以实现了。

CREATE TABLE my_contacts

        last_name VARCHAR(30) NOT NULL,

        first_name VARCHAR(20) NOT NULL

);

 让我们考虑我们之前建表时的情况,哪些列是不应该空的


CREATE TABLE my_contacts
(
last_name VARCHAR(30) NOT NULL,
first_name VARCHAR(20) NOT NULL,
email VARCHAR(50) NOT NULL,
gender CHAR(1),
birthday DATE,
profession VARCHAR(50),
location VARCHAR(50),
status VARCHAR(20) NOT NULL,
interests VARCHAR(100),
seeking VARCHAR(100)
 );

这样我们设置了4个不能为空的列字段,可以延伸下,我们在一张学生表中,通常姓名、学号可以为空吗?如果有一项身份证号的话,是不是也应该设置为NOT NULL囔?对,这就是对列字段的属性进行定义,或者叫做约束。

用DEFAULT填补空白

如果某些列有某个特定的值,我们可以把特定值指定为DEFAULT默认值。只要没有指定特定值,在DEFAULT关键字后的值会在每次新增记录时自动填充,作为默认值。

CREATE TABLE doughnut_list

(

        doughnut_name VARCHAR(10) NOT NULL,

        doughnut_type VARCHAR(6) NOT NULL,

        doughnut_cost DEC(3,2) NOT NULL DEFAULT 1.00

)

如果插入的doughnut_cost的值不填的话,就会显示1.00

小结

  • CREATE DATABASE
  • USE DATABASE
  • CREATE TABLE
  • NULL与NOT NULL
  • DEFAULT
  • DROP TABLE
  • DESC
  • INSERT

SELECT * from my_contacts;

当我们需要查找的不是整个表单,而是我们要找的某一条数据时,该怎么做囔?如果表非常长,我们自己找起来就很慢了,也很可能出错。有没有可能只找我想找的人囔?比如我知道他或她的名字,邮箱,或者是其他条件囔。这时可以使用WHERE子句检查查找列中的每个值是否等于要查找的条件。例如first_name是否等与Anne就可以用WHERE=‘Anne’,如果符合返回整行数据,不符合则不返回。

SELECT * FROM my_contacts WHERE first_name = 'Anne';

这里(*)告诉RDBMS返回表中所有列。当然,如果不想显示所有列,还可以使用其他方法,之后的内容会介绍。

这里Anne带引号,那么哪些数据类型需要引号囔?

单引号不用引号

CHAR

DEC
VARCHARINT
DATE
DATETIME,TIME,TIMESTAMP
BLOB

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值