showdatabases use dm showtables -- 需要两张表,再建一张stu表 -- 手动建,比较快 select * from class_f SELECT * from stu # 关键字的使用 -- in -- in 满足查询子集中的某一个即可 select * from class_f WHERE age notin(20,22) -- in 后面的子集也可通过SQL语句查询结果 select * from stu where cid in(select cid from class_f where age in (20,22));
-- any some all 三个关键字 -- 三个与in类似,查询是否满足后面的子集中的条件 -- 但是,关键字后面不允许写固定值 只允许写SQL语句(只能通过嵌套获取子集) -- >any 满足查询子集中的某一个即可 >any select * from class_f where cid > 2; select * from stu where cid >any (select cid from class_f where cid > 2); -- some 与any完全一致
-- all 满足子集中的全部才可以 select * from stu where cid >all (select cid from class_f where cid > 2); select * from stu where cid <all (select cid from class_f where cid > 2);
集合操作
-- 集合操作 -- 并集(union) -- 1.要求前后两个查询子集的列数是一致的 -- 2.类型没有要求 -- 3.拼接后显示的列名是前一个子集默认的列名 -- 4.union与union all的区别 建议使用union all -- union合并后做去重复的处理 性能慢,出现重复元素,记录首次出现那一行 -- union all 将两个查询的字节直接做合并 不做任何处理 性能比较快 createtable newclass_f asselect * from class_f; showTABLES SELECT * FROM newclass_f select * from class_f unionselect * from newclass_f; select * from class_f unionallselect * from newclass_f;
主键,外键
表与表之间的关系
-- 1.主键约束 -- 每一个表格内 只能有一个列被设置为主键约束 -- 主键约束通常是用来标记表格中的数据的唯一存在 -- 主键约束要求当前的列 不能为null 值 -- 主键约束要求当前的列 值是唯一存在的 不能重复 select * from stu -- 添加主键 -- constraint 约束 -- 添加主键修改列,DDL数据定义语言(create创建 drop删除 alter修改) -- alter table 表名 add constraint 约束名 约束类型(列) -- 简写 alter table 表名 add primary key(classid); altertable stu addconstraint pk_stu primary key(sid)
-- desc 表名;描述表格信息 desc stu -- 描述 添加主键约束后表格信息 showkeysfrom stu