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 基础知识梳理( ...
随机推荐
- visual studio 2013 使用域名调试本地项目
一.在localhost添加需要指定的域名,如:test.domain.com 二.以管理员身份启动VS,并打开项目 三.修改IIS Express的配置文件(一般位于:C:\Users\当前用户\D ...
- LINQ取复杂列表
class Program { public class Order { public int ID { get; set; } public string OrderNo { get; set; } ...
- 下拉框-ComboBox
<ComboBox Name="cbBox" SelectionChanged="cbBox_SelectionChanged"></Comb ...
- Apache报错信息之Invalid command 'Order', perhaps misspelled or defined by a module not included in the server config
今天配置开启Apache虚拟主机时, 然后日志报错提示: Invalid command 'Order', perhaps misspelled or defined by a module not ...
- JavaScript中---作用域
作用域: 变量还有函数作用的范围. 浏览器的内核主要有两大功能,一个是渲染页面,另一个就是我们的JavaScript的解释器了. 我们主要来说说JavaScript解释器,在解析时是怎么样的工作原理. ...
- BZOJ 4205: 卡牌配对
4205: 卡牌配对 Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 173 Solved: 76[Submit][Status][Discuss] ...
- iOS10权限设置问题以及xcdoe8更新细节问题
<key>NSVideoSubscriberAccountUsageDescription</key> <string></string> <ke ...
- ionic 获取手机所在位置
之前项目中需要使用到定位功能,前边的文章提到的坐标位置是有问题的,是国际坐标,国内的环境使用google地图会出现问题,所以需要使用国内的地图进行坐标解析,因为国内和国外的坐标体系不一致,需要通过转换 ...
- JS-自制提速小工具:开发页面时需要按比例计算宽高值的快速计算器
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <meta name= ...
- qrcode 生成验证码带文字
/** * 生成二维码 * * @param int $id * @param string $file * @param boolean $is_download */public function ...