SQL语言基础

删除列

alter table class_factors
  drop column 班级人数,人数系数

确保在非主键列中不输入重复值

alter table teachers
add constraint uk_tno
unique (教师号)

用于建立和加强两个表数据之间的连接的一列或多列

lter table class_factors
  add contraint fk_class_factors
  foreign key (班级号)
  references class (班级号)

当向表中插入数据时,如果没有为定义了DEFAULT的列提供值,则是隐式要求为此列使用默认值

alter table teachers
  add constraint df_birth
  default 1900-00-00 for 出生年月

通过限制输入到列中的值来强制域的完整性

alter table workload_standard
  add constraint chk_standard
  check ( standard >=330 )


用DISTINCT关键字可以去掉结果中的重复行。

SELECT  DISTINCT  Sno  FROM  SC

用来查找属性值属于指定集合的元组

 列名 [ NOT ] IN (常量1, 常量2, … 常量n)
SELECT Sname, Ssex  FROM Student
    WHERE Sdept IN ('信息系', '数学系', '计算机系')

匹配串中可包含如下四种通配符:
_:匹配任意一个字符;
%:匹配0个或多个字符;
[ ]:匹配[ ]中的任意一个字符;
[ ^ ]:不匹配[ ]中的任意一个字符

查询名字中第2个字为‘小’或‘大’的学生的姓名和学号。
    SELECT Sname, Sno FROM Student
    WHERE Sname LIKE '_[小大]%'
查询学生表中姓‘张’、‘李’和‘刘’的学生的情况。
 SELECT * FROM Student
    WHERE Sname LIKE ' [张李刘]%'
查询学号的最后一位不是2、3、5的学生情况。
 SELECT * FROM Student
    WHERE Sno LIKE '%[^235]'

排序

ORDER BY <列名> [ASC | DESC ] [,<列名> … ]
说明:按<列名>进行升序(ASC)或降序(DESC)排序。

SQL提供的计算函数有:
COUNT( * ):统计表中元组个数;
COUNT([DISTINCT] <列名> ):统计本列列值个数;
SUM([DISTINCT] <列名> ):计算列值总和;
AVG([DISTINCT] <列名> ):计算列值平均值;
MAX([DISTINCT] <列名> ):求列值最大值;
MIN([DISTINCT] <列名> ):求列值最小值。
上述函数中除COUNT(*)外,其他函数在计算过程中均忽略NULL值。

统计选修了课程的学生的人数。
SELECT COUNT (DISTINCT Sno)
      FROM SC

分组语句的一般形式:
   [GROUP BY <分组条件>]
   [HAVING <组过滤条件>]
HAVING用于对分组自身进行限制,它有点象WHERE子句,但它用于组而不是对单个记录;通常与GROUP BY一起使用。

查询修了3门以上课程的学生的学号
 SELECT Sno FROM SC
      GROUP BY Sno
     HAVING COUNT(*) > 3
   此语句的处理过程为:先用GROUP BY按 Sno进行分组,然后再用统计函数COUNT分别对每一组进行统计,最后挑选出统计结果满足大于3的组的Sno


 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值