2018.5.6-数据库查询

SQL基本操作:
 模式的定义和删除:
  CREATE SCHEMA<模式命> AUTHORIZATION<用户名>[<表定义>|<视图定义>|<授权定义>];
 
  删除:
   DROP SCHEMA<模式名><CASCADE(级联)|RESTRICT(限制)>;
 基本表的定义删除和修改:
  创建:
  CREATE TABLE eg(  
  Sno CHAR(9) PRIMARY KEY,//列级完整性约束,主码
  Sname CHAR(20) UNIQUE //Sname取唯一值
  Ssex CHAR(40) NOT NULL //不能取空值
  PRIMARY KEY(key1,key2) //主码由两个属性构成,必须作为表级完整性定义
  FOREIGH KEY(Sno) REFERENCES table(Sno)//Sno是外码,参见表是table
  )
  修改:
  
  ALTER TABLE table ADD Sqq INT;//在table表中加入一行sqq 
  ALTER TABLE table ALTER COLUME Sage CHAR//将Sage行改为char
  ALTER TABLE Course ADD UNIQUE(Sage) //给Sage添加条件
  
  删除:
  
  DROP TABLE table <CASCADE(级联)|RESTRICT(限制)>
 数据查询:
  SELECT Sname,Sno
  FROM Table; //从表中查取多行数据 
  SELECT Sname name//别名
  FROM Table; //从表中查取多行数据 
  SELECT DISTINCT Sno FROM Table//去掉表中的重复行(默认为ALL即保留) 
  
  SELECT Sname
  FROM Table
  WHERE 查询条件(比较,in,like,逻辑运算等)
  
  查询条件:
   比较大小
   确定范围//eg:BETWEEN 20 AND 30
   确定集合//eg:IN('','','')
   字符匹配//eg:LIKE ''//%通配符,_只匹配一个,\转义字符
   空值//eg:IS NULL
  
  ORDER BY 子句:
   ORDER BY Sage,Sdept DESC//按Sage升序排列,Sdept降序排列
  聚集函数(不能用作条件表达式)(只用于SELECT和HAVING语句):
   COUNT()//统计个数
   SUM() //求和
   AVG() //求平均数
   MAX()
   MIN()
 
  GROUP BY 子句:
   SELECT Sno
   FROM SC
   GROUP BY Sno
   HAVING COUNT(*)>3
   
  连接查询:
   等值与非等值查询:
    eg:SELECT Student.Sno,Sc.Sname
    FROM Student,Sc
    WHERE Student.Sno=Sc.Sno AND Sc.Sno='2'
   自身连接:
    SELECT FIRST.Cno,SECOND.Cpno
    FROM Course FIRST,Course SECOND
    WHERE FIRST.Cpno=SECOND.Cno
   多表连接:
    SELECT Student.Sno,Sname,Cname,Grade
    FROM Student,SC,Course
    WHERE Student.Sno=SC.Sno AND SC.Cno=Course.Cno
  嵌套查询(不相关子查询可用连接查询替代):
   SELECT Sname
   FROM Student
   WHERE Sno IN
    (SELECT Sno
    FROM SC
    WHERE Cno='2'
    );
   eg:找出每个学生超出他自己平均成绩的课程号:
    SELECT Sno,Cno
    FROM SC x
    WHERE Grade>=(SELECT AVG(Grade)
      FROM SC y
      WHERE y.Sno=x.Sno
     )
    
  带有EXISTS谓词的子查询(只产生逻辑真假):
   SELECT Sname
   FROM Student
   WHERE EXISTS(
    SELECT *
    FROM SC
    WHERE Sno=Student.Sno AND Cno='1'
   )
  集合查询
   SELECT Sno
   FROM SC
   WHERE Cno='1'
   UNION//并集|intersect 交集|except 差集
   SELECT Sno
   FROM SC
   WHERE Cno='2'
 数据更新:
  插入:
  INSERT
  INTO table(column)
  VALUES();
  //也可插入子查询结果
  
  修改数据:
  UPDATE 表名
  SET column=''
  WHERE ;
  //带子查询的修改语句
  删除数据:
  
  DELETE
  FROM table
  WHERE ;
 空值处理:
  WHERE IS NULL
 视图:
  CREATE VIEW name
  AS
  SELECT column
  FROM
  WHERE;
  (WITH CHECK OPTION) //表示对视图进行操作时需要满足定义中的谓词条件
  
  删除视图:
   DROP VIEW name |CASCADE
  查询视图:
  
  更新视图:(与基本表操作基本相同但需要直接更新表)
   
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值