SQL 基础
创建模式
create schema <schema_name> authorization <username> 没有指定schema_name时默认是用户名
删除模式
drop schema <schema_name> <cascade | restrict>
创建表
create table student.sc ;定义表中的两个主码以及外码
(sno ),
cno ),
grade smallint,
primary key(sno, cno),
foreign key sno references student(sno),
foreign key sno references course(cno)
); /*最后一行没有逗号,外码引用的必须是主码*/
修改表
alter table <table_name>
[ add <新列名> <数据类型> [完整性约束] ]
[ drop [完整性约束名] [列名] ]
[ modify <列名> <数据类型> ];
删除表
drop table <表名>;
创建索引
create [unique] [cluster] index <索引名>
on <表名>( <列名> [ <次序> ] [, <列名> [ <次序> ] ] ....);
删除索引
drop index <索引名>
插入元组
insert
into <表名> [ ( <属性列1> [, <属性列2>...] ) ]
values ( <常量1> [, <常量2>] ... )
insert into sc(sno,cno)
')
修改元组
update <表名>
set <列名> = <表达式> [, <列名> = <表达式> ]...
[where <条件>];
update student
'
删除元组
delete
from <表名>
[where <条件> ];
delete
from student
'
使用视图创建语句建视图,通过视图查询数据:
create view <视图名> [(<列名>[,<列名>]...)] ;列名要么全部指定,要么全部不指定
as
<子查询>
[with check option];
drop view <视图名>;
创建用户
create user <username> [with] [DBA | RESOURCE | CONNECT];
create user zx_root IDENTIFIED by 'xxxxx@localhost';
删除用户
drop user <username>;
授权
grant <权限> [,<权限> ]... ;all privileges, select, update, insert, delete
on <对象类型> <对象名> [,<对象类型> <对象名>]...
to <用户> [,<用户>]... ;public
[with grant option];
grant all privileges
on table student, course
to u2, u3;
grant update(sno)
on table student
to u4;
grant insert
on table sc
to u5
with grant option
回收授权
revoke <权限>[,<权限>]...
on <对象类型> <对象名> [,<对象类型> <对象名>]...
from <用户> [,<用户>]...
revoke select
on table sc
from public
创建角色
create role <rolename>
给角色授权
grant <权限> [,<权限>]...
on <对象类型> <对象名>
to <角色> [,<角色>]...
grant <角色1> [,<角色2>]...
to <角色3> [,<角色4>]...
[with admin option]
收回角色权限
revoke <权限> [,<权限>]...
on <对象类型> <对象名>
from <角色> [,<角色>]...
create role r1;
grant select, update, insert
on table student
to r1;
grant r1
to 王平,张明
revoke select
on table student
from r1;
审计
audit alert,update
on sc;
noaudit all
on sc;
实体完整性
primary key(sno,cno);
参照完整性
foreign key sno reference student(sno);
用户定义完整性
create table sc
(sno ) not null,
cno ) not null,
grade smallint not null,);
create table dept
(deptno number,
dname ) unique,
);
create table student
(sno ) primary key,
ssex ) check (ssex in ('男','女')),);
表级用户定义完整性
check (ssex = '女' or sname not like 'ms.%' ); /*男性名字不能以ms.开头*/
完整性约束命名子句
constraint <完整性约束条件名> [primary key短语 | foreign key 短语 | check 短语]
create stable student
(sno )
),
sname )
constraint c2 not null,
sage )
),
ssex )
constraint c4 check (ssex in ('男','女'),
constraint studentKey primary key(sno),
);
alter table student
drop constraint c4;
alter table student
add constraint c4 check (ssex in ('男','女'));
域中完整性限制
)
constraint gd check (value in ('男','女'));
alter domain genderdomain
'));
alter domain genderdomain
drop constraint gd;
查询
seletct [ all | distinct ] <目标列表达式> [, <目标列表达式> ]...
from <表名或视图名> [, <表名或视图名> ]...
[ where <条件表达式> ]
[ group by <列名1> [ having <条件表达式> ] ]
[ order by <列名2> [ asc | desc ] ]
表单查询
-sage year
from student
select sname, sdept, sage
from student
/*not between and*/
select sname, ssex
from student
where sdept in ('cs','ma','is') /*not in*/
select *
from student
where sno like '2002%21' /*%任意多个字符,_单个字符, [ escape '\' ] 表示'\'为换码字符,not like */
select sno,cno
from sc
where grade is null /*is not*/
select sno,grade
from sc
'
order by grade desc,sno
select cno, count( distinct sno )
from sc
group by cno
连接查询,嵌套查询
select sname
from student
/*or, not*/
select first.cno, second.cpno
from course first, course second
where first.cpno = second.cno /*<>是不等于*/
select sname
from student
where sno in
(select sno
from sc
' );
select sno,cno
from sc x
where grade >=
(select avg(grade)
from sc y
where y.sno = x.sno);
select sname,sage
from student
where sage < any
(select sage
from student
where sdept = 'cs'); /*all*/
select sname
from student
where not exists
(select *
from course
where not exists
(select *
from sc
where sno = student.sno
and cno = course.cno )); /*not exists 没有*/
集合查询:
select *
from student
where sdept='cs'
union
select *
from student
;
select *
from student
where sdept='cs'
intersect
select *
from student
;
select *
from student
where sdept='cs'
except
select *
from student
;
数据类型
char(n) 长度为n的定长字符串
varchar(n) 最大长度为n的可变字符串
int 长整形,可写作integer
smallint 短整形
numberic(p,d) 定点数,有p位数字(不包括符号,小数点)组成,小数点后有d位小数
real 取决于机器精度的浮点数
double precision 取决于机器精度的双精度浮点数
float(n) 浮点数,精度至少为n为数字
date 日期,YYYY-MM-DD
time 时间,HH:MM:SS
小问题
"=" 两边可以没有空格
实例:
create DataBase SpjDB
on (name=spj_dat,
filename='D:\Sql_Server\spj_data.mdf',
size=10mb)
log
on (name=spj_log,
filename='D:\Sql_Server\spj_log.ldf',
size=3mb)
Create table S
(SNO ) primary key,
SNAME ),
STATUS smallint,
CITY ))
insert into s
','天津');
insert into s
','北京');
Create table p
(PNO ) primary key,
PNAME ),
COLOR ),
WEIGHT smallint)
insert into P
');
insert into P
');
insert into P
Create table J
(JNO ) primary key,
PNAME ),
CITY ))
insert into J
values('J1','三建','北京');
insert into J
values('J2','一汽','长春');
insert into J
Create table SPJ
(SNO ),
PNO ),
JNO ),
QTY smallint)
insert into SPJ
');
insert into SPJ
');
SQL 基础的更多相关文章
- <三> SQL 基础
SQL查询的一般形式,以及被逻辑处理的顺序 (8) select (9) distinct (11) <TOP_specification> <select_list> (1) ...
- [SQL] SQL 基础知识梳理(三) - 聚合和排序
SQL 基础知识梳理(三) - 聚合和排序 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5926689.html 序 这是<SQL 基础知识梳理 ...
- Oracle知识梳理(三)操作篇:SQL基础操作汇总
Oracle知识梳理(三)操作篇:SQL基础操作汇总 一.表操作 1.表的创建(CREATE TABLE): 基本语句格式: CREATE TABLE table_name ( col_ ...
- ASP.NET实现二维码 ASP.Net上传文件 SQL基础语法 C# 动态创建数据库三(MySQL) Net Core 实现谷歌翻译ApI 免费版 C#发布和调试WebService ajax调用WebService实现数据库操作 C# 实体类转json数据过滤掉字段为null的字段
ASP.NET实现二维码 using System;using System.Collections.Generic;using System.Drawing;using System.Linq;us ...
- 数据库整理(三) SQL基础
数据库整理(三) SQL基础 SQL语言的特点 集数据定义语言(DDL),数据操纵语言(DML),数据控制语言(DCL)功能于一体. 可以独立完成数据库生命周期中的全部活动: ●定义和修改.删除关 ...
- 第三章 - SQL基础及元数据获取
SQL的介绍 SQL的定义:结构化查询语句 SQL的作用:对库和表进行操作 SQL的常用分类 DDL 数据定义语言(Data Definition Language) DCL 数据控制语言(Data ...
- [SQL] SQL 基础知识梳理(一)- 数据库与 SQL
SQL 基础知识梳理(一)- 数据库与 SQL [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5902856.html 目录 What's 数据库 ...
- [SQL] SQL 基础知识梳理(二) - 查询基础
SQL 基础知识梳理(二) - 查询基础 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5904824.html 序 这是<SQL 基础知识梳理( ...
- [SQL] SQL 基础知识梳理(四) - 数据更新
SQL 基础知识梳理(四) - 数据更新 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5929786.html 序 这是<SQL 基础知识梳理( ...
- [SQL] SQL 基础知识梳理(五) - 复杂查询
SQL 基础知识梳理(五) - 复杂查询 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5939796.html 序 这是<SQL 基础知识梳理( ...
随机推荐
- SpringMVC的小总结
---恢复内容开始--- 前言: springMVC是我接触的第一个框架,当时在学校学习的时候还是各种懂,最简单的springMVC框架的配置还是比较熟,后来工作之后,虽然主要用的确实是springM ...
- maven-过滤不打入包的文件
在使用maven打包时,有时有些测试文件,或者配置都希望打入到架包中 此时就需要使用将不用的文件过滤,maven有很方便的过滤插件.因工作时间,暂不讨论.本次讨论一个非常简单除暴的方法,通过配置ecl ...
- orcle函数的使用,及其调用
CREATE OR REPLACE Function getBdateT( D_Build date, Q_Date date) return Date as D_Return Date; /*返回的 ...
- Android Studio导入项目慢的问题
在Github下载的项目,导入studio时非常慢,原因是下载的项目中的gradle与当前gradle不匹配,需要更新包. 解决办法:修改下载包中的文件 1. xxx-project/.idea/gr ...
- 每次更新obj和bin文件夹都生成nGB的文件
今天受不了,把它们符号链接到机械硬盘上了 用mklink /d 创建的,也不知道和/j有什么区别
- Drop it
FCC题目:队友该卖就卖,千万别舍不得. 让我们来丢弃数组(arr)的元素,从左边开始,直到回调函数return true就停止. 第二个参数,func,是一个函数.用来测试数组的第一个元素,如果返回 ...
- tomcat/jsp/servlet版本关系
Servlet Spec JSP Spec EL Spec WebSocket Spec JASPIC Spec Apache Tomcat version Actual release revisi ...
- EasyUI 解决 datagrid 中 NumberBox 限制小数位数后不能输入小数点问题
初始化界面,发现编辑datagrid,不能输入小数点. var arrColumnsCNT = [[ { title: '毛重', field: 'GrossWeight', halign: 'cen ...
- 【总结】.Net面试题集锦(一)
一.背景 最近一直在准备面试,收到的面试邀请邮件里还有面试题,真是要当面霸的节奏,不过看看也好,一方面能够锻炼锻炼生锈的脑子,查缺补漏一下,另一方面,万一靠这几个面试题拿到offer呢,哈哈.开个玩笑 ...
- win10下的使用
一.win10下使用win7那样的图片查看器快些. 打开图片的设置,关闭自动增强我的图片 二.查看win10秘钥 1.打开注册表,依次定位:HKEY_LOCAL_MACHINE/SOFTWARE/Mi ...