-
-
Notifications
You must be signed in to change notification settings - Fork 4.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
文章中的代码显示出现问题 #2227
Comments
是网页上这么显示么?能否给个链接? |
我想看看自己的用户名 |
我的博客是:wncbl.cn, 看这篇文章:http://wncbl.cn/posts/947ac39b/ |
我怀疑是CSS style的问题。能贴下MD文件么? |
非常感谢您的关注! INFO Generated: vendors/fancybox/source/helpers/jquery.fancybox-media.js
INFO Generated: vendors/fancybox/source/helpers/jquery.fancybox-thumbs.css
INFO Generated: vendors/fancybox/source/helpers/jquery.fancybox-thumbs.js
INFO Generated: vendors/ua-parser-js/dist/ua-parser.min.js
INFO Generated: vendors/fastclick/lib/fastclick.js
INFO Generated: vendors/font-awesome/css/font-awesome.min.css
INFO Generated: vendors/font-awesome/css/font-awesome.css
INFO Generated: vendors/fancybox/source/jquery.fancybox.js
... 具体的位置当时没有截图,我等了好长时间一直没动静,我就直接把窗口关了,所以我怀疑是不是哪部分的缓存导致的。MD文件都是之前备份的,配置好后直接放到 “_posts”文件夹下的。 以下是MD文件原文:---
title: SQL server 常用命令
categories: 编程
tags:
- SQL Server
- 常用命令
abbrlink: 947ac39b
date: 2016-09-23 22:52:31
---
> 花了几天的时间,将《SQL必知必会(第4版)》过了一遍,一本非常适合 SQL 入门的一本书,没有废话,直奔主题,全面的介绍了 SQL 必须掌握的知识,实例为辅,有种相见恨晚的感觉,为了加深印象,搜罗了一篇 SQL Server 常用命令。
先放上《SQL必知必会(第4版)》的电子书,PDF + MOBI格式电子书 + 示例数据库 sql 语句 [**传送门**](https://yunpan.cn/ckXzpBRrnPeis) 访问密码: **` 89bf`**
## 基础命令
### 数据库的创建与删除
`` `SQL
CREATE DATABASE db1; -- 创建数据库db1
DROP DATABASE db1; -- 删除数据库db1
`` `
### 数据库的创建与删除
`` `SQL
CREATE TABLE t1( -- 创建数据表 t1, t1 包含两个字段
col1 varchar(100),
col2 int
);
DROP TABLE t1; -- 删除数据表 t1
`` `
<!-- more -->
### 创建两表之间的外键关联
`` `SQL
CREATE TABLE t2( -- 创建主表
t2_c1 char(8) PRIMARY KEY, -- 定义主键
t2_c2 int
);
CREATE TABLE t3(
t3_c1 char(8),
t3_c2 int,
FOREING KEY(t3_c1) REFERENCES t2(t2_c1) -- 定义外键
);
DROP TABLE t3, t2; -- t3 应先于 t2 被删除
`` `
### 索引的创建与删除
`` `SQL
CREATE INDEX index1 ON t1(col1); -- 创建非聚集索引 index1
DROP INDEX index1 ON t1; -- 删除非聚集索引 index1
`` `
### 视图的创建与删除
`` `SQL
CREATE VIEW view1 AS SELECT * FROM t1; -- 创建视图 view1
DROP VIEW view1; -- 删除视图 view1
`` `
### 超级用户的创建与删除
`` `SQL
CREATE LOGIN log1 -- 创建名为log1的登录
WITH PASSWORD = "123456", -- 密码为 123456
DEFAULT_DATABASE = db1; -- 默认数据库为 db1
GO
EXEC sp_addrolemember "log1", "sysadmin"; -- 赋最高权限
GO
DROP LOGIN log1; -- 删除登录 log1
`` `
### 数据库用户的创建、授权与删除
`` `SQL
CREATE LOGIN mylog WITH PASSWORD = "123456"; -- 先创建一个登录
DEFAULT_DATABASE = db1;
GO
USE db1;
GO
CREATE USER user1 FOR LOGIN mylog; -- user依赖于mylog
GO
GRANT CREATE TABLE, CREATE VIEW, CREATE PROCEDURE, ALTER ANY SCHEMA TO user1; -- 授权
GO
DROP USER user1; -- 删除用户 user1
DROP LOGIN mylog; -- 删除登录 mylog
`` `
### 数据库的备份与还原
`` `SQL
USE master;
GO
ALTER DATABASE db1 SET RECOVERY SIMPLE; -- 切换到简单恢复模式下
GO
BACKUP DATABASE db1 -- 将数据库 db1 完整备份到文件
db1_disk.bak -- 备份文件的名称
TO DISK = "D:\Backup\db1_disk.bak" -- 设置备份文件存放路径
WITH FORMAT;
-------------------------------------------------------------
USE master;
GO
EXEC sp_addumpdevice 'disk', 'db1_simple', 'D:\Backup\db1_disk.bak';
GO
RESTORE DATABASE db1 -- 利用备份文件db1_disk.bak完整还原 db1
FROM db1_simple;
`` `
### 数据库的分享与附加
`` `SQL
USE master;
GO
EXEC sp_detach_db 'db1', NULL, 'true'; -- 分离数据库
-- 利用分离得到的 dbl.mdf 进行附加
DECLARE @data_path navrchar(256);
SET @data_path = 'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\';
EXEC ('CREATE DATABASE db1
ON (FILENAME = '''+ @data_path + 'db1.mdf'')
FOR ATTACH');
GO
`` `
### 存储过程的创建、调用和删除
`` `SQL
CREATE PROCEDURE MyPro -- 定义带两个参数的存储过程
@min_avgrade numeric(3,1),
@max_avgrade numeric(3,1)
AS
SELECT s_no,s_name,s_sex,s_avgrade,s_dept
FROM student
WHERE s_avgrade>=@min_avgrade AND s_avgrade<=@max_avgrade;
----------------------------------------------------------
EXEC MyPro 50,88.8; -- 调用存储过程
----------------------------------------------------------
DROP PROCEDURE MyPro -- 删除存储过程
`` `
### 触发器的创建、应用和删除
`` `SQL
CREATE TRIGGER MyTrigger ON t1 -- 创建触发器
AFTER DELETE
AS
BEGIN
PRINT '有人删除表t1 中的数据!'
END
--------------------------------------------------
-- 当执行 DELETE 语句时,该触发器被触发,如:
DELETE FROM t1;
--------------------------------------------------
DROP TRIGGER MyTrigger; -- 删除触发器
`` `
### 游标的创建、应用和删除
`` `SQL
DECLARE MyCursor -- 创建游标
STATIC
FOR SELECT col1 FROM t1;
OPEN MyCursor;
DECLARE @RowCount Integer, @i Integer, @col varchar(100);
SET @i=0
SET @RowCount = @@CURSOR_ROWS
WHILE @i<@RowCount
BEGIN
FETCH NEXT FROM MyCursor -- 将游标中的数据逐一输出
INTO @col;
PRINT @col;
SET @i=@i+1
END
CLOSE MyCursor;
DEALLOCATE MyCursor; -- 删除游标
`` `
### 查看服务器上所有的数据库
`` `SQL
SELECT *
FROM sys.databases
ORDER BY name
`` `
### 查看数据库中所有的数据表
`` `SQL
USE db1; -- 查询数据库 db1 中包含的所有数据库
SELECT * FROM sys.tables;
`` `
### 查看数据表的结构
`` `SQL
SELECT a.name 字段名, b.name 字段, a.max_length 字段长度
FROM sys.all_columns as a
JOIN sys.types as b
ON a.system_type_id = b.system_type_id
WHERE object_id = object_id('t1');
`` `
### 向数据表插入数据
`` `SQL
INSERT INTO t1 VALUES('庆祝建国六十周年!', 60); -- 向表t1插入数据
INSERT INTO t1 VALUES('北京奥运!', 29);
INSERT INTO t1 VALUES('上海世博会!', 51);
`` `
### 更新表中的数据
`` `SQL
UPDATE t1
SET col1 = '庆祝中华人民共和国建国六十周年!'
WHERE col2=60;
`` `
### 删除表中的数据
`` `SQL
DELETE FROM t1
WHERE col2=29;
`` `
### 降序、有条件查询
`` `SQL
SELECT col1, col2
FROM t1
WHERE col2 > 50
ORDER BY col2 DESC
`` `
### 等值连接查询
`` `SQL
SELECT t2.t2_c2, t2.t2_c2, t3.t3_c2
FROM t2
INNER JOIN t3
ON (t2.t2_c1 = t3.t3_c1);
`` `
### 左外连接查询
`` `SQL
SELECT t2.t2_c1, t2.t2_c2, t3.t3_c2
FROM t2
LEFT JOIN t3
ON(t2.t2_c1 = t3.t3_c1);
`` `
### 右外连接查询
`` `SQL
SELECT t2.t2_c1, t2.t2_c2, t3.t3_c2
FROM t2
RIGHT JOIN t3
ON(t2.t2_c1 = t3.t3_c1);
`` `
### 全外连接查询
`` `SQL
SELECT t2.t2_c1, t2.t2_c2, t3.t3_c2
FROM t2
FULL JOIN t3
ON(t2.t2_c1 = t3.t3_c1);
`` `
### IF 语句
`` `SQL
DECLARE @n1 int, @n2 int
SET @n1 = 2
SET @n2 = 20
IF @n1 < @n2
BEGIN
PRINT '@n1小于@n2';
END
ELSE IF @n1=@n2
BEGIN
PRINT '@n1等于@n2';
END
ELSE
BEGIN
PRINT '@n1大于@n2'
END
GO
`` `
### CASE 语句
`` `SQL
SELECT 学号 = s_no, 姓名及爱好 =
CASE s_no
WHEN '20060201' THEN '李好,游泳'
WHEN '20060202' THEN '王丫,登山'
ELSE '没有这个人'
END
FROM student
`` `
### WHILE 语句
`` `SQL
DECLARE @n int, @i int, @resulet int; -- 计算 n 的阶乘 n!
SET @n = 5;
SET @i = 1;
SET @resulet = 1;
WHILE @i <= @n
BEGIN
SET @resulet = @resulet * @i;
SET @i = @i + 1;
END
PRINT @resulet
`` `
### 字符串数据和数值型数据的转换
`` `SQL
DECLARE @f float, @s varchar(20); -- 数值型数据 → 字符串数据
SET @f=3.14159;
SET @s=CONVERT(varchar(20),@f);
--------------------------------------------------
DECLARE @f float, @s varchar(20); -- 字符串数据 → 数值型数据
SET @s='1.73205';
SET @f=CONVERT(float,@s);
`` `
### 时间类型数据和字符串类型数据的转换
`` `SQL
DECLARE @dt datetime, @str varchar(30); -- 时间数据 → 字符串数据
SET @dt=GETDATE();
SET @str=CONVERT(varchar(30), @dt, 114);
SET @str=CONVERT(varchar(30), @dt, 111);
PRINT @str
--------------------------------------------------
DECLARE @dt datetime, @str varchar(30); -- 字符串数据 → 时间数据
SET @str = '2009/09/12';
SET @dt=CONVERT(datetime, @str);
PRINT @dt;
`` `
### 获取服务器、数据库、应用程序、用户、登录等名称
`` `SQL
PRINT HOST_NAME(); -- 获取服务器名
PRINT DB_NAME(); -- 获取数据库名
PRINT APP_NAME(); -- 获取应用程序名
PRINT USER_NAME(); -- 获取数据库用户名
PRINT SUSER_SNAME(); -- 获取登录名
`` `
## 系统视图,系统表,系统存储过程的使用
### 获取数据库中的用户表信息
#### 获取特定库中所有用户表信息
`` `SQL
SELECT * FROM sys.tables
SELECT * FROM sys.objects WHERE type='U' -- 用户表
-- 第二条语句中当type='S'时是系统表
`` `
#### 获取表的字段信息
`` `SQL
SELECT * FROM sys.columns
WHERE object_id=object_id('表名')
SELECT * FROM syscolumns
WHERE id=OBJECT_ID('表名')
`` `
#### 获取当前库中表的字段及类型信息
`` `SQL
SELECT '字段名'=a.name,
'类型名'=b.name,
'字段长度'=a.max_length,
'参数顺序'=a.column_id
FROM sys.columns a
LEFT JOIN sys.types b ON a.user_type_id=b.user_type_id
WHERE object_id=object_id('表名')
-- syscolumns与sys.columns表用法类似。
`` `
### 获取索引或主键信息
#### 获取对象及对应的索引的信息
`` `SQL
SELECT '对象名'= A.name,
'对象类型'= a.type,
'索引名'= B.name,
'索引类型'= CASE b.type
WHEN 1 THEN '聚集索引'
WHEN 2 THEN '非聚集索引'
WHEN 3 THEN 'xml索引'
ELSE '空间索引'
END,
'主键否' = CASE
WHEN b.is_primary_key=1 THEN '主键'
ELSE ''
END
FROM sys.objects A
JOIN sys.indexes B ON A.object_id=B.object_id
WHERE A.type='U'
AND B.name IS NOT NULL
ORDER BY a.name
`` `
#### 获取表的主键及对应的字段
`` `SQL
SELECT '表名'=d.name ,
'主键名'=a.name,
'字段名'=c.name
FROM sys.indexes a
JOIN sys.index_columns b ON a.object_id=b.object_id
AND a.index_id=b.index_id
JOIN sys.columns c ON a.object_id=c.object_id
AND c.column_id=b.column_id
JOIN sys.objects d ON d.object_id=c.object_id
WHERE a.is_primary_key=1
------------------------------------------------------
SELECT '表名'=OBJECT_NAME(b.parent_obj),
'主键名'=c.name,
'字段名'=a.name
FROM syscolumns a,
sysobjects b,
sysindexes c,
sysindexkeys d
WHERE b.xtype = 'PK'
AND b.parent_obj = a.id
AND c.id = a.id
AND b.name = c.name
AND d.id = a.id
AND d.indid = c.indid
AND a.colid = d.colid
------------------------------------------------------
SELECT '所属架构'=s.name ,
'表名'=t.name,
'主键名'=k.name ,
'列名'=c.name,
'键列序数'=ic.key_ordinal
FROM sys.key_constraints AS k
JOIN sys.tables AS t
ON t.object_id = k.parent_object_id
JOIN sys.schemas AS s
ON s.schema_id = t.schema_id
JOIN sys.index_columns AS ic
ON ic.object_id = t.object_id
AND ic.index_id = k.unique_index_id
JOIN sys.columns AS c
ON c.object_id = t.object_id
AND c.column_id = ic.column_id
WHERE k.type = 'pk';
------------------------------------------------------
-- 使用系统存储过程获取指定表的主键信息
EXEC sp_pkeys '表名' -- 表名只能是当前数据库下的单独表名不能带上架构名
`` `
#### 查询哪些表创建了主键
`` `SQL
SELECT '表名'=a.name
FROM
(SELECT name,
object_id
FROM sys.objects
WHERE TYPE='u') a
LEFT JOIN sys.indexes b ON a.object_id=b.object_id
AND b.is_primary_key=1
WHERE b.name IS NOT NULL
-- 注:查询哪些表没有创建主键,将WHERE条件改成 IS NULL 即可。
`` `
### 查看视图信息
#### 查看视图属性信息
`` `SQL
EXEC sp_help '视图名'
`` `
#### 查看创建视图脚本
`` `SQL
EXEC sp_helptext '视图名'
`` `
#### 查看当前数据库所有视图基本信息
`` `SQL
SELECT * FROM sys.views
SELECT * FROM sys.objects
WHERE TYPE='V'
SELECT *
FROM INFORMATION_SCHEMA.VIEWS
`` `
#### 查看视图对应的字段及字段属性
`` `SQL
SELECT '视图名'=a.name,
'列名'=b.name,
'字段类型'=TYPE_NAME(b.system_type_id),
'字段长度'=b.max_length
FROM sys.views a
JOIN sys.columns b ON a.object_id=b.object_id
ORDER BY a.name
`` `
#### 获取视图中的对象信息
`` `SQL
EXEC sp_depends '视图名'
`` `
### 查看存储过程信息
#### 基本信息
`` `SQL
SELECT * FROM sys.procedures
SELECT * FROM sys.objects
WHERE TYPE='P'
`` `
#### 查看存储过程创建文本
`` `SQL
sp_helptext 存储过程名称
SELECT text
FROM syscomments
WHERE id=object_id (存储过程名称)
`` `
#### 查看存储过程的参数信息
`` `SQL
SELECT '参数名称' = name,
'类型' = type_name(xusertype),
'长度' = LENGTH, '参数顺序' = colid
FROM syscolumns
WHERE id=object_id(存储过程名称)
---------------------------------------------------------------------------------------------------
SELECT '参数名称' = name,
'类型' = type_name(system_type_id),
'长度' = max_length,
'参数顺序' =parameter_id
FROM sys.parameters
WHERE object_id=object_id(存储过程名称) -- 返回当前环境中可查询的指定表或视图的列信息。
EXEC sp_columns 表名
SELECT * FROM sys.columns WHERE object_id=OBJECT_id(表名)
SELECT * FROM sys.syscolumns WHERE id=OBJECT_ID(表名)
SELECT * FROM information_schema.columns WHERE TABLE_NAME=表名 -- 查询存储过程或函数的参数的详细信息
SELECT * FROM sys.parameters WHERE object_id=object_id(函数或存储过程名称)
`` `
### 获取触发器的相关信息
#### 查看触发器定义及相关属性信息
`` `SQL
EXEC sp_help '触发器名'
-- 查看表中指定类型的触发器的属性信息
EXEC sp_helptrigger ['表名'][,['触发器类型']]
--参数2可选,省略参数2时返回该表中所有类型的触发器属性
`` `
#### 获取触发器的创建脚本
`` `SQL
EXEC sp_helptext '触发器名'
`` `
#### 查看表中禁用的触发器
`` `SQL
SELECT name
FROM sys.triggers
WHERE parent_id=object_id('表名')
AND is_disabled=1
-- 注:is_disabled=0时为启用的触发器。
`` `
#### 获取触发器的父类名,触发器名,触发器状态和触发器类型信息
`` `SQL
SELECT '父类名'=a.name,
'对象类型'=a.type,
'触发器名'=b.name,
'触发器状态'=CASE
WHEN b.is_disabled=1
THEN'禁用'
ELSE '启用'
END,
'触发器类型'=CASE
WHEN b.is_instead_of_trigger=1
THEN 'instead of'
ELSE 'after'
END
FROM sys.objects a
JOIN sys.triggers b ON a.object_id=b.parent_id
-- 注:查询单个表或视图的触发器信息加上a.object_id=object_id(表名)条件
`` `
#### 禁用和启用触发器命令
`` `SQL
-- 禁用:
ALTER TABLE表名disable TRIGGER触发器名
-- 启用:
ALTER TABLE表名enable TRIGGER触发器名
-- 注:禁用或启用多个触发器,触发器名之间用逗号隔开,禁用或启用表中全部触发器,将触发器名换成ALL。
`` `
#### 指定第一个或最后一个触发的AFTER触发器。
`` `
EXEC sp_settriggerorder '触发器名', '执行顺序', '触发事件'
-- 查询触发触发器的对应事件
SELECT * FROM sys.trigger_events
WHERE object_id=object_id('触发器名')
`` `
#### 重命名触发器
`` `SQL
EXEC sp_rename 旧名,新名
`` `
### 查看数据库关于权限的信息
`` `SQL
--查询当前数据库角色信息
EXEC sp_helprole 角色名
--提供有关每个数据库中的登录及相关用户的信息
EXEC sp_helplogins 登录名
--报告有关当前数据库中数据库级主体的信息。
EXEC sp_helpuser 当前数据库用户或角色名
--返回有关当前数据库中某个角色的成员的信息
EXEC sp_helprolemember 角色名
--返回SQL Server 固定服务器角色的列表
EXEC sp_helpsrvrole 固定服务器角色名
`` ` |
看不出有什么问题……会不会有cache的CSS style文件在server? |
那有没有办法清理呢?能否可以把本地的 hexo 再重装安装一遍? |
内嵌代码用 |
应该还是哪里的缓存的问题,这些文章之前显示是没有问题的 |
@backeyshy 那个 ``` 是我改的为了显示方便 |
@Meli55a 可否试一下deploy到一个新的folder,看看问题是否能解决? |
重新安装了hexo,最终问题解决,感谢@NoahDragon 的回复,使我没有放弃hexo而投入wordpress!摸摸大! |
👍 解决了就好~ |
hexo s显示正常 |
@allennic 另:请单开Issue,防止跑偏。 |
Node version
Plugin version(
npm ls --depth 0
)The text was updated successfully, but these errors were encountered: