sql数据库

数据库原理及操作

不羁岁月 提交于 2020-03-29 17:34:06
数据库基础 传统的文件系统管理的缺陷 编写应用程序不方便; 数据冗余不可避免; 应用程序依赖性; 不支持对文件的并发访问; 数据间联系弱 难以按用户视图表示数据; 无阶段性安全控制功能。 数据库管理系统的优点 相互关联的数据的集合; 较少的数据冗余; 程序与数据相互独立; 保证数据的安全、可靠; 最大限度地保证数据的正确性; 数据可以并发使用并能同时保证一致性。 数据库管理系统 数据库是数据的汇集,它以一定的组织形式存在于存储介质上 DBMS是管理数据库的系统软件,它实现数据库系统的各种功能。是数据库系统的核心 DBA: 负责数据库的规划、设计、协调、维护和管理等工作 应用程序指以数据库为基础的应用程序; 关系型数据Key/Value 数据库 关系:关系就是二维表。并满足如下性质: 表中的行、列次序并不在重要 行row:表中的每一行,又称为一条记录(record) 列column:表中的没一列,称为属性,字段 主键(Primary key):用于唯一确定一个记录的字段 域domain:属性的取值范围,如,性别只能是‘男’和‘女’两个值 外键(Foreign key):用于表之间的一对多的关系 唯一键(Uniq key):可以为null, 非关系型数据库:NO SQL(not only SQL) mencached redis mogoDB RDBMS MySQL: MySQL,

sql_基础学习_关系模型_主键,外键,索引

99封情书 提交于 2020-03-29 13:36:11
关系数据库是建立在关系模型上的。而关系模型本质上就是若干个存储数据的二维表,可以把它们看作很多Excel表。 表的每一行称为记录(Record),记录是一个逻辑意义上的数据。 表的每一列称为字段(Column),同一个表的每一行记录都拥有相同的若干字段。 字段定义了数据类型(整型、浮点型、字符串、日期等),以及是否允许为 NULL 。注意 NULL 表示字段数据不存在。一个整型字段如果为 NULL 不表示它的值为 0 ,同样的,一个字符串型字段为 NULL 也不表示它的值为空串 '' 。——NULL是不可以和0以及' '比较的。 关系数据库的表和表之间需要建立“一对多”,“多对一”和“一对一”的关系,这样才能够按照应用程序的逻辑来组织和存储数据。 在关系数据库中,关系是通过主键和外键来维护的。 1,主键: 能够通过某个字段唯一区分出不同的记录,这个字段被称为主键; 在关系数据库中,一张表中的每一行数据被称为一条记录。一条记录就是由多个字段组成的。每一条记录都包含若干定义好的字段。同一个表的所有记录都有相同的字段定义。 关系表约束:任意两条记录不能重复; 主键要求:记录一旦插入到表中,主键最好不要再修改,因为主键是用来唯一定位记录的,修改了主键,会造成一系列的影响; 选取主键基本原则:不使用任何业务相关的字段作为主键; 作为主键最好是完全业务无关的字段,我们一般把这个字段命名为 id

SQL Server 数据库的SELECT 语句基本用法介绍

…衆ロ難τιáo~ 提交于 2020-03-29 10:03:32
一、 基本语法结构 (1) 新建查询 如何查询表的 所有 内容 SELECT * FROM表名 (2) 选中查询列 如何查询指定表中的指定列,查询多列得用英文’,’隔开 SELECT字段1,字段2,字段…… FROM表名 (3) 如何为列指定别名(AS关键字) (4) 语句大小写的区别 select、字段等关键字大小写的区别 条件里的大小写区别 (5) 运算符介绍 加减乘除:+ - * / 比较运算符:><>= <= <> 二、 查询脚本 (1) 查询students表所有信息 select * from student (2) 查询指定列的信息 selectxm,xb,xmjxfrom student (3) 为列指定别名 如何给列起相关别名 Selectxm as姓名,xb as性别, xmjx as姓名简写from student (4) 条件不区分大小写 select * from STUDENS where xmjx='ntp' select * from STUDENS where xmjx='NTP' 效果是一样的 (5) 字段里进行运算 select((1+52.8)*5-3.9343)/0.5-10 运算结果: (6) 这货这么自恋,我就不要看到他 过滤掉 其中‘<>’为不等于 ‘where’赛选语句,<>是删除选定语句,=是挑选选定语句,这里帅爆了加上单引号,注

自定义连接池

痴心易碎 提交于 2020-03-29 07:49:26
由于jdbc操作数据库时会经常创建和销毁连接,造成资源消耗,所以引入连接池。 连接池是存储Connection对象的容器,因为要经常对这个容器操作,我们用LinkedList来存储。 之前我们关闭连接,调用close()方法,销毁Connection对象,引入连接池后,是把这个对象回收到连接池中,不是销毁。 自定义连接池要实现DataSource接口,此接口在javax.sql下,重写getConnection()方法。 自定义连接池: package cn.sasa.pool; import java.io.PrintWriter; import java.sql.Connection; import java.sql.SQLException; import java.sql.SQLFeatureNotSupportedException; import java.util.LinkedList; import java.util.logging.Logger; import javax.sql.DataSource; import cn.sasa.utils.DBUtils; //自定义连接池 //实现DataSource接口,注意是javax.sql下的DataSource public class MyPool implements DataSource{ /

SQL 脚本收录

跟風遠走 提交于 2020-03-29 05:24:04
有些数据库语句可能平时用得不多,所以使用的时候总是难免上网查询,略嫌麻烦,特此收录 具体实现如下,如下语句执行后,会在查询分析器执行消息中显示执行数据库的所有存储过程源码,直接复制保存文本即可。 View Code 1 declare @proc_text varchar(max) 2 DECLARE get_proc_text_cursor CURSOR FOR 3 SELECT 'if object_id(N'''+ [name] +''') is not null drop proc ' + [name] + CHAR(10) + CHAR 4 (13) + ' GO ' + CHAR(10) + CHAR(13) + definition + CHAR(10) + CHAR 5 (13) +' GO' 6 FROM sys.sql_modules 7 inner join sysobjects on sys.sql_modules.object_id = sysobjects.id and type='p' 8 OPEN get_proc_text_cursor 9 FETCH NEXT FROM get_proc_text_cursor 10 INTO @proc_text 11 WHILE @@FETCH_STATUS = 012 BEGIN 13 print

常用sql语句

∥☆過路亽.° 提交于 2020-03-29 05:22:26
SELECT 查询语句和条件语句 >>SELECT 查询字段 FROM 表名 WHERE 条件  >>查询字段:可以使用通配符* 、字段名、字段别名  >>表名: 数据库.表名 ,表名  >>常用条件: = 等于 、<>不等于、in 包含 、 not in 不包含、 like 匹配  >>BETWEEN 在范围 、 not BETWEEN 不在范围 < 、>  >>条件件运算: and 、 or 、 ( ) >>排序,分组,指针查询,计算  >>分组语句:group by 字段  >>排序语句:order by 字段,字段 ASC / DESC  >>指针查询:limit 初始值,结束值 >>计算:  >>COUNT(*) 统计函数  >>MAX(*) 最大值函数  >>MIN (*) 最小值函数  >> AVG(*) 平均值函数  >>SUM(*) 累计值函数 Insert 插入语句 >>insert into 表名 (字段…,…) values(值…,…) >>insert into 表名 values(值…,…) 插入时须考虑清楚字段类型避免插入后出现缺值,乱码现象 Update 更新语句 >>UPDATE 表名 SET 字段 = 值 WHERE 条件 Delete 删除语句 >>DELETE FROM 表名 WHERE 条件 limit 来源: https://www

备份恢复

隐身守侯 提交于 2020-03-28 23:29:22
配置可恢复性 控制文件 SQL> show parameter control_files SQL> select * from v$controlfile; 1,修改路径: $ cd $ORACLE_HOME/dbs $ cp spfileorcl.ora spfileorcl.ora.bak SQL> alter system set control_files='/u01/app/oracle/oradata/orcl/control01.ctl', '/home/oracle/control02.ctl' scope=spfile; SQL> shutdown immediate $ mv /u01/app/oracle/fast_recovery_area/orcl/control02.ctl /home/oracle/control02.ctl SQL> startup SQL> show parameter control_files SQL> select * from v$controlfile; 2,增加镜像: SQL> alter system set control_files='/u01/app/oracle/oradata/orcl/control01.ctl', '/home/oracle/control02.ctl', '/home/oracle

使用instantclient_11_2和PL/SQL Developer工具包连接oracle 11g远程数据库

老子叫甜甜 提交于 2020-03-28 23:22:59
1,先到Oracle网站下载Instant Client : http://www.oracle.com/technology/global/cn/software/tech/oci/instantclient/index.html 根据你的操作系统选择不同的Instant Client版本 下载回是一个压缩文件,解压之后的文件夹叫:D:/instantclient_11_2.放在你喜欢的目录即可.例如:D:/instantclient_11_2 2.在D:/instantclient_11_2目录下新建目录network,在network目录下再新建admin目录,在admin目录下新建文件tnsnames.ora,使用文本编辑器打开写入如下内容: MWDB= (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.58)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = MWDB) ) ) 第一个黄色字块:表示定义远程服务器的在本地主机名 第二个黄色字块:远程数据库实例名 3、添加一个环境变量,名为TNS_ADMIN,值为tnsnames.ora文件所在路径。比如我的本机为:D:/instantclient_11_2/network

sql笔记

安稳与你 提交于 2020-03-28 22:05:29
Sql学习笔记 http://www.runoob.com/sql/sql-syntax.html (1)、 使用单引号环绕文本值(大部分数据库也接受双引号) 若果是数值则不需要引号。 (2)、 数据库样表 +----+--------------+---------------------------+-------+---------+ | id | name | url | alexa | country | +----+--------------+---------------------------+-------+---------+ | 1 | Google | https://www.google.cm/ | 1 | USA | | 2 | 淘宝 | https://www.taobao.com/ | 13 | CN | | 3 | 菜鸟教程 | http://www.runoob.com/ | 4689 | CN | | 4 | 微博 | http://weibo.com/ | 20 | CN | | 5 | Facebook | https://www.facebook.com/ | 3 | USA | +----+--------------+---------------------------+-------+---------+ 1、 sql

SQL Server高可用性(High Availability)——Log Shipping

余生长醉 提交于 2020-03-28 21:51:21
参考文献: http://msdn.microsoft.com/en-us/library/ms187103.aspx 概述 SQL Server 使用日志传送,您可以自动将“主服务器”实例上“主数据库”内的事务日志备份发送到单独“辅助服务器”实例上的一个或多个“辅助数据库”。 事务日志备份分别应用于每个辅助数据库。 可选的第三个服务器实例(称为“监视服务器”)记录备份和还原操作的历史记录及状态,还可以在无法按计划执行这些操作时引发警报。 优点 为单个主数据库以及一个或多个辅助数据库(每个数据库都位于单独的 SQL Server 实例上)提供灾难恢复解决方案。 支持对辅助数据库的受限的只读访问权限(在还原作业之间的间隔期间)。 允许用户将延迟时间定义为:从主服务器备份主数据库日志到辅助服务器必须还原(应用)日志备份之间的时间。 例如,如果主数据库上的数据被意外更改,则较长的延迟会很有用。 如果很快发现意外更改,则通过延迟,您可以在辅助数据库反映此更改之前从其中检索仍未更改的数据。 术语和定义 主服务器 (primary server):位于生产服务器上的 SQL Server 实例。 主数据库 (primary database):希望备份到其他服务器的主服务器上的数据库。 通过 SQL Server Management Studio