zoukankan      html  css  js  c++  java
  • 数据库概述及基本操作

    目录:数据库概述           SQL Sever的简介

    数据库概述

          数据库是相关的多维数据集及其所共享的对象的容器。这些对象包括数据源(表)、表、视图、规则、角色、存储过程、自定义函数等。如果多个多维数据集要共享这些对象,那么这些对象和多维数据集必须在同一个数据库中。简单来说,数据库就是管理数据的地方。 

    数据库的发展阶段:层次型、网状型、关系型。 
    DB(Database)    DBMS(数据库管理系统)    DBS(数据库系统)RDBMS(关系型数据库管理系统)   

    主流的数据库管理系统:SQL Server,Oracle,DB2,sybase,access,foxpro 。

          在对象层次结构中,数据库直接从属于分析服务器。因此,在安装分析服务器后,第一个要创建的对象就是数据库。数据库可以在“数据库”对话框中进行创建

    一、数据库的文件组成

    数据库可由三种文件组成,主文件(.mdf)、次要数据文件(.ndf)、日志文件(.ldf )、在SQL Server 中,数据库必须至少包含一个主文件和一个事务日志文件。

    ㈠主要数据文件

    该文件包含数据库的启动信息,并用于存储数据。每个数据库都有一个主文件。主文件的扩展名为.mdf。

    ㈡次要文件

    这些文件含有不能置于主要数据文件中的所有数据。如果主文件可以包含数据库中的所有数据,那么数据库就不需要次要数据文件。

    有些数据库可能足够大故需要多个次要数据文件,或使用位于不同磁盘驱动器上的辅助文件将数据扩展到多个磁盘。

    ★次要文件可有多个。

    ★次要文件的扩展名为.ndf

    ㈢日志文件

    事务日志文件保存用来恢复数据库的日志信息。每个数据库必须至少有一个事务日志文件(尽管可以有多个)。事务日志文件最小为512kb。

    数据和事务日志信息从不混合在同一文件中,并且每个文件只能由一个数据库使用。

    注意:每个数据库至少有两个文件,一个主文件和一个事务日志文件。

    三、文件组

    SQL文件组就是文件的逻辑集合。它的目的是为了方便数据的管理和分配。文件组可以把指定的文件组合在一起。

    文件组不能独立于数据库文件创建。文件组是在数据库中对文件进行分组的一种管理机制。

    文件组的两大作用:

     ㈠分类编辑功能:有三种类型的文件组

    1.主文件组

    这些文件组包含主数据文件以及任何其它没有放入其它文件组的文件。系统表的所有页都从主文件组分配。

    2.用户定义文件组

    该文件组是用 CREATE DATABASE 或 ALTER DATABASE 语句中的 FILEGROUP 关键字,或在 SQL Server 企业管理器内的"属性"对话框上指定的任何文件组。

    3.默认文件组

    默认文件组包含在创建时没有指定文件组的所有表和索引的页。在每个数据库中,每次只能有一个文件组是默认文件组。如果没有指定默认文件组,则默认文件组是主文件组。

     

     在首次创建数据库,或者以后将更多文件添加到数据库时,可以创建文件组。但是,一旦将文件添加到数据库,就不可能再将这些文件移到其它文件组。

    一个文件不能是多个文件组的成员。表格、索引以及 text、ntext 和 image 数据可以与特定的文件组相关联。这意味着它们的所有页都将从该文件组的文件中分配。

    ㈡限制编辑功能

    最多可以为每个数据库创建 32767个文件组。文件组只能包含数据文件。事务日志文件不能是文件组的一部分。

    三个层次:文件--服务--界面  (DBMS)
    两种登录方式的设置:Windows身份登录;SqlServer身份登录。
    如何设置SQL Server身份验证?
    1.对象资源管理器右击--属性--安全性--SqlServer和Windows身份登录。
    2.对象资源管理器--安全性--登录--sa--右击--属性--常规--设置密码
    3.对象资源管理器--安全性--登录--sa--右击--属性--状态--授予,启用
    4.重启数据库服务。

     

    SQL Sever的简介

    (一).什么是SQL Sever

    SQL :Structured Query Language.

    SQL SERVER是一个以客户/服务器(c/s)模式访问、使用Transact-SQL语言的关系型数据库管理系统(RDBMS),是一种基于网络的大型数据库软件。主要是用SQL语言来管理、修改、和查询数据库。

    SQL Server数据库管理系统的三个层次: 1.文件(.mdf,.ldf)。2.界面。3.服务。

    体验版——不花钱。 
    企业版——花钱。 
    开发版——不花钱。

    SQL语言标准:国际化标准,Transaction-SQL,PL-SQL。

    (二)SQL Server的安装。

    运行安装盘上的AUTORUN.EXE。

    (三)SQL语言的特点

    1.SQL具有自含式与嵌入式两种形式

    (1)交互式SQL:一般DBMS都提供联机交互工具,用户可直接键入SQL命令对数据库进行操作由DBMS来进行解释;

    (2)嵌入式SQL:能将SQL语句嵌入到高级语言(宿主语言),使应用程序充分利用SQL访问数据库的能力、宿主语言的过程处理能力,一般需要预编译,将嵌入的SQL语句转化为宿主语言编译器能处理的语句。

    (3)SQL的语法结构基本一致。

    2.SQL具有语言简单、易学易用的特点。
    3.SQL支持三级模式结构。

    (1)一个SQL数据库的总体逻辑结构是基本表(Table)的集合,对应于概念模式。

    (2)SQL数据库的底层存储结构采用文件,一个或几个表对应一个存储文件,以及索引文件,对应内模式。

    (3)用户所见的数据结构是视图(View),用户可直接操作的表,可为视图或部分基本表。对应外模式。

    无标题

    二、主要组件

    由企业管理器、查询分析器、服务管理器等组成。

    1.服务管理器

    SQL Server服务管理器(Service Manager)是在服务器端实际工作时最有用的实用程序。

    SQL Server服务管理器的主要作用是用来启动数据库服务器的实时服务、暂停和停止正在运行的服务,或在暂停服务后继续服务。

    2.企业管理器

    企业管理器(Enterprise Manager:EM)是SQL Server中一个很重要的插件,它通过GUE(图形用户界面)环境管理SQL Server。

    层次:根目录、服务器组、服务器。

    每一个服务器的名称由以下几项组成:名称、数据库、数据转换服务、管理、复制、安全性、支持服务、Meta Data Service等。

    (1)在企业管理器中,可以连接与管理多个服务器。服务器组是用来把比较相似的SQL SERVER2000服务器组织在一起的一种方式,如市场部中有4个服务器,生产部中有6个服务器,可以将这些服务器都组织在“SQL SERVER组中,也可以创建两个服务器组,一个叫做“市场“,一个叫做”生产”,这样比较容易区分服务器的作用。

    服务器组的建立:右键单击Microsoft SQL Servers或现有服务器组,从弹出的菜单中选择“新建服务器组”。

    服务器组的更名:右键单击要更名的服务器组。

    (2)建立服务器

    首次访问EM时,第一个任务是将服务器注册。如果在服务器上运行,则本地服务器自动在SQL Server组中注册。

    通过EM可以添加新服务器。

    3.查询分析器

    SQL Server 2000的查询分析器(Query Analyzer)可以使用户交互式地输入和执行各种Transact-SQL语句,并且迅速地查看这些语句的执行结果,来完成对数据库中的数据的分析和处理。

    (1)查询分析器的使用

    新建查询文件

    保存查询文件

    aa

    (2)使用帮助

    运行“联机丛书”组件。

     

    二、安装后怎样启用SQL? 

    1.在服务窗口中启动所需的SQL服务

     

    2.打开数据库,用windows账户登录 

    将 服务器名称改为“.”,代表当前服务器;

    身份验证选择Windows身份验证 。

     

    如何用SQLServer身份验证? 
    1.在对象资源管理器,右击.对象,选择属性,在属性对话框的左侧选择“安全性”-右侧选择"SQLServer和Windows身份验证" 
    2.设置sa的登录密码。 
    3.启用sa账户。

    4.重启SQL服务 (在SQL窗口中,或者在控制面板的服务窗口中都可以)

    5.在身份验证中选择 SQL Server 身份验证,点击连接。

     

     

    如何新建数据库?
    ……

    .ldf——日志文件
    .mdf——主数据文件
    .ndf——次数据文件
    一个数据库中,可以有多个日志文件,多个次数据文件,但只能有一个主数据文件。

    如何新建表?
    ……

    行次序无关,列次序无关。

    搜狗截图20150108221408

     

    SQL语句  DDL DML(增、删、改、查) DCL


    insert into 表名(列名,列名,列名,...) values(值,值,值,....)
    insert into 表名 values(值,值,值,值。。)


    一、简单查询
    select * from 表名
    select 列名,列名,...from 表名    ——投影
    等值与不等值查询
    select * from 表名 where 列名=值    --等值查询
    不等值查询
    select * from 表名 where 列名 <> 值
    select * from 表名 where 列名 > 值    >=
    select * from 表名 where 列名 < 值    <=

    多条件查询  逻辑与(and),逻辑或(or)
    select * from 表名 where 条件1 and 条件2 ...
    select * from 表名 where 条件1 or 条件2 ...
    如果在where筛选条件中,既出现and又出现or,则先运算and。除非使用小括号改变优
    先级。

    范围查询。
    select * from Car where Price >=30 and Price<=50
    select * from Car where Price between 30 and 50

    select * from Car where Oil=7.4 or Oil=8.5 or Oil=9.4
    select * from Car where Oil in(7.4,8.5,9.4)

    模糊查询。 一般不用=,而是用like
    %——任意多个任意字符
    _——一个任意字符
    select * from Car where Name like '宝马%'
    宝马%——以宝马开头的
    %宝马——以宝马结尾的
    %宝马%——只要含有宝马这两个字就可以。

    __宝马%——代表第三个字符以宝马开头的。

    去重查询:
    select distinct 列名 from car ——如果列中有重复值,则只查1个出来。

    取前几条数据
    select top 数量 [列名|*] from 表名

    排序
    select * from car order by price asc     ——默认是升序 ascending descending
    select * from car order by price desc
    select * from Car order by Oil asc,Price desc  ——Oil主排序,Price次排序


    delete from car ——删除全部数据
    delete from car where 条件    ——这里的条件是跟select的条件是一样的。


    update 表名 set 列名=值,列名=值..... where 条件
    update Car set Price = Price + price * 0.15 where Name like '宝马%'
    update Car set Name='300C 3.5L 商用车',Oil='9' where Code='c012'

    分组查询:

    链接查询:
    第一步:求笛卡尔积
    select * from Info,nation
    第二步:根据两个表相对应的列,对笛卡尔积进行有效数据的筛选。
    select * from Info,Nation where Info.Nation = Nation.code
    第三步:调整显示要查询的列
    select Info.Code,Info.Name,Info.Sex,Nation.Name,Info.Birthday
    from Info,nation where Info.Nation=Nation.Code

    select * from 表名1
    join 表名2 on 表名1.列 = 表名2.列
    join 表名3 on 表名2.列 = 表名3.列
    ....
    where 查询条件

    select Car.Name,Brand.Brand_Name,Productor.Prod_Name,Car.Price
    from Car
    join brand on Car.Brand = Brand.Brand_Code
    join Productor on Brand.Prod_Code = Productor.Prod_Code
    where Price > 50

    select*from Car 简单查询 select Name,Price from Car  select *from Car where Price >5 条件查询 select *from Car where Price >6 and Oil<9 多条件查询 select *from Car where Price <40and Price >15 范围查询   select*from Car where Name like '锐志%'  模糊查询 select*from Car where Name like '__A%'   select distinct Brand from Car   去重查询 select *from Car order by Price  排序 delete from Car  删除 delete from Car where Price >50 update Car set Price =Price *2where Name like'锐志%'  改变 select *from Car join Brand on Car.Brand =Brand.Brand_Code  链接查询
  • 相关阅读:
    Python for Data Science
    Python for Data Science
    Python for Data Science
    Python for Data Science
    Python for Data Science
    Python for Data Science
    Python for Data Science
    Python for Data Science
    Python for Data Science
    软件工程实践总结
  • 原文地址:https://www.cnblogs.com/wllhq/p/4207244.html
Copyright © 2011-2022 走看看