简易SQL语句
时间:2021-07-01 10:21:17
帮助过:5人阅读
创建 模式 为用户 User1*/
CREATE SCHEMA test
authorization User1;
CREATE SCHEMA test
USER User1;
CREATE TABLE student
(
Sno NUMERIC(10)
PRIMARY KEY //主键
CONSTRAINT c1
CHECK(Sno
BETWEEN 90000 AND 99999),
Sname CHAR(
20)
NOT NULL UNIQUE,
//取唯一值
Sage NUMERIC(3)
CONSTRAINT c3
CHECK(Sage
<30),
Ssex CHAR(
2)
CONSTRAINT c4
CHECK (Ssex
IN (
‘男‘,
‘女‘)),
);
CREATE TABLE sc
(
Sno CHAR(
10),
Cno CHAR(
10),
Grade SMALLINT CHECK (Grade
>=0 AND Grade
<= 100),
/*当主码是属性集合时使用 主码为表级完整性约束条件*/
PRIMARY KEY(Sno,Cno),
/*外键 字符长度需相同 表级完整性约束条件1*/
FOREIGN KEY (Sno)
REFERENCES student(Sno),
FOREIGN KEY (Cno)
REFERENCES course(Cno)
);
DROP TABLE student
RESTRICT;
/*联级删除*/
DROP TABLE student
CASCADE;
/*不是联级删除*/
/*
更改表
*/
ALTER TABLE student
ADD COLUMN <新列名
> <数据类型
>[完整性约束]
ADD <表级完整性约束
>
DROP [COLUMN] <列名
> [CASCADE|RESTRICT]
DROP CONSTRAINT <完整性约束名
> [RESTRICT|CASCADE]
ALTER COLUMN <列名
><数据类型
>
/* 查询 */
SELECT DISTINCT Sno
/* distinct 表示消除查询出来的重复元组*/
FROM sc;
WHERE Sno
= ‘201215121‘;
SELECT Sname,Ssex
/*查询不是,,*/
FROM student
WHERE Sdept
NOT IN(
‘CS‘,
‘MA‘,
‘IS‘);
/*
% 表示任意长度字符
_(下横线)表示任意单个字符
ESCAPE‘\‘为换码字符 紧跟在后面的通配符可转为普通字符
*/
SELECT *
FROM course
WHERE Cname
LIKE ‘DB\_%i‘ ;
/*
子查询的select中不能使用order by 字句,
order by 只能对最终的查询结果排序
*/
SELECT *
FROM student
ORDER BY Sage
ASC;
/*升序排序*/
SELECT *
FROM student
ORDER BY Sage
DESC;
/*降序排序*/
/*
聚集函数
count(列名) avg() max() min()sum()
*/
/*
分组查询
查询选修了三门以上课程的学生学号
having 语句作用于组 从中选择满足条件的组
*/
SELECT Cno
FROM sc
GROUP BY Sno
HAVING COUNT(
*)
>3;
SELECT first.Cno,second.Cpno
FROM course FIRST, course SECOND
WHERE first.Cpno
= second.Cno;
/*取别名*/
/*左外连接*/
SELECT student.Sno
/*左外连接 可去除重复值*/
SELECT student.`Sno`
FROM student
LEFT OUTER JOIN sc USING (Sno);
/*
如果子查询的结果依赖于父查询 这类子查询称为相关子查询
*/
/*
EXISTS 代表存在量词 带有EXISTS谓词的子查询不返回任何数据,只产生逻辑真值true 或逻辑假值false
*/
/*
集合查询 :并操作 UNION 交操作 INTERSECT 差操作 EXCEPT
*/
/*
数据更新
*/
UPDATE student
SET Grade
= 0
WHERE Sno
IN(
SELECT Sno
FROM student
WHERE Sdept
= ‘cs‘
);
/*
数据元组删除
*/
delect
FROM student
WHERE Sno
= ‘201215123‘;
/*
数据插入
*/
INSERT
INTO sc(Sno,Cno,Grade)
VALUES (
‘201215127‘,
‘1‘,
NULL);
/*
索引的操作
*/
CREATE UNIQUE [cluster] INDEX S1
ON student(Sno
ASC);
/*升序建立索引*/
ALTER INDEX <旧索引名
> RENAME
TO <新索引名
>;
/*改名*/
DROP INDEX <索引名
>;
/*删除*/
/*
视图操作
create view
drop view
update........set.......where
insert into ... values...
delete from ... where...
*/
CREATE VIEW <视图名
> [<列名>,<列名>]
AS <子查询
>
[WITH CHECK OPTION];
/*
用户权限操作
*/
GRANT <权限
>,
<权限
>
ON <对象类型
>,
<对象名
>
TO <用户
>,
<用户
>
[WITH GRANT OPTION];
REVOKE <权限
>,
<权限
>
ON <对象类型
>,
<对象名
>
FROM <用户
>,
<用户
>
[CASCADE|RESTRICT];
简易SQL语句
标签:ict min foreign cas 排序 select 通配符 条件 outer