本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:
Ctrl + B
Ctrl + I
Ctrl + Q
Ctrl + L
Ctrl + K
Ctrl + G
Ctrl + H
Ctrl + O
Ctrl + U
Ctrl + R
Ctrl + Z
Ctrl + Y
Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成格式丰富的HTML页面。 —— [ 维基百科 ]
SQL
关于模式:
1.创建模式
CREATE SCHEMA <模式名>AUTHORIZATION<用户名>
ps:如果没有指定模式名,则模式名隐含为用户名
2.删除模式
DROP SCHEMA <模式名>
选CASCADE,表示删除模式时,把该模式所有的数据库对象全部删除
选RESTRICT,表示如果该模式中已经定义了下属的数据库对象,如表,视图,则拒绝该删除语句的进行
基本表
1.创建
CREATE TABLE<表名> (<列名><数据类型> [列级完整性约束条件],
<列名><数据类型> [列级完整性约束条件]
<列名><数据类型> [列级完整性约束条件]);
CREATE TABLE Student
(Sno CHAR(9) PRIMARY KEY,
Sname CHAR(20) UNIQUE,
Ssex CHAR(2) NOT NULL
FOREIGN KEY(Cpno) REFERENCES Courese(Cno)
/* Cpno 是外码,被参照表是Course
);
1.数据查询
SELECT [ALL|DISTINCT] <目标列表达式> FROM <表名或视图名> |(<SELECT 语句>)[AS] <别名> [WHERE <条件表达式>] [GROUP BY <列名 1> [HAVING<条件表达式>]] [ORDER BY <列名 2> [ASC|DESC]];
单表查询
SELECT * FROM Student;
SELECT Sname,2014-Sage BIRTHDAY # <目标表达式> 可以是表达式,还可以定义别名
FROM Student;
比较的运算符
⚠️ != 或<> (不等于)
⚠️ !> 不大于,不小于 !<
确定范围
BWTWEEN AND , NOT BETWEEN AND
确定集合
IN , NOT IN
字符匹配
[NOT] LIKE ‘<匹配串>’ [ESCAPE’<换码字符>’]
<匹配串> 可以是一个完整的字符串,或者含有通配符%和 _
% 代表任意长度(可以为0)的字符串。 如a%b,表示以a开头,以b结尾的任意长度的字符串
_ 代表任意单个字符。 (中文需要两个)
如果LIKE 后面的匹配串中不含通配符,可以用=取代LIKE谓词,用!=或<>取代NOT LIKE 谓词
SELECT * FROM Student WHERE Sno LIKE '2012' <=> SELECT * FROM Student WHERE Sno = '2012'
SELECT Sname,Sno,Ssex FROM Student WHERE Sname LIKE '刘%'
若要查询的字符串本身就有通配符%或 _ ,这时就要用ESCAPE ‘< 换码字符>对通配符转义。
SELECT Con,Ccredit FROM Course WHERE Cname LIKE 'DB \_Design' ESCAPE'\' #表示跟在'\'后面的'_'只是普通的'_'字符含义。
涉及空值的查询
SELECT Sno,Cno FROM SC WHERE Grade IS NULL # 注意此处的IS不能用 = 代替。
多重条件用可以用 AND , OR
ORDER BY子句
对查询结果按照一个或多个属性列的升序(ASC) 或者降序(DESC),默认为升序。
SELECT Sno,Grade FROM SC WHERE Cno = '3' ORDER BY Grade DESC
聚集函数
COUNT( * ) 统计元组个数
COUNT/SUM/AVG/MAX/MIN ( [DISTINCT|ALL] <列名> ) ALL为默认值
SELECT COUNT(*) FROM Students;
SELECT COUNT(DISTINCT Sno) \ AVG(Grade) FROM SC
⚠️ 聚集函数除COUNT(*)外,都会跳过空值只处理非空值。
⚠️ WHERE 子句中是不能用聚集函数作为条件表达式,聚集函数只用于SELECT子句和GRUOUP BY中的 HAVING 子句。
GROUP BY
对查询结果按某一列或多列的值分组,值相等的为一组。
如果未对查询结果分组,聚集函数将作用于整个查询结果,分组后,聚集函数将作用于每一个组,即每一组都有一个函数值。
SELECT Cno,COUNT(Sno) FROM SC GROUP BY Cno;
⚠️ WHERE 子句与 HAVING短语的区别在与作用对象不同,WHERE子句作用于基本表或视图,从中选择满足条件的元组,HAVING短语作用于组,从中选择满足条件的组。
表格的连接
1.等值连接余非等值连接
[< 表名 1>] <列名1><比较运算符>[<表名2>]<列名2>
比较运算符主要有 =,>,<,>=,<=,!=(或<>)
此外连接谓词还可以使用下面形式:
[<表名1>] <列名1> BETWEEN [<表名2>] <列名2> AND [<表名2>] <列名3>
ps:等值连接就是连接运算符为 = ,其他运算符为非等值连接。
SELECT Student.*,SC.*
FROM Student,SC
WHERE Student.Sno = SC.Sno
ps:若在等值连接中把目标列中重复的属性列去掉则为自然连接
SELECT Student.Sno,Sname
FROM Student,SC
WHERE Student.Sno = SC.Sno AND
SC.Cno = '2' AND SC.Grade>90
自身连接
连接操作还可以是 一个表与其自己进行连接,称为表的自身连接
SELECT FIRST.Cno,SECOND.Cpno FROM Course FIRST,Course SECOND # FIRST 和 SCOND 都是Course的别名 WHERE FIRST.Cpno = SECOND,Cno
嵌套查询
1. 带有IN谓词的子查询
SELECT Sname FROM Student WHERE Sno IN (SELECT Sno // 内层查询或子查询 FROM SC WHERE Cno = '2');
子查询中的查询条件不依赖于父查询的,称为不相关子查询.
相关子查询的例子
SELECT Sno,Sname,Sdept FROM Student WHERE Sdept = ( SELECT Sdept FROM Student WHERE Sname = '刘晨');
SELECT Sno,Cno FROM SC x WHERE Grade >= (SELECT AVG(Grade) FROM SC y WHERE y.Sno = x.Sno);
带有ANY(SOME)或ALL 谓词的子查询
ps:子查询返回单值,用比较运算符,返回多值时要用ANY
SELECT Sname,Sage FROM Student WHERE Sage < ANY(SELECT Sage FROM Student WHERE Sdept = 'cs')
使用简单的符号标识不同的标题,将某些文字标记为粗体或者斜体,创建一个链接等,详细语法参考帮助?。
得到表格中的某一列满足某种条件的每一组数据(eg:得到sampleinfo中ethnicity的值等于CEU的那些数据)
得到表格中的列名称满足某种条件的每一组数据(eg:得到exprs中列名称都带CEU的)
pandas中针对每一行或者列的数据操作用apply函数
本编辑器支持 Markdown Extra , 扩展了很多好用的功能。具体请参考Github.
Markdown Extra 表格语法:
项目 | 价格 |
---|---|
Computer | $1600 |
Phone | $12 |
Pipe | $1 |
可以使用冒号来定义对齐方式:
项目 | 价格 | 数量 |
---|---|---|
Computer | 1600 元 | 5 |
Phone | 12 元 | 12 |
Pipe | 1 元 | 234 |
定义 D
定义D内容
代码块语法遵循标准markdown代码,例如:
@requires_authorization
def somefunc(param1='', param2=0):
'''A docstring'''
if param1 > param2: # interesting
print 'Greater'
return (param2 - param1 + 1) or None
class SomeClass:
pass
>>> message = '''interpreter ... prompt'''
byPlayerID = salaries[ salaries.playerID == 'lynnfr01'] #lynnfr01为某一个选手名字
print byPlayerID.head()
可以看出针对一个player有好几个salary。
生成一个脚注1.
用 [TOC]
来生成目录:
使用MathJax渲染LaTex 数学公式,详见math.stackexchange.com.
更多LaTex语法请参考 这儿.
可以渲染序列图:
或者流程图:
即使用户在没有网络的情况下,也可以通过本编辑器离线写博客(直接在曾经使用过的浏览器中输入write.blog.csdn.net/mdeditor即可。Markdown编辑器使用浏览器离线存储将内容保存在本地。
用户写博客的过程中,内容实时保存在浏览器缓存中,在用户关闭浏览器或者其它异常情况下,内容不会丢失。用户再次打开浏览器时,会显示上次用户正在编辑的没有发表的内容。
博客发表后,本地缓存将被删除。
用户可以选择 把正在写的博客保存到服务器草稿箱,即使换浏览器或者清除缓存,内容也不会丢失。
注意:虽然浏览器存储大部分时候都比较可靠,但为了您的数据安全,在联网后,请务必及时发表或者保存到服务器草稿箱。
1
1
1
1
1
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2