关系数据库标准语言SQL-1

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_38262266/article/details/77113318

数据定义:CREATE、DROP、ALTER
数据查询:SELECT
数据操纵:INSERT、UPDATE、DELETE
数据控制:GRANT、REVOKE

主码约束: PRIMARY KEY
唯一性约束: UNIQUE
非空值约束: NOT NULL
primary key = unique + not null

创建表
建立一个“学生选课”表SC,它由学号Sno、课程号Cno,修课成绩Grade组成,其中(Sno, Cno)为主码
解:Create table SC(Sno char(12),
Cno varchar(10),
Grade int,
Primary key(Sno,Cno));

删除表
Drop table SC;

选择表
增加新的列和完整性约束条件
Alter table SC add Scome date;
删除指定的列
Alter table SC drop Scome
删除完整性约束条件
Alter table SC drop primary key(Sno);
用于修改列名和数据类型
Alter table SC modify Grade char(2);

创建索引
UNIQUE INDEX:唯一性索引(相当于增加了一个unique约束)(可多个)
CLUSTER INDEX:聚簇索引(某种情况下可调高查询速率)(只能有一个)
ASC:升序(默认)
DESC:降序
SC表按学号升序和课程号降序建唯一索引
create unique index Scon on SC(Sno ASC,Cno DESC);

删除索引
drop index Scon;

查询

GROUP BY:对查询结果按指定列的值分组,该属性列值相等的元组为一个组
HAVING:筛选出只有满足指定条件的组
ORDER BY:对查询结果表按指定列值的升序或降序排列
DISTINCT:消除取指重复的行

比较:=,>,<,>=,<=,!=,!>,!<,<>
确定范围:BETWEEN AND,NOT BETWEEN AND
确定集合:IN,NOT IN
字符匹配:LIKE ,NOT LIKE
空值:IS NULL,IS NOT NULL
多重条件:AND,OR

%代表任意长度(长度可以为0)的字符串
_ (下横线) 代表任意单个字符

count()计数
sum()总和
max()最大值
min()最小值
avg()平均值

查询Sno列值,查询Sname值并全部改写为小写
select Sno,ISLOWER(Sname) from SC;
查询表SC的全部记录
select * from SC;
查询Sname值并改名为name
select Sname name from SC;
查询Sno 的不重复值
select distinct Sno from SC;
查询信息系(IS)、数学系(MA)和计算机科学系(CS)学生的姓名和性别
select Sname,Ssex from SC where Sdept in(‘IS’,’MA’,’CS’);
查询第二个字为刘的学生的姓名,学号和性别
select Sname,Sno,Ssex from SC where Sname like’_刘%’
查询DB_Design课程的课程号和学分(有下划线)
select Cno,Ccredit from Cource where Cname like‘DB_Design’ escape’\’*(这里采用换码字符将通配符转义为普通字符)*
查询以”DB_”开头,且倒数第3个字符为 i 的课程的详细情况。
select * from Course where name like’DB_%I__’ escape’\’
查询学生总人数
select count(*)from SC;
查询选修了课程的学生人数
select count(distinct Sno)from SC;(Dinstinct避免重复计算学生人数)
查询选修了3门以上课程的学生学号
select Sno from SC group by Sno having count(*)>3

展开阅读全文

没有更多推荐了,返回首页