MySQL

MySQL

1.SQL动词

SQL功能动词
数据查询select
数据定义create,drop,alter
数据操纵insert,update,delete
数据控制grant、revoke

2.定义基本表
(1)建立一个学生表

create table Student
  (Sno CHAR(9) PRIMARY KEY,/*列级完整性*/
  Sname CHAR(20) UNIQUE,
  Ssex CHAR(2),
  Sage SMALLINT,
  Sdept CHAR(20)
  );

(2)建立一个课程表

create table Course
  (Cno CHAR(4) PRIMARY KEY,
  Cname CHAR(40) NOT NULL,
  Cpno CHAR(4),/*先修课*/
  Ccredit SMALLINT,
  FOREIGN KEY(Ccno) REFERENCES Course(cno)/*Cpno是外码,参照表示Course,被参照列是Cno*/
  );

(3)建立学生选课表SC

create table SC
  (Sno CHAR(9) ,
  Cno CHAR(4),
  Grade SMALLINT,
  PRIMARY KEY(Sno,Cno),
  FOREIGN KEY(Sno) REFERENCES Student(Sno),
  FOREIGN KEY(Cno) REFERENCES Course(Con)
  );

3.删除基本表

DORP TABLE <表名>[restrict|cascade];

restrict,欲删除的基本表不能被其他表的约束所引用,不能有视图,不能有触发器,不能有存储过程或函数等。
cascade,无限制条件
4.数据查询

SELECT [ALL|DISTINCT]<目标表达式>[,<目标表达式>]...
FROM <表名或视图>[,<表名或视图>...]|(<select语句>)[as]<别名>
[where<条件表达式>]
[group by<列名1>[HAVING<条件表达式>]]
[order by<列名2>[ASC|DESC]];

(1)DISTINCT消除查询的重复行;
(2)where子句常用的查询条件

查询条件谓词
比较=,>,<,>=,<=,!=,<>,!>,!<;NOT+上述比较符
确定范围between and,not between and
确定集合in,not in
字符匹配like,not like
空值is null,is not null
多重条件and,or,not

(3)order by 子句
可以用order by子句对查询结果按照一个或多个属性进行排序(ASC升序默认,DESC降序)
例如:查询选修了3号课程的学生的学号及成绩,查询结果按分数的降序排列

select Sno,Grade
from SC
where Cno='3'
order by Grade DESC;

(4)聚集函数
只能用于select子句和group by 中的HAVING 子句中。不能用于where子句。

COUNT(*)(处理空值,其他聚集函数跳过空值)
COUNT([DISTINCT|ALL]列名)
SUM([DISTINCT|ALL]列名)
AVG([DISTINCT|ALL]列名)
MAX([DISTINCT|ALL]列名)
MIN([DISTINCT|ALL]列名)

(5)group by子句
分组,只能用having子句,不能用where子句。
5.连接查询
包括等值连接查询、自然连接查询、非等值连接查询、自身连接查询、外连接查询和复合连接查询
(1)等值与非等值连接查询
连接查询的where子句中用来连接两个表的条件称为连接条件
一般格式为

[<表名1>.]<列名1><比较运算符>[<表名2>.]<列名2>

(2)自身连接
(3)外连接
关系R中某些元组有可能在S中不存在公共属性上值相等的元组,造成S或R的某些元组被舍弃,这些被舍弃的元组称为悬浮元组,如果把悬浮元祖也保存在结果关系中,而在其他属性上填写空值,那就需要外连接。
例如

select Student.Sno,Sname,Sage,Sdept,Cno,Grade
from Student Left outer join SC on(Student.Sno=SC.Sno);

6.集合查询
select 语句的查询结果是元组的集合,多个select语句的结果可进行集合操作。
集合操作主要包括并操作UNION,交操作INTERSECT,差操作EXCEPT

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值