作为数据库开发人员,你负责创建和管理数据库和表。当创建表的时候,维护数据的完整性对你是很重要的。为确保表中的数据是准确的,一致的和可靠的,SQL Server提供了各种你可以应用到表上以增强数据完整性的检查。 SQL Server包含各种系统数据库。本章介绍不
作为数据库开发人员,你负责创建和管理数据库和表。当创建表的时候,维护数据的完整性对你是很重要的。为确保表中的数据是准确的,一致的和可靠的,SQL Server提供了各种你可以应用到表上以增强数据完整性的检查。 SQL Server包含各种系统数据库。本章介绍不同类型的系统数据库并且解释如何管理用户定义的数据库和管理用户自定义表。
? 管理数据库 ? 管理表 ? SQL Server 2008中的数据类型
? 创建数据库 ? 修改数据库 ? 删除数据库 ? 创建表 ? 修改表 ? 删除表
|
|
SQL Server 2008有4个系统数据库,它们分别为Master、Model、Msdb、Tempdb。
(1)Master数据库是SQL Server系统最重要的数据库,它记录了SQL Server系统的所有系统信息。这些系统信息包括所有的登录信息、系统设置信息、SQL Server的初始化信息和其他系统数据库及用户数据库的相关信息。因此,如果master 数据库不可用,则 SQL Server 无法启动。在 SQL Server 2008 中,系统对象不再存储在 master 数据库中,而是存储在Resource 数据库中。
(2)model 数据库为在 SQL Server 实例上创建的所有数据库的提供模板。因为每次启动 SQLServer 时都会创建 tempdb,所以 model 数据库必须始终存在于 SQL Server 系统中。当发出 CREATE DATABASE(创建数据库)语句时,将通过复制 model 数据库中的内容来创建数据库的第一部分,然后用空页填充新数据库的剩余部分。 如果修改 model 数据库,之后创建的所有数据库都将继承这些修改。例如,可以设置权限或数据库选项或者添加对象,例如,表、函数或存储过程。
(3)Msdb数据库是代理服务数据库,为其报警、任务调度和记录操作员的操作提供存储空间。
(4)Tempdb是一个临时数据库,它为所有的临时表、临时存储过程及其他临时操作提供存储空间。Tempdb数据库由整个系统的所有数据库使用,不管用户使用哪个数据库,他们所建立的所有临时表和存储过程都存储在tempdb上。SQL Server每次启动时,tempdb数据库被重新建立。当用户与SQL Server断开连接时,其临时表和存储过程自动被删除。
|
数据库的存储结构分为逻辑存储结构和物理存储结构两种。
1、数据库的逻辑存储结构指的是数据库是由哪些性质的信息所组成,SQL Server的数据库不仅仅只是数据的存储,所有与数据处理操作相关的信息都存储在数据库中。实际上,SQL Server的数据库是由诸如表、视图、索引等各种不同的数据库对象所组成,它们分别用来存储特定信息并支持特定功能,构成数据库的逻辑存储结构。
2、数据库的物理存储结构则是讨论数据库文件是如何在磁盘上存储的。数据库在磁盘上是以文件为单位存储的,由数据库文件和事务日志文件组成,一个数据库至少应该包含一个数据文件和一个事务日志文件,可以有多个第二数据文件。实际上这句话可以这样理解:“数据库中有且仅有一个主数据文件,至少有一个事物日志文件(也就是说可以有多个但必须有),可以有多个第二数据文件(可以没有)”那么什么是“主数据库文件”“第二数据文件”“事物日志文件呢”
|
数据文件又可以分成主数据文件和次数据文件两种形式。
1. 主数据库文件(Primary Database File)
主数据文件是数据库的起点,每一个数据库都有且仅有一个主数据文件。主数据文件名称的默认后缀是mdf。次数据文件是可选的,它们可以存储不在主数据文件中的全部数据和对象。
2. 第二数据库文件(Secondary Database File)
第二数据库文件又称之为次数据库文件,数据库既可能没有次数据文件,也可能有多个次数据文件。次数据文件名称的默认后缀是ndf。
3. 事务日志文件
事务就是一个单元的工作,该单元的工作要么全部完成,要么全部不完成。Microsoft SQL Server系统具有事务功能,可以保证数据库操作的一致性和完整性。
Microsoft SQLServer系统使用数据库的事务日志来实现事务的功能。事务日志记录了对数据库的所有修改操作。日志记录了每一个事务的开始、对数据的改变和取消修改等操作的足够信息。随着对数据库的操作,日志是连续增加的。对于一些大型操作,如创建索引,日志只是记录该操作的事实,而不是记录所发生的数据。事务日志还记录了数据页的分配和释放,以及每一个事务的提交和滚回。这样就允许SQL Server系统要么恢复事务,要么取消事务。事务日志以操作系统文件的形式存在,在数据库中被称为日志文件。
每一个数据库都至少有一个日志文件。日志文件名称的后缀默认是ldf
4. 文件组
为了便于分配和管理,SQL Server允许将多个文件归纳为同一组,并赋予这个组一个名称,这就是文件组。
文件组就是文件的逻辑集合。为了方便数据的管理和分配,文件组可以把一些指定的文件组合在一起。例如,在某个数据库中,3个文件(data1.ndf、data2.ndf和data3.ndf)分别创建在3个不同的磁盘驱动器中,然后为它们指定一个文件组fgroup1。以后,所创建的表可以明确指定放在文件组fgroup1上。对该表中数据的查询将分布在这3个磁盘上,因此,可以通过执行并行访问而提高查询性能。
在创建表时,不能指定将表放在某个文件上,只能指定将表放在某个文件组上。因此,如果希望将某个表放在特定的文件上,那么必须通过创建文件组来实现。
|
定义数据库就是从无到有地创建数据库和设置数据库选项。
这个部分从三个方面讲述定义数据库,即创建数据库、设置数据库选项和查看数据库信息。
创建数据库就是确定数据库名称、文件名称、数据文件大小、数据库的字符集、是否自动增长以及如何自动增长等信息的过程。
在一个Microsoft SQL Server实例中,最多可以创建32767个数据库。数据库的名称必须满足系统的标识符规则。在命名数据库时,一定要使数据库名称简短和具有一定的含义。
数据库创建之后,根据需要可以使用ALTER DATABASE语句对数据库进行修改。修改操作可以包括更改数据库名称、扩大数据库、收缩数据库、修改数据库文件、管理数据库文件组、修改字符排列规则等。
? 修改数据库名字
【例2-4】将LCBCom数据库的名称更改为LGCom
? 扩大数据库
在Microsoft SQLServer系统中,如果数据库的数据量不断膨胀,可以根据需要扩大数据库的尺寸。
有3种扩大数据库的方式。第一种方式是设置数据库为自动增长方式,可以在创建数据库时设置。第二种方式是直接修改数据库的数据文件或日志文件的大小,第三种方式是在数据库中增加新的次要数据文件或日志文件。
【例2-5】通过扩大文件来扩大LGCom数据库
? 修改数据库文件
用户可以根据需要使用ALTER DATABASE语句修改数据库中指定的文件。这些修改操作包括增加数据文件、在指定的文件组中增加指定文件、增加日志文件、删除指定的文件等。
增加数据文件、修改指定的文件等操作已经讲过了,下面通过一些示例讲述有关数据库文件的其他操作。
【例2-6】在指定的文件组中增加文件
? 管理文件组
文件组是数据库数据文件的逻辑组合,它可以对数据文件进行管理和分配,以便提高数据库文件的并发使用效率。
Transact-SQL语言没有提供独立的管理文件组的命令,只能通过ALTER DATABASE语句提供了管理文件组的命令。
|
设计数据库实际上就是设计数据库中的表。在设计数据库中的表时,目标是使用尽可能少的表数量、每个表中包含尽可能少的列数量来达到设计要求。合理的表结构,可以大大提高整个数据库数据查询效率。
? 创建表和修改表
本节主要围绕创建和修改表展开讨论。
内容包括创建表、增加和删除列、修改列的属性、设置标识符列、查看表的信息、删除表等。
在Microsoft SQLServer 2008系统中,既可以使用CREATE TABLE语句创建表,也可以使用可视化的SQL Server Management Studio图形工具。下面主要研究如何使用CREATE TABLE语句创建表。CREATE TABLE语句是一种经常使用的创建表的方法,也是一种最灵活、最强大的创建表的方式。
【例2-7】使用CREATE TABLE语句创建students表
【例2-8】使用CREATE TABLE语句创建orders表
表创建之后,用户可以根据需要使用ALTER TABLE语句修改表的结构。在表中增加新列、删除已有的列是常见的修改表结构的操作。
当用户向表中添加一个新列时,Microsoft SQLServer为表中该列在已有数据的每一行中的相应位置插入一个数据值。
因此,当向表中增加一个新列时,最好为该新列定义一个默认约束,使该列有一个默认值。如果该新列没有默认约束,并且表中已经有了其他数据,那么必须指定该新列允许空值,否则系统将产生一个错误信息。
【例2-10】使用ALTER TABLE语句增加表中的列
使用ALTER TABLE语句除了可以增加新列和删除列之外,还可以对列的属性进行更改。本节主要讲述如何更改列的数据类型。使用ALTER TABLE语句更改列的数据类型的基本语法形式如下所示:
ALTER TABLEtable_name ALTER COLUMN column_name new_type_name
在上面的语法中,table_name参数指定将要更改的表名称,ALTER COLUMN子句用于指定将要更改的列名称和新的数据类型名称,column_name参数指定列名称,new_type_name参数指定新的数据类型名称
【例2-12】使用ALTER TABLE语句更改列的数据类型
标识符列表示唯一地标识表中的每一行数据的符号。
在Microsoft SQL Server 2008系统中,可以创建两种类型的标识符列,即IDENTITY列和ROWGUIDCOL列。
下面,详细研究这两种标识符列的创建和修改方式。
使用IDENTITY属性的列是IDENTITY列,每一个表中最多只能有一个IDENTITY列。
定义IDENTITY属性时需要指定两个值:种子值和增量值。这样,表中第一行的IDENTITY列的值是种子值,其他行的IDENTITY列的值是在前一行值的基础上增加一个增量值得到的。
【例2-13】使用IDENTITY属性
IDENTITY属性的作用范围是表。也就是说,在一个指定的表中,IDENTITY属性列的值不会有重复值。但是,不同的表之间是有可能存在IDENTITY属性列的值相同的现象。在执行合并多个表的复制操作中,这种现象是必须避免的。Microsoft SQL Server系统提供的用于标识符列的ROWGUIDCOL属性可以解决这种问题。ROWGUIDCOL列是全局唯一标识符列。每一个表中最多可以创建一个ROWGUIDCOL列。
【例2-14】使用ROWGUIDCOL列
? 删除表
删除表就是将表中数据和表的结构从数据库中永久性地去除。表被删除之后,就不能再恢复该表的定义。
删除表可以使用DROPTABLE语句来完成,该语句的语法形式如下:
DROPTABLE table_name
不能使用DROPTABLE语句删除正在被其他表中的外键约束参考的表。当需要删除这种有外键约束参考的表时,必须首先删除外键约束,然后才能删除该表。表的所有者可以删除自己的表。当删除表时,绑定在该表上的规则和默认将失掉绑定。属于该表的约束或触发器则自动地被删除。如果重新创建表时,必须重新绑定相应的规则和默认、重新创建触发器和增加必要的约束。
|
1、拥有什么权限的用户能够使用 DROPDATABASE 命令删除数据库
2、用什么样的命令能够修改数据库的名字、大小。
3、用命令创建一个数据表
4、用命令修改一个数据表
5、怎样删除一个表
|
1、SQL SERVER中自带的数据库
Master数据库记录所有服务器特定的配置信息,包括认证用户、数据库、系统配置设置和远程服务器
Tempdb 数据库保存所有临时表和存储过程的临时数据库。
Model数据库是作为新数据库的模版或原型
Msdb数据库支持SQL Server代理,SQLServer代理包括计划SQL Server的周期性活动的特征
2、Create Database 语句被用于创建数据库,他也包含确定数据库的名称、数据库的大小和在数据中用于存储数据的文件。
3、Drop Database语句被用于删除数据库。
4、Create Table语句被用于创建表。
5、Alter Tabel 语句用于修改表
6、Drop Table 语句用于删除表

MySQL은 GPL 라이센스를 사용합니다. 1) GPL 라이센스는 MySQL의 무료 사용, 수정 및 분포를 허용하지만 수정 된 분포는 GPL을 준수해야합니다. 2) 상업용 라이센스는 공개 수정을 피할 수 있으며 기밀이 필요한 상업용 응용 프로그램에 적합합니다.

MyISAM 대신 InnoDB를 선택할 때의 상황에는 다음이 포함됩니다. 1) 거래 지원, 2) 높은 동시성 환경, 3) 높은 데이터 일관성; 반대로, MyISAM을 선택할 때의 상황에는 다음이 포함됩니다. 1) 주로 읽기 작업, 2) 거래 지원이 필요하지 않습니다. InnoDB는 전자 상거래 플랫폼과 같은 높은 데이터 일관성 및 트랜잭션 처리가 필요한 응용 프로그램에 적합하지만 MyISAM은 블로그 시스템과 같은 읽기 집약적 및 트랜잭션이없는 애플리케이션에 적합합니다.

MySQL에서 외국 키의 기능은 테이블 간의 관계를 설정하고 데이터의 일관성과 무결성을 보장하는 것입니다. 외국 키는 참조 무결성 검사 및 계단식 작업을 통해 데이터의 효과를 유지합니다. 성능 최적화에주의를 기울이고 사용할 때 일반적인 오류를 피하십시오.

MySQL에는 B-Tree Index, Hash Index, Full-Text Index 및 공간 인덱스의 네 가지 주요 인덱스 유형이 있습니다. 1.B- 트리 색인은 범위 쿼리, 정렬 및 그룹화에 적합하며 직원 테이블의 이름 열에서 생성에 적합합니다. 2. HASH 인덱스는 동등한 쿼리에 적합하며 메모리 저장 엔진의 HASH_Table 테이블의 ID 열에서 생성에 적합합니다. 3. 전체 텍스트 색인은 기사 테이블의 내용 열에서 생성에 적합한 텍스트 검색에 사용됩니다. 4. 공간 지수는 지리 공간 쿼리에 사용되며 위치 테이블의 Geom 열에서 생성에 적합합니다.

toreateanindexinmysql, usethecreateindexstatement.1) forasinglecolumn, "createindexidx_lastnameonemployees (lastname);"2) foracompositeIndex를 사용하고 "createDexIdx_nameonemployees (forstName, FirstName);"3)을 사용하십시오

MySQL과 Sqlite의 주요 차이점은 설계 개념 및 사용 시나리오입니다. 1. MySQL은 대규모 응용 프로그램 및 엔터프라이즈 수준의 솔루션에 적합하며 고성능 및 동시성을 지원합니다. 2. SQLITE는 모바일 애플리케이션 및 데스크탑 소프트웨어에 적합하며 가볍고 내부질이 쉽습니다.

MySQL의 인덱스는 데이터 검색 속도를 높이는 데 사용되는 데이터베이스 테이블에서 하나 이상의 열의 주문 구조입니다. 1) 인덱스는 스캔 한 데이터의 양을 줄임으로써 쿼리 속도를 향상시킵니다. 2) B-Tree Index는 균형 잡힌 트리 구조를 사용하여 범위 쿼리 및 정렬에 적합합니다. 3) CreateIndex 문을 사용하여 CreateIndexIdx_customer_idonorders (customer_id)와 같은 인덱스를 작성하십시오. 4) Composite Indexes는 CreateIndexIdx_customer_orderOders (Customer_id, Order_Date)와 같은 다중 열 쿼리를 최적화 할 수 있습니다. 5) 설명을 사용하여 쿼리 계획을 분석하고 피하십시오

MySQL에서 트랜잭션을 사용하면 데이터 일관성이 보장됩니다. 1) STARTTRANSACTION을 통해 트랜잭션을 시작한 다음 SQL 작업을 실행하고 커밋 또는 롤백으로 제출하십시오. 2) SavePoint를 사용하여 부분 롤백을 허용하는 저장 지점을 설정하십시오. 3) 성능 최적화 제안에는 트랜잭션 시간 단축, 대규모 쿼리 방지 및 격리 수준을 합리적으로 사용하는 것이 포함됩니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기
