select * from student where id=1;
查询可以嵌套,以便一个查询的结果可以通过关系运算符或聚合函数在另一个查询中使用。嵌套查询也称为子查询:
select * from student where id in (select id from student where age<23);
2.3 空值与三值逻辑
SQL中引入了空值的概念,用来处理关系模型中缺少信息的情况。NULL一词表示空白值,是SQL中的保留词。如果Null进行比较,例如在WHERE子句中使用“=”判断相等,那么会返回未知值,而SELECT语句只会返回WHERE子句条件为真(TRUE)的结果,不会返回条件为假(FALSE)或未知的结果。
“真”、“假”以及与空值直接比较时所得到的“未知”共同组成了SQL的three-valued logic 三值逻辑
由于直接与空值比较会返回未知,因此SQL又提供了两个用于测试空值的语句:IS NULL和IS NOT NULL
2.4 数据类型
一张表中的每个字段都要定义该字段的类型。ANSI SQL包括下列数据类型:
2.5 数据定义
数据定义语言(DDL)管理表和索引结构。DDL的最基本是CREATE、ALTER、RENAME、DROP和TRUNCATE语句:
CREATE在数据库中创建一个对象(例如一张表)
create table teacher(id int,name varchar(50),primary key id);
ALTER以不同方式修改现有对象的结构,例如向现有的表或约束添加字段:
alter table teacher add age int not null;
TRUNCATE以一种非常快速的方式删除表中的所有数据,删除表内的数据而不是表本身
truncate table teacher;
DROP删除数据库中的对象,通常无法挽回的,即,它不能被回滚
drop table teacher;
2.6 数据操作
数据操纵语言(DML)是SQL用于添加、更新和删除数据的子集:
INSERT添加行(正式名称为元组)到一个现有的表
insert into teacher(id,name,age) values(1,&#39;张老师&#39;,32);
UPDATE修改现有的表中一些行
update teacher set id=33 where id=1;
DELETE从表中删除现有的行
delete from teacher where age>60;
2.7 数据控制
数据控制语言 (Data Control Language, DCL) 授权的用户访问和操作的数据。它的两个主要的语句是:
GRANT:授权的一个或多个用户执行在一个对象上的一个操作或者一组操作。
REVOKE:消除了授权,其可以是默认的授权。
grant select on teacher to xiaoming;
revoke select on teacher from xiaoming;