文档库 最新最全的文档下载
当前位置:文档库 › SQLSERVER数据库、表的创建及SQL语句命令

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

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

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服务,成功

如图:

二、在第一次安装SQLSERVER2008结束后,查看安装过程明细,描述中有较多项插件或程度,显示安装失败。

解决方法:

1、重新启动安装程度setup.exe,选择进行修复安装,至完成即可。

三、先创建数据库XXX,再进行还原数据库时,选择好备份文件XXX.bak,确定后进行还原,会报如下图的错误。

解决方法:

选择好备份数据库文件后,再进入“选项”中,勾选“覆盖现在数据库”即可。

四、查看数据库版本的命令:select @@version

在数据库中,点击“新建查询”,然后输入命令,执行结果如下

五、数据库定义及操作命令:

按照数据结构来组织、存储和管理数据的仓库。由表、关系以及操作对象组成,把数据存放在数据表中。

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(yzhshi@https://www.wendangku.net/doc/e315716123.html,) 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 [@dbn ame =] ′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)。换言之,只有被准许的字段值才会被存入数据库内。

创建外键的命令操作:如下,

alter table[Store_Information]

add foreign key (Reg_ID)references[Geography](regionID);

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中新建的表也存在无法修改表结构,也就是无法修改字段名和增加字段名。

提示是:不允许保存更改。您所做的更改要求删除并重新创建以下表。您对无法重新创建的标进行了更改或者启用了“阻止保存要求重新创建表的更改”选项。

截图如下:

解决办法:

启动MSSQL SERVER 2008,选择菜单工具-〉选项-〉左侧有个设计器-〉表设计器和数据库设计器。然后去掉“ 阻止保存要求重新创建表的更改”前面的勾。重新启动MSSQL SERVER 2008即可。如下图所示:

九、SQL数据库字段类型详解

SQL语句:

一、DML—数据操纵语言SQL命令,分为:select查询、insert into插入、delete from删除、update set修改.

Select 查询命令

最复杂、存在非常多的使用方法

1、查询表中所有的数据

Select * from table_name;

2、普通条件(where、and、or)查询

Select *或者字段1,字段2,… from table_name where 字段1=值1或字段2=值2…;

如查询一个范围的薪资

SELECT store_name FROM Store_Information WHERE salary > 1000 OR (salary < 500 AND salary > 275);

3、模糊条件(like)查询

Select *或者字段1,字段2,… from table_name where字段1 like %A%;包含A的字符

Select *或者字段1,字段2,… from table_name where字段1 like A%;以A起头的字符

Select *或者字段1,字段2,… from table_name where字段1 like %A;以A结尾的字符

Select *或者字段1,字段2,… from table_name where字段1 like '_汉字_';一个下划线,表示一个字符,共计四个字符

Select *或者字段1,字段2,… from table_name where字段1 like '%汉字%'; %表示无限个字符

4、空值条件(null)查询

Select *或者字段1,字段2,… from table_name where 字段1 is not null;

5、范围查询一(in)

Select *或者字段1,字段2,…from table_name where 字段1 in (1,2,3,…)或者('质量','数量',…)…;-- 字段值可为数值、或字符类型

6、范围查询二(between …and…)

Select *或者字段1,字段2,… from table_name where 字段1 between 10 and 100;

Select *或者字段1,字段2,…from table_name where 字段1 between '1990-01-01' and '2012-12-31';

7、排序查询(order by…asc/desc 一般都是组合使用)

SELECT * FROM table_name order by 字段1 asc;

SELECT * FROM table_name order by 字段2 desc;

SELECT * FROM table_name order by 字段1, 字段2,… desc或asc;

SELECT * FROM table_name where 字段1=数值1 order by 字段1 desc, 字段2 asc,…;

8、Count 统计记录数查询

SELECT Count(字段1,或字段2,…)[别名a…] FROM table_name; 【一般不与其它字段一起组合,否则会报错,可在后面加别名】

【加条件“is not null”,可过滤掉为空值数据】

SELECT Count(字段1,或字段2,…)[别名a…] FROM table_name where(字段1,或字段2,…) is not null; SELECT Count(字段1,或字段2,…),字段A FROM table_name group by 字段A;

SELECT Count(字段1,或字段2,…),字段A FROM table_name where 字段B=数值 group by 字段A;

【与其它字段一起查询显示,要与group by组合使用,且要显示的"字段A",一定要与group by匹配的"字段A"相同,与字段B不能相同,所以只能是一个集合函数,或者与group by配置的字段名相同】

9、sum 求和

SELECT sum(字段1,或字段2,…)FROM table_name;

sum匹配的字段,一定为数值类型。

SELECT sum(字段1,或字段2,…),字段A FROM table_name group by 字段A;

SELECT sum(字段1,或字段2,…),字段A FROM table_name where 字段B=数值 group by 字段A;

【与其它字段一起查询显示,要与group by组合使用,且要显示的"字段A",一定要与group by匹配的"字段A"相同,与字段B不能相同,所以只能是一个集合函数,或者与group by配置的字段名相同】

10、Max 求和

SELECT Max(字段1,或字段2,…)FROM table_name;

sum匹配的字段,一定为数值类型。

SELECT Max(字段1,或字段2,…),字段A FROM table_name group by 字段A;

SELECT Max(字段1,或字段2,…),字段A FROM table_name where 字段B=数值 group by 字段A;

【与其它字段一起查询显示,要与group by组合使用,且要显示的"字段A",一定要与group by匹配的"字段A"相同,与字段B不能相同,所以只能是一个集合函数,或者与group by配置的字段名相同】

11、Min 求和

SELECT Min(字段1,或字段2,…)FROM table_name;

sum匹配的字段,一定为数值类型。

SELECT Min(字段1,或字段2,…),字段A FROM table_name group by 字段A;

SELECT Min(字段1,或字段2,…),字段A FROM table_name where 字段B=数值 group by 字段A;

【与其它字段一起查询显示,要与group by组合使用,且要显示的"字段A",一定要与group by匹配的"字段A"相同,与字段B不能相同,所以只能是一个集合函数,或者与group by配置的字段名相同】

12、AVG 求平均值

SELECT avg(字段1,或字段2,…)FROM table_name;

sum匹配的字段,一定为数值类型。

SELECT avg(字段1,或字段2,…),字段A FROM table_name group by 字段A;

SELECT avg(字段1,或字段2,…),字段A FROM table_name where 字段B=数值 group by 字段A;

【与其它字段一起查询显示,要与group by组合使用,且要显示的"字段A",一定要与group by匹配的"字段A"相同,与字段B不能相同,所以只能是一个集合函数,或者与group by配置的字段名相同】

13、having筛选组查询

那我们如何对函数产生的值来设定条件呢?举例来说,我们可能只需要知道哪些店的营业额有超过$1,500。在这个情况下,我们不能使用WHERE 的指令。那要怎么办呢?很幸运地,SQL 有提供一个HAVING 的指令,而我们就可以用这个指令来达到这个目标。

HAVING 子句通常是在一个SQL 句子的最后。

一个含有HAVING 子句的SQL 并不一定要包含GROUP BY 子句。

HAVING 的语法如下:

SELECT "栏位1", SUM("栏位2")

FROM "表格名"

GROUP BY "栏位1"

HAVING (函数条件) ;

select (字段1,或字段2,…)from table_name group by <字段1,或字段2,…> having <分组条件>;例如:查询出本次考试男女生的总成绩大于等于250分的信息

select sex,sum(score) as '总成绩' from student group by sex having sum(score)>=250; 12、表格连接

FROM Geography A1, Store_Information A2 --A1,A2使用到别名,更助于理解

WHERE A1.store_name = A2.store_name --关键处,存在相同的字段列

GROUP BY A1.region_name --按区域名称,进行分类

结果:

REGION SALES

East $700

West $2050

外部连接

Select a2. region_name, sum(a1.Sales ) from Store_Information a1 , Geography a2

Where a1. store_name=a2. store_name+ --"+"表示列表中的所有资料,都查取出来

Group by a2.region_name;

13、CONCATENATE字段列表内容间的串连

MySQL: CONCAT()

Oracle: CONCAT(), ||

SQL Server: +

CONCAT() 的语法如下:

CONCAT(字符串1, 字符串2, 字符串3,...): 将字符串1、字符串2、字符串3,等字符串连在一起。请注意,Oracle

的CONCAT()只允许两个参数;换言之,一次只能将两个字符串串连起来。不过,在Oracle中,我们可以用'||'来一次串连多个字符串

SELECT CONCAT(region_name,store_name) FROM Geography

WHERE store_name = 'Boston';

SQL Server使用 +,如:加个空格+' '+

SELECT region_name + ' ' + store_name FROM Geography

WHERE store_name = 'Boston';

14、SUBSTRING

SQL 中的substring 函数是用来抓出一个栏位资料中的其中一部分。这个函数的名称在不同的数据库中不完全一样:MySQL: SUBSTR(), SUBSTRING()

Oracle: SUBSTR()

SQL Server: SUBSTRING() 此函数不可用

最常用到的方式如下(在这里我们用SUBSTR()为例):

SUBSTR(str,pos): 由中,选出所有从第位置开始的字符。请注意,这个语法不适用于SQL Server上。SUBSTR(str,pos,len): 由中的第位置开始,选出接下去的个字符

假设我们有以下的表格:

例1:

SELECT SUBSTR(store_name, 3)

FROM Geography

WHERE store_name = 'Los Angeles';

结果:

's Angeles'

例2:

SELECT SUBSTR(store_name,2,4)

FROM Geography

WHERE store_name = 'San Diego';

结果:

'an D'

15、top查询

随机取出10条数据

select top 10 * from tablename order by newid();

insert into…插入

1、普通常用插入

Insert into table_name (字段1, 字段2, 字段3,…)values (数值1, 数值2, 数值3,…); 2、插入子查询结果

Insert into table_name [(字段1, 字段2, 字段3,…)] SELECT 语句;

--后面的select语句中,还可加相应的限制条件(如:where)

例如:

insert into[XXXXX].[dbo].[Geography_001](regionID,region_name,store_name) select[regionID],[region_name],[store_name]from[XXXXX].[dbo].[Geography] where regionID>9002;

●delete from…删除

1、删除表中的符合某个条件的所有数据信息:

Delete from table_name where 字段1=数值1,或字段2=数值2,…;

2、删除表中所有内容,表结构不删除,以下两种效果一样:

Delete table_name;

truncate table table_name;

3、完全删除表:

Drop table table_name;

●update …set修改

update table_name set 字段1=数值1 where 字段1=数值1, 字段2=数值2,…;

例如:

UPDATE Store_Information SET Sales = 500

WHERE store_name = "Los Angeles"

AND Date = "Jan-08-1999";

SQL查询的拓展

●UNION 或UNION ALL

作用是将两个SQL 语句的结果合并起来(相当于取两个SQL 语句的并集)

UNION 的语法如下:

[SQL 语句 1] UNION [SQL 语句 2]

限制是两个SQL 语句查询的字段值(可以为多个字段)内容,必须是同类型的数据。

SELECT store_name

FROM[XXXXX].[dbo].[Geography]

union

SELECT

Store_Information

FROM[XXXXX].[dbo].[Store_Information];

结果:

如果SQL 语句中为union all ,则全部将两张表的字段值内容,查询出且包括重复的。

● distinct

查询重复出现的字段值,只显示一次。

select distinct 字段名1,字段名2 from 表格 order by 字段名1 例如:

执行语句:

select distinct [store_name] from [XXXXX].[dbo].[Store_Information]; 结果:

● INTERSECT

作用是将字段值都存在两个 SQL 语句中时,才查询出结果。(相当于取两个SQL 语句的交集) 语法:

[SQL 语句 1] INTERSECT [SQL 语句 2]

限制是两个 SQL 语句查询的字段值(可以为多个字段)内容,必须是同类型

的数据。

SELECT store_name

FROM [XXXXX].[dbo].[Geography] intersect SELECT

Store_Information

FROM [XXXXX].[dbo]

.[Store_Information]; 结果:

●MINUS

只运用在两个SQL 语句上。执行第一个SQL 语句所产生的结果,如果存在第二个SQL 语句的结果中,则会被去除,不显示最后结果中。执行第二个SQL 语句所产生的结果,如果不存在第一个SQL 语句所产生的结果内,则会被去除,不显示最后结果中

而我们要知道有哪几天是有店面营业额而没有网络营业额的。要达到这个目的,我们用以下的SQL 语句:

SELECT Date FROM Store_Information

MINUS

SELECT Date FROM Internet_Sales

结果:

Date

Jan-05-1999

Jan-08-1999

●子查询

在一个SQL 语句中放入另一个SQL 语句。在WHERE 子句或HAVING 子句中插入另一个SQL 语句时,就有一个子查询(subquery) 的架构。

子查询的作用是:1、用来连接表格。2、唯一能够连接两个表格的方式。

子查询的语法如下:

SELECT "栏位1"

FROM "表格"

WHERE "栏位2" [比较运算素]

(SELECT "栏位1"

FROM "表格"

WHERE [条件]);

其中,[比较运算素]可以为“=, >, <, >=, <=.”,也可以为“like”,及“and”、“or”,红色部分表示内查询。

第四、删除数据

string MyConn="server=127.0.0.1;uid=user;pwd=123456;database=Northwind;Trusted_Connection=no"; SqlConnection MyConnection=new SqlConnection(MyConn);

string MyDelete="Delete from Categories where CategoryID="+TextBox1.Text;

SqlCommand MyCommand=new SqlCommand(MyDelete,MyConnection);

try

{

MyConnection.Open();

MyCommand.ExecuteNonQuery();

MyConnection.Close();

TextBox1.Text="";

}

catch(Exception ex)

{

Console.WriteLine("{0} Exception caught.", ex);

}

第三、修改数据

string categoryName=TextBox2.Text;

string categoryDescription=TextBox3.Text;

string MyConn="server=127.0.0.1;uid=user;pwd=123456;database=Northwind;Trusted_Connection=no"; SqlConnection MyConnection=new SqlConnection(MyConn);

string MyUpdate="Update Categories set

CategoryName='"+categoryName+"',Description='"+categoryDescription+"' where CategoryID="+TextBox1.Text; SqlCommand MyCommand=new SqlCommand(MyUpdate,MyConnection);

try

{

MyConnection.Open();

MyCommand.ExecuteNonQuery();

MyConnection.Close();

TextBox1.Text="";

数据库SQL语句

1、select x.商品代号,分类名,数量,品牌 From 商品表现1 x,商品表2 y Where x.商品代号=y.商品代号 (从商品库中查询出每一种商品的商品代号、分类名、数量和品牌等信息。)2、select distinct 产地 From商品表2 (从商品库中查询出所有商品的不同产地。) 3、select distinct 品牌 From 商品表2 (从商品库中查询出所有商品的不同品牌) 4、select count(distinct产地)as产地数From商品表2 (从商品库中查询出所有商品的不同产地的总数。) 5、select x.商品代号,分类名,产地,品牌 From商品表1 x.,商品表2 y Where x,商品代号=y.商品代号and (品牌=‘熊猫’or品牌=‘春兰’) (从商品库中查询出品牌为熊猫或春兰的所有商品的商品代号、分类名、产地和品牌。) 19、select 商品表1.商品代号,单价,数量,产地 From 商品表1,商品表2 Where 商品表达式1.商品代号=商品表达式2.商品代号 (从商品库中查询出每种商品的商品代号、单价、数量和产地。) 20、select count(*) From 商品表1 Where数量》10 (从商品库中查询出数量大于10的商品种数。) 21、select * From商品表1 Where数量between 10 and20 (从商品库中查询出数量在10和20之间的所有商品。) 22、select分类名,max(单价)as最高单价 From商品表1 Group by 分类名 (从商品库中查询出每类(即类名相同)商品的最高单价)23、select分类名,avg(数量)as平均 数量 From商品表1 Group by分类名 (从商品库中查询出每类(即分类名相 同)商品的平均数量) 24、select分类名,sum(数量)as总 数量 From商品表1 Group by分类名 (从商品库中查询出每类(即分类名相 同)商品的总数量。) 25、select* From商品表1 Where单价>all(select单价 From商品表1 Where分类名’电视机’) (从商品库中查询出比所有电视机的 单价都高的每种商品) 26、select* From商品表1 Where单价>all(select avg(单价) From商品表1) (从商品库中查询出比所有商品单价 的平均值要高的全部商品) 27、select* From商品表1 Where数量=some(select max(数量) From商品表1) (从商品库中查询出数量最多的一种 商品) 28、select distinct分类名 From商品表1. Group by 分类名having count(*)>1 (从商品库中查询出同一类商品多于一 种的所有分类名) 29、select商品表1.*,产地 From商品表1,商品表2 Where商品表1.商品代号=商品表2.商 品代事情and产地in( Select 产地 From商品表1 x ,商品表2 y Where x.商品代号=y.商品代号 Group by产地having count(*)=1) (从商品库中查询出同一产地的商品 只有一种的所有商品) 30、select*,单价*数量as总价值 From商品表1 Order by总价值desc (从商品库中查询出每种商品的总价 值,并按降序排列出来 6、select 学生。学生号,count(*)as选 课门数 From学生,选课 Where学生.学生号=选课.学生号 Group by 学生。学生号 (从教学库中查询出互个学生选课的 门数。) 7、select distinct x.* From 学生产x,选课y,选课z Where y.学生号=z.学生号and y .课程 号<>z.课程号and x.学生号=y.学生号 (从教学库中查询出至少选修了两门 课程的全部学生。) 8、select * From 学生 Where 学生号in (select 学生号 From 选课 Group by 学生号having coount (*)=1) (从教学库中查询出只选修了一门课 程的全部学生。) 9、select x.学生号,y.学生号,y.课程号 From 选课x,选课y Where x.学生号=@sl and y.学生号=@ s2 and x.课程号=y.课程号 (从教学库中查询出学生号为@s1的学 生和学生号为@s2的学生所选修的共 同课程的课程号。) 10、select x.* From 课程x,选课y Where x.课程号=y.课程号and y .学生 号=@s1 and y.课程号not in( select 课程号 from 选课 where 选课.学生号=@s2) (从教学库中查询出学生号为@S1的学 生所选修、而学生号为@s2的学生没有 选修的全部课程。) 11、select * From 课程 Where not exists( select * from 选课 where 课程.课程号=选课.课程号) (从教学库中查询出所有未被学生选 修的课程。) 12、select * From 课程 Where exists(Select * From 选课 Where 课程.课程号=选课.课程号) (从教学库中查询出所有已被学生选 修的课程。)

sql语句大全1

SQL语句大全 --语句功能 --数据操作 SELECT --从数据库表中检索数据行和列INSERT --向数据库表添加新数据行 DELETE --从数据库表中删除数据行 UPDATE --更新数据库表中的数据 --数据定义 CREATE TABLE --创建一个数据库表 DROP TABLE --从数据库中删除表 ALTER TABLE --修改数据库表结构 CREATE VIEW --创建一个视图 DROP VIEW --从数据库中删除视图 CREATE INDEX --为数据库表创建一个索引DROP INDEX --从数据库中删除索引 CREATE PROCEDURE --创建一个存储过程 DROP PROCEDURE --从数据库中删除存储过程CREATE TRIGGER --创建一个触发器 DROP TRIGGER --从数据库中删除触发器CREATE SCHEMA --向数据库添加一个新模式DROP SCHEMA --从数据库中删除一个模式CREATE DOMAIN --创建一个数据值域 ALTER DOMAIN --改变域定义 DROP DOMAIN --从数据库中删除一个域 --数据控制 GRANT --授予用户访问权限 DENY --拒绝用户访问 REVOKE --解除用户访问权限 --事务控制 COMMIT --结束当前事务 ROLLBACK --中止当前事务 SET TRANSACTION --定义当前事务数据访问特征--程序化SQL DECLARE --为查询设定游标 EXPLAN --为查询描述数据访问计划 OPEN --检索查询结果打开一个游标 FETCH --检索一行查询结果 CLOSE --关闭游标 PREPARE --为动态执行准备SQL 语句EXECUTE --动态地执行SQL 语句 DESCRIBE --描述准备好的查询

数据库实验四(含答案)

实验四使用SQL语句创建和删除数据库、表 一. 实验目的: 1、了解SQL Server 2005数据库的逻辑结构和物理结构。 2、掌握使用SQL 语句创建和删除数据库。 3、学会使用T-SQL语句创建表。 二. 实验准备 1.明确能够创建数据库的用户必须是系统管理员,或是被授权使用CREATE DATABASE语句的用户。 2.了解用SQL语句创建和删除数据库的基本语法。 3.是用查询分析器,完成用SQL语句创建和删除基本表。 三. 实验要求 1、熟练使用查询分析器进行数据库的创建和删除操作。 2、用查询分析器,完成用SQL语句创建和删除基本表。 3、完成实验报告。 四. 实验内容 一、数据库 1.以下是创建数据库userdb1的SQL语句, create database userdb1 on (name=userdb4_data,--数据文件的逻辑名称,注意不能与日志逻辑同名 filename='g:\xygl\userdb4.mdf' ,--物理名称,注意路径必须存在 size=5,--数据初始长度为5M maxsize=10,--最大长度为10M filegrowth=1)--数据文件每次增长1M log on ( name=userdb4_log, filename='g:\xygl\userdb4.ldf ' , size=2 , maxsize=5 , filegrowth=1) 运行上诉语句建立数据库userdb1

句,并建立“学生信息”数据库.(.mdf的名字可以修改) 3.数据库的修改(alter database 数据库名add file),将一个大小为10MB 的数据文件mrkj添加到userdb1的数据库中,该数据文件的大小为10MB,最大的文件大小为100MB,增长速度为2MB,物理地址与原有的mdf,ldf文件放在一起。 alter database 数据库名 add file() 注括号内格式同下: ( name=userdb4_log, filename='g:\xygl\userdb4.ldf ' , size=2 , maxsize=5 ,

数据库SQL查询语句大全

经典SQL查询语句大全 一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1. dat' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definition only 5、说明:删除新表 drop table tabname 6、说明:增加一个列 Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明:添加主键:Alter table tabname add primary key(col) 说明:删除主键: Alter table tabname drop primary key(col) 8、说明:创建索引:create [unique] index idxname on tab name(col….) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement 删除视图:drop view viewname 10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料!

一个比较标准的sqlserver建表格式

一个比较标准的sqlserver 建表格式 CREATE TABLE [dbo].[admin]( [id] [int] IDENTITY(1,1) NOT NULL, [usersname] [nvarchar](50) NULL, [password] [nvarchar](50) NULL, [groud] [int] NULL CONSTRAINT [DF_admin_groud] DEFAULT ((0)), [data] [datetime] NULL CONSTRAINT[DF_admin_data] DEFAULT (getdate()), CONSTRAINT [PK_admin] PRIMARY KEY CLUSTERED ( [id] ASC )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] 解释: CONSTRAINT [PK_admin] PRIMARY KEY CLUSTERED ( [id] ASC )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] 这是在id 列上创建一个唯一聚集索引的语句。 primary key 表明创建的是主键约束,culstered 表示索引类型是聚集索引,IGNORE_DUP_KEY = OFF作用是在向表中插入数据的时候,如果遇到表中已经存在id 的值,insert 语句就会失败,并且回滚整个insert 语句。 ON [PRIMARY表示是索引创建在主文件组上。 [pk_ admin] 是主键的名称。 需要注意的是sqlserver2000 不支持WITH (IGNORE_DUP_KEY = OFF) 再看一个,和上面的有一点不一样: CREATE TABLE [dbo].[news]( [id] [int] IDENTITY(1,1) NOT NULL, [title] [nvarchar](100) NULL, [classid] int NULL, boardid int NULL, [contents] [ntext] NULL, [oSource] [nvarchar](50) NULL, [oAuthor] [nvarchar](50) NULL, [picurl] [nvarchar](100) NULL, [keytxt] [nvarchar](50) NULL, [data] [datetime] NULL CONSTRAINT [DF_news_data] DEFAULT (getdate()), [hklick] [int] NULL CONSTRAINT [DF_news_hklick] DEFAULT ((0)), [pinglun] [int] NULL CONSTRAINT [DF_news_pinglun] DEFAULT ((0)), CONSTRAINT [PK_co ntent] PRIMARY KEY CLUSTERED

数据库图书信息管理数据库SQL语句

实验 SQL语言 一、实验目的 1、理解数据库以及数据表的设计; 2、熟悉SQL Server2005中的数据类型; 3、熟悉使用SQL语句创建和删除模式和索引; 4、掌握使用SQL语句创建、修改和删除数据表; 5、掌握使用SQL语句查询表中的数据; 6、掌握使用SQL语句插入、修改和删除数据表中的数据; 7、掌握使用SQL语句创建、删除、查询和更新视图。 二、实验容 (一)创建数据库和模式 1、通过SQL语句创建图书信息管理数据库,命名为“db_Library”,数据文件和日志文件放在D盘下以自己学号和命名的文件夹中,数据文件的逻辑名为db_Library_data,数据文件的操作系统名为db_Library_data.mdf,文件初始大小为10MB,最大可增加至300MB,增幅为10%;日志文件的逻辑名为db_Library_log,日志文件的操作系统名为db_Library_data.ldf,文件初始大小为5MB,最大可增加至200MB,增幅为2MB。 2、通过SQL语句在该数据库中创建模式L-C。 (二)创建和管理数据表 要求为各数据表的字段选择合适的数据类型及名称;为各数据表设置相应的完整性约束条件。 1、通过SQL语句将以下数据表创建在L-C模式下: 课程信息表(tb_course)——课程编号Course number 、课程名Course name 、先修课The first course 、学分credit 2、通过SQL语句将以下数据表创建在该数据库的默认模式dbo下: 图书类别信息表(tb_booktype)——类别编号Type number 、类别名称Category name 图书信息表(tb_book)——图书编号ISBN 、类别编号Type number、书名title 、作者author、BookPublic、定价BookPrice、库存数Inventory number 读者信息表(tb_reader)——读者编号Reader ID 、、性别、学号Student ID 、班级、系部pastern 借阅信息表(tb_borrow)——图书编号、读者编号、借阅日期Borrowing date 、归还日期Return date 3、通过SQL语句对读者信息表进行修改:删除系部字段、添加所在系字段。 4、通过SQL语句对图书信息表进行修改:将定价的数据类型改为REAL。 5、通过SQL语句删除课程信息表。 (三)创建和删除索引 1、使用SQL语句在图书信息表上创建一个非聚簇索引IX_S_QUANTITY,要求按照该表中库存数字段的降序创建。 2、使用SQL语句在读者信息表上创建一个唯一的非聚簇索引IX_S_NAME,要求按照该表中的字段的升序创建。 3、使用SQL语句删除之前创建的两个索引。 (四)数据库及数据表设计

数据库SQL查询语句大全修订稿

数据库S Q L查询语句 大全 公司标准化编码 [QQX96QT-XQQB89Q8-NQQJ6Q8-MQM9N]

经典SQL查询语句大全 一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definitio n only 5、说明:删除新表 drop table tabname 6、说明:增加一个列 Alter table tabname add column col type

注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明:添加主键:Alter table tabname add primary key(col) 说明:删除主键: Alter table tabname drop primary key(col) 8、说明:创建索引:create [unique] index idxname on tabname(col….) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement 删除视图:drop view viewname 10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料! 排序:select * from table1 order by field1,field2 [desc] 总数:select count as totalcount from table1 求和:select sum(field1) as sumvalue from table1 平均:select avg(field1) as avgvalue from table1 最大:select max(field1) as maxvalue from table1 最小:select min(field1) as minvalue from table1 11、说明:几个高级查询运算词 A:UNION 运算符

数据库经典SQL语句大全

数据库经典SQL语句大全 篇一:经典SQL语句大全 下列语句部分是Mssql语句,不可以在access中使用。 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句: 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的 device USE master EXEC sp_addumpdevice 'disk','testBack', 'c:mssql7backupMyNwind_1.dat' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表

create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2? from tab_old definition only 5、说明: 删除新表: tabname 6、说明: 增加一个列:Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明: 添加主键:Alter table tabname add primary key(col) 说明: 删除主键:Alter table tabname drop primary key(col) 8、说明: 创建索引:create [unique] index idxname on tabname(col?.) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。

实验5 sql语句练习——图书馆数据库答案

实验5sql语句练习——图书馆数据库 实验5 sql语句练习——图书馆数据库 实验目的 (1)了解SQL Server数据库的逻辑结构和物理结构; (2)了解表的结构特点; (3)了解SQL Server的基本数据类型; (4)了解空值概念; (5)学会在企业管理器中创建数据库和表; (6)学会使用T-SQL语句创建数据库和表。 (7)学会使用T-SQL语句更新数据。 (7)学会使用T-SQL语句创建多种查询。 实验准备 首先要明确,能够创建数据库的用户必须是系统管理员,或是被授权使用CREATE DATABASE语句的用户。 其次创建数据库必须要确定数据库名、数据库大小(最初的大小、最大的大小、是否允许增长及增长方式)和存储数据库的文件。 然后,确定数据库包含哪些表,以及所包含的各表的结构,还要了解SQL Server的常用数据类型,以创建数据库的表。 此外还要了解两种常用的创建数据库、表的方法,即在企业管理器中创建和使用T-SQL的CREATE DA TABASE语句。 实验内容 假设有5本书 设有一图书馆数据库,其中包括3个表,即图书表、读者表和借阅表。三个表的结构如图: 读者表结构

(1)用Sql语句创建图书馆数据库 Create database Lab05 (2)用Sql语句创建上述3个表 create table book ( bookId char(10)primary key, bookName varchar(50), bookWriter varchar(30), bookPublish varchar(30), bookPrice float ) create table reader ( readerId char(10) primary key, readerName varchar(8)not null, readerSex char(2)not null, readerOfficeTel char(8), readerDepartment varchar(30) ) create table 借阅表 ( readerId char(10), bookId char(10), checkOutTime char(8), checkInTime char(8), primary key(readerId,bookId), foreign key (readerId) references reader(readerId), foreign key (bookId) references book(bookId), ) (3)基于图书馆数据库的3个表,用sql语言完成一下操作:1)为图书表增加一列“ISBN”,数据类型为CHAR(10)

SQL数据库查询语句范例

推荐一、简单查询 简单的Transact-SQL查询只包括选择列表、FROM子句和Where子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。Select nickname,email FROM testtable Where n ame=’张三’ (一) 选择列表 选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。 1、选择所有列例如,下面语句显示testtable表中所有列的数据:Select * FROM testtable 2、选择部分列并指定它们的显示次序 查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 例如:Select nickname,email FROM testtable 3、更改列标题 在选择列表中,可重新指定列标题。定义格式为: 列标题=列名列名列标题 如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题: Select 昵称=nickname,电子邮件=email FROM testtable 4、删除重复行 Select语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。使用DISTINC T选项时,对于所有重复的数据行在Select返回的结果集合中只保留一行。 5、限制返回的行数 使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是表示一百分数,指定返回的行数等于总行数的百分之几。例如: Select TOP 2 *FROM testtable Select TOP 20 PERCENT * FROM testtable (二) FROM子句 FROM子句指定Select语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和cityta ble表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: Select username,citytable.cityid FROM usertable,citytable Where usertable.cityid=citytable.cityid 在FROM子句中可用以下两种格式为表或视图指定别名: 表名 as 别名表名别名

SQL Server数据库及表的建立 实验要求和截图记录

实验一 SQL Server数据库及表的建立 1. 按下面要求创建一个名为companyinfo的数据库: 主要数据文件:逻辑文件名为companyinfo_data1,实际文件名为companyinfo_data1.mdf;初始容量为1MB,最大容量为10MB,递增量为1MB。 次要数据文件:逻辑文件名为companyinfo_data2,实际文件名为companyinfo_data2.mdf;初始容量为1MB,最大容量为10MB,递增量为1MB。 事务日志文件:逻辑文件名为companyinfo_log,实际文件名为companyinfo_log.ldf;初始容量为1MB,最大容量为10MB,递增量为1MB。 2. 在companyinfo数据库中创建名为“category”的类别表,名为“product”的产品信息表,名为“employee”的雇员表,名为“customer”的客户表和名为“p_order”的订单表。 类别表(以类别ID为主键) 产品信息表(以产品ID为主键,类别ID是与类别表的类别ID相联系的外键) 雇员表(以雇员ID为主键,且薪水不得低于1000元) 客户表(以客户ID为主键)

订单表(以订单ID为主键,产品ID,雇员ID,客户ID均为外键,分别与产品信息表、雇员表和客户表的主键相联系) 3.利用企业管理器和T-SQL语句分别实现上面的操作。 实验操作过程截图记录如下: 实验一 SQL Server数据库及表的建立 1,按要求创建一个名为companyinfo的数据库: 利用企业管理器创建:

2,在companyinfo数据库中创建名为“category”的类别表,名为“product”的产品信息表,名为“employee”的雇员表,名为“customer”的客户表和名为“p_order”的订单表。 类别表 产品信息表

数据库基本SQL语句大全

数据库基本SQL语句大全 数据库基本----SQL语句大全 一、基础 1、说明:创建数据库 Create DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1、d at' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 typ e2 [not null],、、) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2…from tab_old definit ion only 5、说明:删除新表 drop table tabname 6、说明:增加一个列 Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的就是增加varchar类型的长度。 7、说明:添加主键: Alter table tabname add primary key(col) 说明:删除主键: Alter table tabname drop primary key(col) 8、说明:创建索引:create [unique] index idxname on tabname(col…、) 删除索引:drop index idxname 注:索引就是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement

sqlserver实验报告—数据库和表的创建

评分 签名 日期 数据库实验报告 课程名称信息系统数据库技术 实验名称数据表的管理 专业班级 姓名 学号 实验日期 实验地点 2012—2013学年度第一学期

一、实验目的 1、掌握Microsoft SQL Server 2005 Express Edition的安装过程 2、熟悉SQL Server 2005 Express Edition的基本菜单功能,界面。 3、掌握SQL Server 2005的启动、服务器注册等功能。 二、实验内容 1、数据库的创建 2、数据库的修改 3、数据的导入 4、数据的导出 5、数据库的分离 三、实验环境 Windows XP操作系统,Microsoft SQL Server 2005 Express Edition。 四、相关知识 1、数据库命令规则取决于数据库兼容的级别,而数据库级别可以用存储过程sp_helpdb 来查询。注意:其一由于在T-SQL中,“@”表示局部变量,“@@”表示全局变量,“##”表示全局临时对象,所以不建议用这些符号作为数据库名称的开头;其二虽然在SQL Server 2005中,保留字区分大小写,但也不建议用改过大小写的保留字作为数据库名。 2、数据库文件:每个SQL Server 2005的数据库至少包含二个文件:一个数据文件(.mdf)和一个日志文件(.ldf)。 3、数据库的创建命令:CREATE DATABASE 4、数据库的修改命令:ALTER DATABASE 只有数据库管到员或具有CREATE DATABASE权限的数据库所有者才有权执行ATER DATABASE语句。在实际操作中,ALTER DATABASE一次只能修改一种参数 5、数据库的删除命令:DROP DATABASE 6、数据库的分离命令:SP_DETACH_DB 'filename' 7、数据库的附加命令:CREATE DATABASE…FOR ATTACH 8、数据的导入是指从其他数据源中把数据复制到SQL Server数据库中。 9、数据的导出是指从SQL Server数据库中把数据复制到其他数据源中。 2

数据库sql查询语句上机练习1_习题_结果(单世民)

习题1 请根据给出的数据库表结构来回答相应问题: DEPT (DEPTNO INT, DNAME VARCHAR(14),LOC VARCHAR(13)); EMP (EMPNO INT,ENAME VARCHAR(10), JOB VARCHAR(9), MGR INT, HIREDATE DATE, SAL FLOAT, COMM FLOAT, DEPTNO INT); BONUS (ENAME VARCHAR(10), JOB VARCHAR(9), SAL INT, COMM INT); SALGRADE ( GRADE INT, LOSAL INT, HISAL INT); 其中表中包含如下数据: DEPT表: EMP表: SALGRADE表:

BONUS表: 无数据 根据上面描述完成下面问题: (注意:注意保存脚本,尤其是DDL和DML,以便进行数据还原) DDL 1. 写出上述表的建表语句。此外,在DEPT上创 建名为”PK_DEPT”的主键约束,在EMP表上 创建名为”PK_EMP”的主键约束以及指向表 DEPT的外键约束”FK_DEPTNO”。 命令: Create table DEPT (DEPTNO INT NOT NULL,DNAME VARCHAR(14),LOC VARCHAR(13)); Alter table DEPT add constraint PK_DEPT PRIMARY KEY (DEPTNO); create table EMP(EMPNO INT NOT NULL,ENAME VARCHAR(10),JOB VARCHAR(9),MGR INT,HIREDATE DATE, SAL FLOAT,COMM FLOAT,DEPTNO INT); alter table EMP add constraint PK_EMP PRIMARY KEY (EMPNO); alter table EMP add constraint FK_DEPTNO foreign key(DEPTNO) references DEPT(DEPTNO);

数据库SQL语句实验报告

《数据库原理及应用》实验报告SQL语句部分 :绩成总

实验一熟悉SQL SERVER,数据定义实验 实验一成绩: 一、实验目的 1、利用查询分析器创建数据库 2、利用查询分析器用SQL语言定义基本表、索引并进行相关操作 二、实验步骤及内容 在以下实验中,使用学生-课程数据库,它描述了学生的基本信息、课程的基本信息及学生选修课程的信息。 1.创建学生课程数据库 2.创建学生关系表S : 3.创建课程关系表C : 课程名学分先行课课程号Cno ccreditCname Cpno 4.创建课程关系表SC : 5.将以上创建表S、C、SC的SQL命令以 .SQL文件的形式保存在磁盘上。 6、在表S上增加“出生日期”属性列。 7、删除表S的“年龄”属性列。 8、删除S姓名列的唯一值约束。 9、修改SC表成绩属性列为精确数字型。 10、在表S上,按“Sno”属性列的唯一值方式建立索引。 11、删除表SC,利用磁盘上保存的.SQL文件重新创建表SC。 12、创建教材P74页习题5中SPJ数据库中的四个关系:S、P、J、SPJ。 三、实验结果: 1.创建学生课程数据库 ; Studend create database2.创建学生关系表S : S create table(, 9Sno CHAR()PRIMARYKEY UNIQUE,)(Sname CHAR20CHAR Ssex (2), smallint Sage ,

char Sdept 20(), ); .创建课程关系表C 3: 课程号课程名先行课学分 ccredit Cpno CnoCname table C create (primary key,) Cno char(4Cname CHAR(40 ),char(), 4Cpno ,Ccredit SMALLINT); 4.创建课程关系表SC : 学号课程号成绩 grade Sno Cno createtable SC(9),Sno char(),char Cno (4, Grade smallint); 5.将以上创建表S、C、SC的SQL命令以 .SQL文件的形式保存在磁盘上。 6、在表S上增加“出生日期”属性列。 ;datetimeadd Sbirthday alter table S 7、删除表S的“年龄”属性列。

实验报告 数据库的基本查询'

一、实验目的: 通过该实验掌握应用SQL 查询数据库的基本方法,包括单表、多表查询。 二、实验原理 数据库查询是数据库的核心操作。SQL语言提供了SELECT语句进行数据库的查询。 SELECT[ALL|DISTINCT] <目标列表达式〉[,<目标列表达式〉]... FROM<表名或视图名〉[,<表名或视图名〉]... [WHERE<条件表达式>] [GROUP BY<列名1〉[HA VING<条件表达式>]] [ORDERBY<列名2〉[ASC|DESC]] 三、实验内容和方法 实验用的数据库:用实验二建立的数据库:School 1. 投影查询 (1) 查询SC表的sno的不重复记录。 使用SQL语句:“select distinct Sno from SC”,得出结果如下图所示: (2) 改变查询结果的标题名:sno为学号,sname为姓名,ssex 为性别,sdept 为系名。 使用SQL语句:“select Sno 学号,Sname 姓名,Ssex 性别,Sdept 系名from Student”,得出结果如下图所示:

(3) 查询STUDENT表的前3条记录(top 3)。 使用SQL语句:“select top 3 * from Student”,得出结果如下图所示: 3. 选择查询 (1) 查询成绩在60-80之间的姓名、系名和成绩。 使用SQL语句:“select Sname,Sdept,Grade from Student,SC where Grade>60 and Grade<80 and Student.Sno=SC.Sno”,结果如下图所示: 若使用SQL语句:“select Sname,Sdept,Grade from Student,SC where Grade between 60 and 80 and Student.Sno=SC.Sno”,则结果如下图所示: (2) 查询信息系和计算机系的姓名和成绩。 使用SQL语句:“select Sname,Grade from Student,SC where Sdept='IS' and Student.Sno=SC.Sno or Sdept='CS' and Student.Sno=SC.Sno”,结果如下图所示:

相关文档