简易SQL语句
/*创建 模式 为用户 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 = ''; 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 = '';
/*
数据插入
*/
INSERT
INTO sc(Sno,Cno,Grade)
VALUES ('','',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语句的更多相关文章
- SQL语句执行效率及分析(note)
1.关于SQL查询效率,100w数据,查询只要1秒,与您分享: 机器情况p4: 2.4内存: 1 Gos: windows 2003数据库: ms sql server 2000目的: 查询性能测试, ...
- SQL语句学习手册实例版
SQL语句学习手册实例版 表操作 例1 对于表的教学管理数据库中的表 STUDENTS ,可以定义如下: CREATE TABLE STUDENTS (SNO NUMERIC (6, ...
- SQL语句实例集合
SQL语句实例 表操作 例 1 对于表的教学管理数据库中的表 STUDENTS ,可以定义如下: CREATE TABLE STUDENTS (SNO NUMERIC (6, ...
- sql语句去重 最后部分没看 看1 有用
一 数据库 1.常问数据库查询.修改(SQL查询包含筛选查询.聚合查询和链接查询和优化问题,手写SQL语句,例如四个球队比赛,用SQL显示所有比赛组合:举例2:选择重复项,然后去掉重复项:) 数据库里 ...
- 面试题: !=!=未看12 略多 sql语句练习 非常 有用
JAVA面试总结 2015年03月25日 16:53:40 阅读数:4306 刚才看到的,先转载过来,没准以后用到…… 面试总结 2013年8月6日: 问题2:Hibernate的核心接口有哪些? ...
- Java 实现对Sql语句解析
原文地址:http://www.cnblogs.com/zcftech/archive/2013/06/10/3131286.html 最近要实现一个简易的数据库系统,除了要考虑如何高效的存储和访问数 ...
- 个人永久性免费-Excel催化剂功能第21波-Excel与Sqlserver零门槛交互-执行SQL语句篇
在前两波中,已完成了Excel与Sqlserver的查询和上传功能,但难免许多临时的或更深入地操作数据库需要用Sql语句来操作,对一般用户电脑里,不可能有条件轻易安装一个数据库客户端软件,就算安装了对 ...
- mysql学习之 sql语句的技巧及优化
一.sql中使用正则表达式 select name,email from user where email Regexp "@163[.,]com$"; sql语句中使用Regex ...
- 一条Sql语句分组排序并且限制显示的数据条数
如果我想得到这样一个结果集:分组排序,并且每组限定记录集的数量,用一条SQL语句能办到吗? 比如说,我想找出学生期末考试中,每科的前3名,并按成绩排序,只用一条SQL语句,该怎么写? 表[TScore ...
随机推荐
- BZOJ2741 【FOTILE模拟赛】L 【可持久化trie + 分块】
题目 FOTILE得到了一个长为N的序列A,为了拯救地球,他希望知道某些区间内的最大的连续XOR和. 即对于一个询问,你需要求出max(Ai xor Ai+1 xor Ai+2 ... xor Aj) ...
- codeblocks 中文编码问题
参考文章: code::blocks 初使用遇到的问题记录 codeblocks 中文编码问题 string var="汉"; cout<<var<<end ...
- vue之二级路由
router-view : <router-view> 组件是一个 functional 组件,渲染路径匹配到的视图组件 一 样式 1 在一个vue组件,<template>& ...
- 假几何真逆序数 NB HDU3465
题意: 有n条直线,问他们两两在横坐标开区间(L,R)之间相交的个数 n=50000,暴力肯定就不用想了,如果在纸上画一画可以发现如果两条直线在(L,R)内相交,那么他们与x= L和x=R的交点序数是 ...
- 封装的一个Worker方法,利用线程处理运行时间较长的js代码
function webWorker(targetFile,content){ var promise=new Promise(function(resolve,reject){ var web=ne ...
- 前端开发之html篇
一.什么是html? 1.我们说socket网络编程的时候,提到过一个cs模型,就是客户端—服务端模型,前端开发也是基于网络编程,但是这时就应该是bs模型了,是浏览器与服务端的通信. 我们可以模拟一个 ...
- HDU 4917 Permutation(拓扑排序 + 状压DP + 组合数)
题目链接 Permutation 题目大意:给出n,和m个关系,每个关系为ai必须排在bi的前面,求符合要求的n的全排列的个数. 数据规模为n <= 40,m <= 20. 直接状压DP空 ...
- WebGIS开发之用openlayers加载离线百度地图
因为项目需要,只有内网环境,没有外网环境,所以需要下载地图瓦片. 一.下载瓦片地图 这个可以自行在网上找一些地图瓦片下载器,下好的瓦片地图是分级的.大概如图这种类型. 二.在地图上显示标记 首先使用o ...
- Hijacking FM Radio with a Raspberry Pi & Wire
转载:https://null-byte.wonderhowto.com/how-to/hack-radio-frequencies-hijacking-fm-radio-with-raspberry ...
- BUPT复试专题—寻找i*j=m的个数(2016)
题目描述 3*3的矩阵内容. 1 2 3 2 4 6 3 6 9 即a[i][j](1<=i<=n,1<=j<=n)=i*j. 问一个这样n*n的矩阵里面,里面m出现的次数. ...