SQLSERVER数据库、表的创建及SQL语句命令

SQLSERVER数据库,安装、备份、还原等问题:
一、存在已安装了sql server 2000,或2005等数据库,再次安装2008,会出现的问题
1、卸载原来的sql server 2000、2005,然后再安装sql server 2008,否则经常sql server服务启动不了
2、sql server服务启动失败,解决方法:
进入sql server configure manager,点开 Sql server 网络配置(非sql native client 配置),点sqlzhh(我sqlserver的名字)协议,将VIA协议禁用。再启动Sql Server服务,成功
如图:
SQLSERVER数据库、表的创建及SQL语句命令_第1张图片
SQLSERVER数据库、表的创建及SQL语句命令_第2张图片
二、在第一次安装SQLSERVER2008结束后,查看安装过程明细,描述中有较多项插件或程度,显示安装失败。
解决方法:
1、重新启动安装程度setup.exe,选择进行修复安装,至完成即可。

三、先创建数据库XXX,再进行还原数据库时,选择好备份文件XXX.bak,确定后进行还原,会报如下图的错误。
SQLSERVER数据库、表的创建及SQL语句命令_第3张图片
解决方法:
选择好备份数据库文件后,再进入“选项”中,勾选“覆盖现在数据库”即可。
SQLSERVER数据库、表的创建及SQL语句命令_第4张图片
四、查看数据库版本的命令:select @@version
在数据库中,点击“新建查询”,然后输入命令,执行结果如下
SQLSERVER数据库、表的创建及SQL语句命令_第5张图片
五、数据库定义及操作命令:
按照数据结构来组织、存储和管理数据的仓库。由表、关系以及操作对象组成,把数据存放在数据表中。
1、修改数据库密码的命令:
EXEC sp_password NULL, ‘你的新密码’, ‘sa’
sp_password Null,‘sa’,‘sa’
2、操作SQL2008数据库的命令
备份SQL数据库:
backup database [3D-DATA]/原数据库/ to disk=‘D:\Program Files\Microsoft SQL       Server\MSSQL10.MSSQLSERVER\MSSQL\backup\3D-DATA_backup_20131017.bak/数据库备份文件/’
with name = ‘3D-DATA_backup_20131017’/数据库备份文件/
查看备份数据库的逻辑文件:
restore filelistonly
from disk=
'd:\Program Files\Microsoft SQL Server
MSSQL10.MSSQLSERVER\MSSQL\backup\3D-DATA_backup_20131017.bak ’
强制还原SQL数据库:
[其中,Test-3d是已存在的数据库,3D-FEP_data和3D-FEP_log为备份数据库的两个逻辑文件,]
restore database [Test-3d]
from disk = ‘d:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Backup\3D-DATA_backup_20131017.bak’
with
move ‘3D-FEP_data’ to ‘D:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\Test-3d.mdf’,
move ‘3D-FEP_log’ to ‘D:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\Test-3d_log.ldf’,
stats = 10/* 表示每完成10%显示一条记录*/ ,replace/表示强制,放置在with后,加英文逗号也可/

以下为另一种方式:
-备份数据DB 到.bak文件。然后利用此bak文件恢复一个新的数据库DBTest。
USE master;
backup database DB
to disk = ‘g:\DBBack0930.bak’ ;
restore filelistonly
form disk = ‘g:\DBBack0930.bak’ ;

restore database DBTest(此数据库,已创建)
FROM DISK = ‘g:\DBBack0930.bak’
WITH MOVE ‘DBTest’ TO ‘E:\Program Files\Microsoft SQL Server2005\Data\DBTest.mdf’,
MOVE ‘DBTest_log’ TO ‘E:\Program Files\Microsoft SQL Server2005\Data\DBTest_log.ldf’
GO
六、
SQL Server数据库文件恢复技术 yzhshi([email protected]) SQL Server数据库备份有两种方式:
1、使用命令:BACKUP DATABASE,将数据库文件备份出去;
2、直接拷贝数据库文件mdf和日志文件ldf的方式。
下面将主要讨论一下后者的备份与恢复。本文假定您能熟练使用SQL Server Enterprise Manager (SQL Server企业管理器)和SQL Server Quwey Analyser(SQL Server查询分析器)
  正常的备份、恢复方式正常方式下,我们要备份一个数据库,首先要先将该数据库从运行的数据服务器中断开,或者停掉整个数据库服务器,然后复制文件。
  卸下数据库的命令:Sp_detach_db
  数据库名连接数据库的命令:Sp_attach_db或者sp_attach_single_file_db s_attach_db [@dbname =] ′dbname′, [@filename1 =] ′filename_n′ [,…16] sp_attach_single_file_db [@dbname =] ′dbname′, [@physname =] ′physical_name′ 使用此方法可以正确恢复SQL Sever7.0和SQL Server 2000的数据库文件,要点是备份的时候一定要将 mdf和ldf两个文件都备份下来,mdf文件是数据库数据文件,ldf是数据库日志文件。

七、SQL命令创建数据库及数据表
use master
if db_id (‘Test-a01’)is not null–判断数据库,是否已存在
drop database [Test-a01]–删除数据库
go

create database [Test-a01] on primary
(
name = ‘Test-a01_data’, --数据文件的逻辑名称
filename = ‘D:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\Test-a01_data.ndf’ , --数据文件的路径和文件名
size = 3mb ,-- 数据文件的初始容量
maxsize = 10mB --数据文件的最大容量
)
log on
(
name = ‘Test-a01_log’, --事务日志文件的逻辑名称
filename = ‘D:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\Test-a01_log.ndf’ , --事务日志文件的路径和文件名
size = 3mb , --事务日志文件的初始容量
maxsize = 10mB --事务日志文件的最大容量
)
Go
use [xxxxx] /指定创建表的数据库/
go
create table student
(
stuID char(5) primary key,–主键
stuname char(20)not null,
stusex char(2) check(stusex in(‘男’,‘女’)) default(‘女’),–设定范围及默认值
stuage char(6),
stubirth date check(stubirth between ‘1985-01-01’ and ‘1995-12-31’),–设置日期范围
stuaddress varchar(100),
stunum char(12),
stuemail char(40)check(stuemail like ‘%@%’)
)
go
use [xxxxx]
go
create table teacher
(
TeacherID char(5),
Teaname char(20)not null,
Teasex char(2) check(Teasex in(‘男’,‘女’)) default(‘女’),
Teaage char(6),
Entrydate date check(Entrydate between ‘1950-01-01’ and ‘2099-12-31’),
Teaphone varchar(100),
Teanum char(12),
Teaaddress char(40)
)

1、删除新表:
drop table table_name;

2、创建视图:
create view viewname as select statement;
例1:
create view view_name01(stuid,stuname,stusex,stuage)
as
select stuid,stuname,stusex,stuage from student where stuage>=25;
其中,红色部分的字段列,必须相同。
如下例2,则不用考虑(比较常用).
create view view_name02
as
select stuid,stuname,stusex,stuage from student where stuage>=25;

查看视图:select * from view_name;

3、删除视图:
drop view viewname;

4、创建索引:
create [unique] index idx_name on table_name(字段1…);
create index idx_name on table_name (COLUMN_NAME);

5、删除索引:
drop index idxname;

八、常见创建数据表的限制,有以下几种:
NOT NULL
UNIQUE
CHECK
主键 (Primary Key)
外来键 (Foreign Key)

1、NOT NULL
表示某字段的值,不允许出现空值。
例如:
CREATE TABLE Customer
(
SID int NOT NULL,
Last_Name varchar (30) NOT NULL,
First_Name varchar(30)
);

2、unique
表示某字段的值,不允许重复
例如:
CREATE TABLE Customer
(
SID int Unique,
Last_Name varchar (30) NOT NULL,
First_Name varchar(30)
);

3、check
检查某字段的值,必须符合某些条件
CREATE TABLE Customer
(
SID int check( sid>0 ),
Last_Name varchar (30) NOT NULL,
First_Name varchar(30)
);

4、主 键
主键 (Primary Key) 中的每一笔资料都是表格中的唯一值。
添加主键SQL命令(注意:选择作主键的列,必须有数值):
Alter table teacher add primary key(TeacherID);
Alter table teacher add primary key(TeacherID);

创建数据表时,加主键的不同方式:
MySQL:
CREATE TABLE Customer
(SID integer,
Last_Name varchar(30),
First_Name varchar(30),
PRIMARY KEY (SID));

Oracle:
CREATE TABLE Customer
(SID integer PRIMARY KEY,
Last_Name varchar(30),
First_Name varchar(30));

SQL Server:
CREATE TABLE Customer
(SID integer PRIMARY KEY,
Last_Name varchar(30),
First_Name varchar(30));

删除主键的SQL语句:
语法:alter table 表名 drop constraint 主键约束名(非字段名称)
如:
alter table Stu_PkFk_S drop constraint PK_S;

5、外 键
外来键是一个(或数个)指向另外一个数据表主键的字段。外键作用是:确定资料限制输入的参考完整性(referential integrity)。换言之,只有被准许的字段值才会被存入数据库内。

Store_Information 表格SQLSERVER数据库、表的创建及SQL语句命令_第6张图片
Geography 表格
SQLSERVER数据库、表的创建及SQL语句命令_第7张图片
创建外键的命令操作:如下,
alter table [Store_Information]
add foreign key (Reg_ID) references Geography;

alter table 需要建立外键的表 add constraint 外键名字 foreign key references 外键表(外键字段) ;

以下列出几个在建置 ORDERS 表格时指定外键的方式:
外键Reg_ID,指向主键regionID。
MySQL:
CREATE TABLE ORDERS
(Order_ID integer,
Order_Date date,
Customer_SID integer,
Amount double,
Primary Key (Order_ID),
Foreign Key (Customer_SID) references CUSTOMER(SID));

Oracle:
CREATE TABLE ORDERS
(Order_ID integer primary key,
Order_Date date,
Customer_SID integer references CUSTOMER(SID),
Amount double);

SQL Server:
CREATE TABLE ORDERS
(Order_ID integer primary key,
Order_Date datetime,
Customer_SID integer references CUSTOMER(SID),
Amount double);

以下的例子则是改变表格架构来指定外键。这里假设 ORDERS 表格已经被建立,而外键尚未被指定:

MySQL:
ALTER TABLE ORDERS
ADD FOREIGN KEY (customer_sid) REFERENCES CUSTOMER(sid);

Oracle:
ALTER TABLE ORDERS
ADD (CONSTRAINT fk_orders1) FOREIGN KEY (customer_sid) REFERENCES CUSTOMER(sid);

SQL Server:
ALTER TABLE ORDERS
ADD FOREIGN KEY (customer_sid) REFERENCES CUSTOMER(sid);

删除外键的SQL命令:
alter table 表名 drop constraint 外键约束名(非字段名);
如:
alter table Stu_PkFk_Sc drop constraint FK_s;

6、Alter Table
改变表结构的方式:
1、加一个字段
Alter table table_name add 字段1 int,字段2 char(10),…; 加多个字段
Alter table table_name add 字段1 int、或字段2 char(10)、…;加一个字段

2、删去一个字段
Alter table table_name drop column字段1;–(SQLserver数据库,字段前要加“column”)

3、改变字段名称 (此命令SQLserver数据库,不可用)
ALTER table table_name change字段1 新字段1 char(50);

4、改变字段的类型(此命令SQLserver数据库,不可用)
ALTER table table_name modify 字段1 char(20);

SQL SERVER 2008不能修改表的解决方法(增加字段、修改字段名)
新装的SQL SERVER 2008,打开原来SQL SERVER 2008中建立的表,现在想增加一些字段,在保存时提示错误,无法保存。
原以为是SQL SERVER 2008与2005的不兼容,后来发现在SQL SERVER 2008中新建的表也存在无法修改表结构,也就是无法修改字段名和增加字段名。
提示是:不允许保存更改。您所做的更改要求删除并重新创建以下表。您对无法重新创建的标进行了更改或者启用了“阻止保存要求重新创建表的更改”选项。
截图如下:
SQLSERVER数据库、表的创建及SQL语句命令_第8张图片
解决办法:
启动MSSQL SERVER 2008,选择菜单 工具-〉选项-〉左侧有个 设计器-〉表设计器和数据库设计器。然后去掉“ 阻止保存要求重新创建表的更改”前面的勾。重新启动MSSQL SERVER 2008即可。如下图所示:
SQLSERVER数据库、表的创建及SQL语句命令_第9张图片

你可能感兴趣的:(服务器,基础,网络运维)