首页 > 数据库技术 > 详细

SQL数据操作简单命令

时间:2020-10-07 21:39:41      阅读:35      评论:0      收藏:0      [点我收藏+]

SQL数据查询

基本结构

select [all|DISTINCT]
<目标列表达式>[别名],<目标列表达式>[别名]...
from <表名或视图名>[别名],<表名或视图名>[别名]...
where <条件表达式>
group by <列名1>
having <条件表达式>
order by <列名2>

练习

  1. 查询学生表和选课表中中的全部数据。

    select *
    from student
    select *
    from sc
    
  2. 查询计算机系的学生的姓名、年龄。

    select sname,sage
    from student
    where sdept="计算机系"
    
  3. 查询选修了c01号课程的学生的学号和成绩。

    select sno,grade
    from student,sc
    where sno="c01"
    
  4. 查询成绩在70到80分之间的学生的学号、课程号和成绩。

    select s.sno,sc.sno,grade
    from student s,sc
    where grade between 70 and 80
    
  5. 查询计算机系年龄在18到20之间且性别为男的学生的姓名、年龄。

    select sname,sage
    from student
    where sage between 18 and 20 and ssex="男" and sdept="计算机系"
    
  6. 查询0412101号学生的选课情况。

    select *
    from sc
    where sno="0412101"
    
  7. 查询c01号课程成绩最高分。

    select max(grade)
    from sc
    where sno="c01"
    
  8. 查询学生选修的课程,列出课程号

    select sno
    from sc
    
  9. 查询学生数据库中学生的最大年龄和最小年龄

    select max(sage),min(sage)
    from student
    
  10. 查询选修c02号课程的所有学生的平均成绩、最高成绩和最低成绩。

    select AVG(grade),max(grade),min(grade)
    from sc
    where sno="c02"
    
  11. 统计每个系的学生人数。

    select sdept,count(sno)
    from student 
    group by sdept
    
  12. 统计每个学生的选课门数,并按选课门数递增显示结果。

    select sno,count(sno)
    from sc
    group by sno
    order by count(sno) ASC
    

SQL数据更新

插入操作

格式:

insert
into <表名> (<属性列>...)
values (常量...)

insert语句的功能是将指定的元组插入到指定的关系中,其中属性列的顺序要与常量值一一对应,常量1的值赋给属性列1,常量2的值赋给属性列2,依次类推。

插入单条元组

  1. 插入一条学生数据。

    insert
    into Student(Sno,Sname,Ssex,Sdept,Sage)
    values(‘200215128‘,‘lee‘,‘男‘,‘CS‘,‘18‘)
    

插入多个元组

  1. 在Student表中查询出所有01类图书,将id=01插入到user1表中

    insert
    into user(id)
    select Sdept=‘CS‘
    from Student
    where id=‘01‘
    

    说明:SQL先处理子查询,得到查询结果,再将结果插入到所指的基本表中。

修改操作

格式:

update <表名>
set<列名>=<表达式>...
where <条件>

update语句的功能是修改指定关系中满足where子句条件的元组,其中set子句给出指定列的修改方式及修改后的值。若省略where子句,则说明要修改关系中的所有元组,在where子句中可以嵌套子查询。

修改一个元组的值

  1. 将学生表中学号为200215128的学生年龄加1.

    update Student
    set Sage = Sage+1
    where Sno=‘200215128‘
    

修改多个元组的值

  1. 将学生表中所有学生年龄加1.

    update Student
    set Sage = Sage+1
    

带子查询的修改语句

  1. 将选课表中所有计算机系的学生成绩提高5%

    update SC
    set Grade = Grade*1.05
    where Sno = (select Sno
                  from Student
                  where Sdept=‘CS‘)
    

删除操作

格式

delete
from <表名>
where <条件>

delete语句的功能是删除指定关系中满足where子句条件的所有元组。当where语句省略时,表示要删除关系中的全部元组,但表的定义仍存放在数据字典中。delete语句删除的是关系中的数据,而不是表的定义。

删除一个元组的值

  1. 将学号为200215128的学生从学生表中删除

    delete
    from Student
    where Sno=‘200215128‘
    

删除多个元组的值

  1. 将学生表中所有学生删除

    delete
    from Student
    

带子查询的删除语句

  1. 将选课表中所有计算机系的学生删除

    delete
    from SC
    where Sno(select Sno
             from Student
             where Sdept=‘CS‘)
    

SQL数据控制

授权操作

格式

grant <权限> ...
on <对象类型><对象名>
to <用户>...
[with grant option]

grant语句是将指定操作对象的指定操作权限授予指定的用户。如果指定了with grant option子句,则获得某种权限的用户还可以把这种权限在授予别的用户,但在收回权限时,将级联收回。

  1. 把查询user1表权限授给用户u1,并允许他再将此权限授予其他用户

    grant select
    on user
    to u1
    with grant option
    
  2. 把对user1表和product表的全部权限授予用户u2和u3

    grant all priviliges
    on user1, product
    to u2, u3
    
  3. 把查询user1表的权限授给所有用户

    grant select
    on user1
    to public
    

收回权限

格式

revoke <权限>...
on <对象类型><对象名>
from <用户>

用户被授予的权限可由DBA或其他授权者用revoke语句收回。

  1. 把用户u4对user表进行修改的权限收回

    revoke update
    on user
    from u4
    
  2. 收回所有用户对user表的查询权限

    revoke select
    on user
    from public
    

SQL数据操作简单命令

原文:https://www.cnblogs.com/hermitlee/p/13778791.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!