alter table Student add entrance date not null;#为Student表添加一列entrance 类型为date 约束为not null #增加新的一列的数据都为空
1 2
alter table Student drop ent;#删除Student表中名为ent的一列
删除表
1
drop table Student;
索引
表的数据量较大时 查询操作比较耗时 建立索引加快查询速度 能快速定位到需要查询的内容
建立索引
1
create unique index Stusno on Student(Sno) asc/desc);#Stusno为索引名 asc升序desc降序
修改索引
1
alter index Stusno rename to Ssno;#更改旧索引名Stusno为Ssno
删除索引
1
drop index Ssno;#删除名为Ssno的索引
插入数据
1
insert into Student (字段名,字段名) values(值,值);
查询
查询全体记录
1
select * from <表名>
查询部分字段记录
1
select <字段名>,<字段名> from <表名>
查询表内某一字段存在大量重复元素时 使用distinct
1
select distinct <字段名> from <表名>
where
学号Sno
姓名Sname
性别Ssex
年龄Sage
专业Sdept
201215121
张三
男
20
CS
201215122
李四
女
19
IS
201215123
王五
女
18
MA
201215124
赵六
男
22
IE
1 2 3 4 5 6 7 8
select Sno,Sname from student where Sage<20; select Sno,Sname from student where Sdept="CS"; select Sno,Cno from SC where Grade is null;#is不能换=
select Sno,Sname,Sage from student where Sage between 19 and 20;#Sage在19-20之间(包括19和20) select Sno,Sname from student where Sage not between 19 and 20;#Sage不在19-20之间 select Sno,Sname from student where Sdept in ("CS","IS"); select Sno,Sname from student where Sdept not in ("CS","IS");
select Sno,Sname from student where Sname like "刘%";#查询Sname姓刘的所有人 select Sno,Sname from student where Sname like "刘_";#查询Sname姓刘的两个字名字的人 select Sno,Sname from student where Sname like "_阳%";#查询第二个字为阳的名字 select Sno,Sname from student where Sname not like "刘%";
Order By
1 2 3 4 5
#数据库系统概论第5版王珊编著中提到Order By语句默认从小到大升序asc排列 select * from sc order by Grade desc;#查询结果按成绩从大到小 降序排列 select * from sc order by Grade asc;#查询结果按成绩从小到大 升序排列 select * from student order by Sdept,Sage desc; #同一个Sdept中Sage从大到小排列 #空值被认为是最大的
select Count(*) from student;#查询学生总人数 select Count(Distinct Sno) from SC;#查询了选修的人数 select Avg(Grade) from SC where Sno=201215121;#查询学号201215121的平均成绩 select Max(Grade) from SC where Cno=2;#查询课程号为2的最高成绩 select Sum(Ccredit) from SC,Course where Sno=201215121 and SC.Cno=Course.Cno;#查询Sno为201215121选课的总学分数
Group By
分组后使用Having指定筛选条件
1 2
select Cno,Count(Sno) from SC Group By Cno;#查询课程号和选课的人数 按照Cno的值分组 有相同Cno的值的在一个组 然后用Count函数对每个组的总人数进行计算 select Sno from SC Group By Sno Having Count(*)>=3;#Group By按照Sno分组 Having筛选 元组个数>=3 才会被查询到
Where Having 区别 Where语句作用于基本表与视图 从中选择满足条件的组 Having作用于组 从中满足条件的组