sql数据库

解决SQL数据库日志已满的问题

不打扰是莪最后的温柔 提交于 2020-03-03 18:14:26
一、简单方法 1、右键数据库→属性→选项→故障还原模型→设为简单→确定; 2、右键数据库→所有任务→收缩数据库→确定; 3、右键数据库→属性→选项→故障还原模型→设为大容量日志记录→确定。 2010。09。24 我就是用的第一种简单方法,来给公司数据库日志减肥! 二、复杂方法 1、清空日志 DUMP TRANSACTION 库名 WITH NO_LOG 2、截断事务日志 BACKUP LOG 数据库名 WITH NO_LOG 3、收缩数据库文件(如果不压缩,数据库的文件不会减小) 企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件 --选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了 --选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了 也可以用SQL语句来完成 --收缩数据库 DBCC SHRINKDATABASE(客户资料) --收缩指定数据文件,1是文件号,可以通过这个语句查询到:select * from sysfiles DBCC SHRINKFILE(1) 4、为了最大化的缩小日志文件(如果是sql 7.0,这步只能在查询分析器中进行) a.分离数据库 企业管理器--服务器--数据库--右键--分离数据库 b

SQL的别名和SQL的执行顺序和SQL优化

烈酒焚心 提交于 2020-03-03 16:08:50
致敬原文: https://www.cnblogs.com/cindy-cindy/p/6798010.html SQL的别名 1、不可以在where子句中使用列名的别名,即select name t from emp where t>2999;是不允许的 2、使用别名的好处: 提高SQL的易读性 提高SQL的解析执行效率 语法检查 语义检查 共享池检查 生成执行树 执行 3、SQL的硬解析和软解析? SQL的执行顺序 1、from语句–where语句–group by语句–having语句–select语句–order by语句 rownum的使用 select * from emp rownum<=2 / 查找emp表的前两条记录 / select * from (select rownum t,ename from emp) m where m.t>=5 and m.t<=10 / 查询某个范围的记录,先查询出rownum并保存为临时表m,再进行查询 / where和having的区别? where对分组前的小组内的详细信息进行过滤 having对分组后的信息进行过滤 内连接,外连接,自连接? SQL优化(这里可以借鉴) 1、避免使用select * ,而是具体指出选择哪些列 2、SQL大小写,数据库在解析sql时,先把SQL语句转换为大写,再进行解析操作

SQL行转列汇总

点点圈 提交于 2020-03-03 14:53:12
PIVOT 用于将列值旋转为列名(即行转列),在 SQL Server 2000可以用聚合函数配合CASE语句实现 PIVOT 的一般语法是:PIVOT(聚合函数(列) FOR 列 in (…) )AS P 注意:PIVOT、UNPIVOT是SQL Server 2005 的语法,使用需修改数据库兼容级别(在数据库属性->选项->兼容级别改为 90 ) SQL2008 中可以直接使用 完整语法: View Code UNPIVOT 用于将列明转为列值(即列转行),在SQL Server 2000可以用UNION来实现 View Code 典型实例 一、行转列 1、建立表格 IF OBJECT_ID('tb') IS NOT NULL DROP TABLE tb go CREATE TABLE tb(姓名 VARCHAR(10),课程 VARCHAR(10),分数 INT) insert into tb VALUES ('张三','语文',74) insert into tb VALUES ('张三','数学',83) insert into tb VALUES ('张三','物理',93) insert into tb VALUES ('李四','语文',74) insert into tb VALUES ('李四','数学',84) insert into tb VALUES (

分页查询sql

孤人 提交于 2020-03-03 14:03:53
转自 http://www.cnblogs.com/keivnjuu/archive/2011/04/23/2025882.html http://www.cnblogs.com/keivnjuu/archive/2011/04/23/2025882.html 分页查询 sql 分页查询就是根据需要每次只返回所需要的数据,而不用每次都从数据库中全部把数据提取出来,这样可以降低程序与数据库之间的数据传送量,并且还可以提高程序的性能。 一般来说我们在数据量大的情况下总是会分页显示(谁也不会一下子将几万条数据全部一次性显示给用户),这样决定我们返回的查询结果集的参数有两个:当前显示的页数 pageIndex 和每页显示的记录条数 size 。这里来举例在 SQL   Server 中我们如何写分页查询的 SQL 语句,假设我们按照 UserID 字段降序查询,每页显示 5 条记录。查询语句如下: select top 5 * from UserInfo order by UserID asc 第一页我们可以按照对 UserID 降序查询,并利用 top 5 取出前 5 条记录。可是第二页的 SQL 语句我们该怎么写呢?第二页显示的数据应该是按照 UserID 降序排列之后第 6 条到 10 条记录,有没有办法做到这一点呢?有两种办法:第一种就是前面我所提到的一次性将全部数据提取并填充到

Windows Server 2012搭建SQL Server Always On踩坑全记录

安稳与你 提交于 2020-03-03 13:44:48
Windows Server 2012搭建SQL Server Always On踩坑全记录 环境信息: Windows Server 2012 R2 Sql Server 2012 整个搭建集群的过程主要分为3步: 1.配置预控,并把机器加域。 2.配置windows故障转移集群(Windows Failover Cluster) 3.配置SQL Server Always On High Availability Group(AG) 踩坑全记录 预控配置 比较好配置,需要注意的是非预控机器在加入域之前需要将dns指向预控。这里遇到的一个坑,在给node2节点加域时提示 虚拟机使用华为私有云申请,申请的服务器的sid因为与node1节点一致导致,重新生成sid即可,方法: C:\Windows\System32\sysprep\sysprep.exe 勾选通用项,并开始 。 配置windows故障转移集群。 Node1上添加node2节点时提示“无法访问远程注册表,请确保远程服务器注册表服务已运行,并已启动远程管理”。 从字面意思来看,放这诊断注册表服务已经windows策略上,发现服务与策略配置都没问题。最后在node1上尝试添加本地节点node1时提示“本地没有安装故障转移工具”,在去windows服务里查询,果然只勾选了故障转移管理工具选项,实际并未安装故障转移集群

mysql(3)mysql的sql语句入门

∥☆過路亽.° 提交于 2020-03-03 12:41:08
1.登录mysql与退出mysql 登录:mysql -u账号 -p密码 -h主机地址 -P端口号 -e 执行的sql语句; //密码一般不直接写出,回车后隐藏写入 ,-h可以不写默认是localhost 退出:quit,exit ,ctrl+c 备注:参数可分为全局和会话,可修改与不可修改,全局需要加上global,例如 set global 参数 =值,会话级别只对当前会话有效, 例如set 【session】 autocommit=1;中间可以省略session,例如需要全局的话需要 set global autocommit=1;不能持久化,重启后是默认值,全局设置对已经开启了会话的不起作用,只会对以后连接的会话有效,查看可以使用show 【global/session】 【variables 】 【like pattern】 变量名 来查看。 备注:dbms数据库管理系统 ,dba数据库管理员, sql(ddl 表结构,dml增删改 ,dql 查询,dcl数据库控制,tcl事物控制) 2.数据的导入与导出 1)数据的导入:source (运行在mysql下的命令) select version();//查看当前数据库版本; create database 数据库名称;//创建数据库 show databases ; //显示所有的数据库,产看数据库是否已经导入,也可以使用

SQL基本练习题

混江龙づ霸主 提交于 2020-03-03 11:51:58
SQL基本练习题,自己做了一遍,原题 转载自这里 建表语句 # 创建数据库STUDENT CREATE DATABASE STUDENT ; USE STUDENT ; # 创建表STUDENT CREATE TABLE STUDENT ( SNO VARCHAR ( 3 ) NOT NULL, SNAME VARCHAR ( 4 ) NOT NULL, SSEX VARCHAR ( 2 ) NOT NULL, SBIRTHDAY DATETIME, CLASS VARCHAR ( 5 )) ; # 创建表COURSE CREATE TABLE COURSE ( CNO VARCHAR ( 5 ) NOT NULL, CNAME VARCHAR ( 10 ) NOT NULL, TNO VARCHAR ( 10 ) NOT NULL ) ; # 创建表SCORE CREATE TABLE SCORE ( SNO VARCHAR ( 3 ) NOT NULL, CNO VARCHAR ( 5 ) NOT NULL, DEGREE NUMERIC ( 10, 1 ) NOT NULL ) ; # 创建表TEACHER CREATE TABLE TEACHER ( TNO VARCHAR ( 3 ) NOT NULL, TNAME VARCHAR ( 4 ) NOT NULL, TSEX

Azure--创建 Azure SQL 数据库

好久不见. 提交于 2020-03-03 10:22:19
录到 Azure 门户 。 在 Azure 门户菜单上或在门户主页中,选择“创建资源”。 选择“数据库”,然后选择“SQL 数据库”。 使用这些值来填写表单的其余部分。 设置 值  订阅 Concierge 订阅 资源组 [沙盒资源组名称] 数据库名称 物流 服务器 [请参阅下文] 想要使用 SQL 弹性池? 否 计算 + 存储 [请参阅下文] 在“服务器”下,单击“新建”,填写表单,然后单击“确定”。 以下是有关如何填写表单的更多信息: 设置 值  服务器名称 全局唯一的服务器名称。 服务器管理员登录名 用作主管理员登录名的数据库标识符。 密码 任何有效密码,至少包含八个字符,并包含以下三个类别中的字符:大写字符、小写字符、数字和非字母数字字符。 位置 以下可用列表中的任何有效位置。 允许 Azure 服务访问服务器 应选中此复选框。 5. 使用免费沙盒,可以在部分 Azure 全球区域中创建资源。 创建资源时,请从下面的列表中选择一个区域: o 美国西部 2 o South Central US o Central US o East US o West Europe o Southeast Asia o Japan East o Brazil South o Australia Southeast o 印度中部 6. 在“计算 + 存储”下,单击“配置数据库”

JDBC事务

生来就可爱ヽ(ⅴ<●) 提交于 2020-03-03 09:15:37
如果JDBC连接处于自动提交模式,默认情况下,则每个SQL语句在完成后都会提交到数据库。 对于简单的应用程序可能没有问题,但是有三个原因需要考虑是否关闭自动提交并管理自己的事务 - 提高性能 保持业务流程的完整性 使用分布式事务 事务能够控制何时更改提交并应用于数据库。 它将单个SQL语句或一组SQL语句视为一个逻辑单元,如果任何语句失败,整个事务将失败。 要启用手动事务支持,而不是使用JDBC驱动程序默认使用的自动提交模式,请调用 Connection 对象的 setAutoCommit() 方法。 如果将布尔的 false 传递给 setAutoCommit() ,则关闭自动提交。 也可以传递一个布尔值 true 来重新打开它。 例如,如果有一个名为 conn 的 Connection 对象,请将以下代码关闭自动提交 - conn.setAutoCommit(false); Java 提交和回滚 完成更改后,若要提交更改,那么可在连接对象上调用 commit() 方法,如下所示: conn.commit( ); Java 否则,要使用连接名为 conn 的数据库回滚更新,请使用以下代码 - conn.rollback( ); Java 以下示例说明了如何使用提交和回滚对象 - try{ //Assume a valid connection object conn conn

sql check约束

∥☆過路亽.° 提交于 2020-03-03 05:24:28
一.主键 主键作为表中的唯一标识,标识这一列不允许出现重复数据 如果两列或多列组合起来唯一标识表中的每一行,该主键叫“复合主键” 选择主键的原则 最少性 尽量选择单个键作为主键 稳定性 尽量选择数值更新少的列作为主键 二.默认值 设置列默认值的前提是这一列必须是允许为空的,否则设置默认值无效 如果在插入数据或者更改数据时,这一列不输入的话那么会按照默认值进行绑定 三:标识列 将想要设置的标识列设置成主键,保证这一列的数据类型为int,然后在此列的标识规范改为是,标识种子代表从几开始,标识增量表示每次加几 四:创建主外键 外键表找主键表 注:我们在创建表组织数据时要注意数据的完整性,这是我们创建一个结构良好的数据库的基础,一个结构功能良好的数据库它的数据完整性都比较完善,这样便于以后维护和使用,所以我们在创建表时这点要注意。为什么要使用完整性。我们举个例子来分析什么是完整性。看下面的问题想想我们在创建数据库时如何在表里组织这些信息和数据,记得要符合要求。这时我们就需要数据的完整性构成结构完善的数据库。如何实现数据的完整性。实现数据的完整性主要从域完整性,实体完整性,引用晚自习,自定义完整性这4点出发来看我们的表是否符合完整性。怎样实现实体完整性。我们逐一分析如何使用完整性组织数据,我们是通过约束方法:唯一约束、主键约束、标识列来实现表的实体完整性的。怎样实现域完整性。通过限制数据类型