欢迎使用CSDN-markdown编辑器

欢迎使用Markdown编辑器写博客

本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:

  • Markdown和扩展Markdown简洁的语法
  • 代码块高亮
  • 图片链接和图片上传
  • LaTex数学公式
  • UML序列图和流程图
  • 离线写博客
  • 导入导出Markdown文件
  • 丰富的快捷键

快捷键

  • 加粗 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及扩展

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

定义列表

Markdown Extra 定义列表语法:
项目1
项目2
定义 A
定义 B
项目3
定义 C

定义 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]来生成目录:

  • 欢迎使用Markdown编辑器写博客
    • 快捷键
    • Markdown及扩展
      • 表格
      • 定义列表
      • 代码块
      • 脚注
      • 目录
      • 数学公式
      • UML 图
    • 离线写博客
    • 浏览器兼容

数学公式

使用MathJax渲染LaTex 数学公式,详见math.stackexchange.com.

  • 行内公式,数学公式为: Γ(n)=(n1)!n
  • 块级公式:

x=b±b24ac2a

更多LaTex语法请参考 这儿.

UML 图:

可以渲染序列图:

Created with Raphaël 2.1.0 张三 张三 李四 李四 嘿,小四儿, 写博客了没? 李四愣了一下,说: 忙得吐血,哪有时间写。

或者流程图:

Created with Raphaël 2.1.0 开始 我的操作 确认? 结束 yes no
  • 关于 序列图 语法,参考 这儿,
  • 关于 流程图 语法,参考 这儿.

离线写博客

即使用户在没有网络的情况下,也可以通过本编辑器离线写博客(直接在曾经使用过的浏览器中输入write.blog.csdn.net/mdeditor即可。Markdown编辑器使用浏览器离线存储将内容保存在本地。

用户写博客的过程中,内容实时保存在浏览器缓存中,在用户关闭浏览器或者其它异常情况下,内容不会丢失。用户再次打开浏览器时,会显示上次用户正在编辑的没有发表的内容。

博客发表后,本地缓存将被删除。 

用户可以选择 把正在写的博客保存到服务器草稿箱,即使换浏览器或者清除缓存,内容也不会丢失。

注意:虽然浏览器存储大部分时候都比较可靠,但为了您的数据安全,在联网后,请务必及时发表或者保存到服务器草稿箱

浏览器兼容

  1. 目前,本编辑器对Chrome浏览器支持最为完整。建议大家使用较新版本的Chrome。
  2. IE9以下不支持
  3. IE9,10,11存在以下问题
    1. 不支持离线功能
    2. IE9不支持文件导入导出
    3. IE10不支持拖拽文件导入

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

  1. 这里是 脚注内容. ↩

你可能感兴趣的:(欢迎使用CSDN-markdown编辑器)