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 基础知识梳理( ...
随机推荐
- 常look的Git命令
常用的Git命令 命令 简要说明 git add 添加至暂存区 git add–interactive 交互式添加 git apply 应用补丁 git am 应用邮件格式补丁 git a ...
- 并发包的线程池第一篇--ThreadPoolExecutor执行逻辑
学习这个很长时间了一直没有去做个总结,现在大致总结一下并发包的线程池. 首先,任何代码都是解决问题的,线程池解决什么问题? 如果我们不用线程池,每次需要跑一个线程的时候自己new一个,会导致几个问题: ...
- celery使用方法
1.celery4.0以上不支持windows,用pip安装celery 2.启动redis-server.exe服务 3.编辑运行celery_blog2.py !/usr/bin/python c ...
- Beta版本冲刺第五天
Aruba 408 409 410 428 429 431 完成任务: 数据库对于分类新建/删除的更新 调整图片再编辑界面的合适大小 调整常驻通知栏按钮的跳转逻辑 微调数据库 立会照片: 燃尽图: c ...
- asp.net mvc bootstrap datatable 服务端分页
datatable 服务端分页 因项目需求变动,需处理大量数据,更改成服务端分页,自己两天的学习笔记 先上图[ jqueryui风格] 前端代码: @{ Layout = null;} <!DO ...
- 网页上获取的元素值,为什么类型,string
<body> <input type="text" value='9'/><input type="text" value='30 ...
- 分页(thinkphp5.0版本)
一.简洁分页(不含页码,只能翻阅上下页) 控制器部分代码: $pagesize=15;//每页显示15条数据 $data = Db::name('db')->where(array('key'= ...
- Caffe学习
将binaryproto转为npy import caffe % suppose caffe is already in the path of Python import numpy as np i ...
- Linux下oracle数据库启动和关闭操作
第一步:登陆 root登陆之后切换到oracle用户上,输入 su oracle 第二步:连接 在oracle用户下,输入 sqlplus /nolog 第三步:使用管理员权限 输入 connect ...
- 微软unity 注入mvc
首先获取开源unity ,引用, 新建UnityDependencyResolver 继承IDependencyResolver,代码如下: public class UnityDependencyR ...