SQL基本知识

SQL基本知识
SQL基本知识

题目1

学校图书馆借书信息管理系统建立三个表:

学生信息表:student

字段名称数据类型说明

stuID char(10) 学生编号,主键stuName Varchar(10) 学生名称

major Varchar(50) 专业图书表:book

字段名称数据类型说明

stuID char(10) 学生编号,主键stuName Varchar(10) 学生名称

major Varchar(50) 专业借书信息表:borrow

字段名称数据类型说明

borrowID char(10) 借书编号,主键stuID char(10) 学生编号,外键

BID char(10) 图书编号,外键

T_time datetime 借书日期

B_time datetime 还书日期请编写SQL语句完成以下的功能:

1) 查询“计算机”专业学生在“2007-12-15”至“2008-1-8”时间段内借书的学生编号、

学生名称、图书编号、图书名称、借出日期;参考查询结果如下图所示:

2) 查询所有借过图书的学生编号、学生名称、专业;参考查询结果如下图所示:

3) 查询借过作者为“安意如”的图书的学生姓名、图书名称、借出日期、归还日期;参考查询结果如下图所示:

4) 查询目前借书但未归还图书的学生名称及未还图书数量;参考查询结果如下图所示:

附加:建表语句:

[sql]view plain copy

https://www.360docs.net/doc/aa1251672.html,E master

2.GO

3./*

$建库

*/

4.--检验数据库是否存在,如果为真,删除此数据库--

5.IF exists(SELECT * FROM sysdatabases WHERE name='BOOK')

6.DROP DATABASE BOOK

7.GO

8.CREATE DATABASE BOOK

9.GO

10.

11.--建数据表--

https://www.360docs.net/doc/aa1251672.html,E BOOK

13.GO

14.CREATE TABLE student --学生信息表

15.(

16. stuID CHAR(10) primary key, --学生编号

17. stuName CHAR(10) NOT NULL , --学生名称

18. major CHAR(50) NOT NULL--专业

19.)

20.GO

21.CREATE TABLE book --图书表

22.(

23. BID CHAR(10) primary key, --图书编号

24. title CHAR(50) NOT NULL, --书名

25. author CHAR(20) NOT NULL, --作者

26.)

27.GO

28.CREATE TABLE borrow --借书表

29.(

30. borrowID CHAR(10) primary key, --借书编号

31.stuID CHAR(10) foreign key(stuID) references student(stuID), --学生编号

32.BID CHAR(10) foreign key(BID) references book(BID),--图书编号

33. T_time datetime NOT NULL, --借出日期

34. B_time datetime --归还日期

35.)

36.GO

37.

38.--学生信息表中插入数据--

39.INSERT INTO student(stuID,stuName,major)VALUES('1001','林林','计算机')

40.INSERT INTO student(stuID,stuName,major)VALUES('1002','白杨','计算机')

41.INSERT INTO student(stuID,stuName,major)VALUES('1003','虎子','英语')

42.INSERT INTO student(stuID,stuName,major)VALUES('1004','北漂的雪','工商管理')

43.INSERT INTO student(stuID,stuName,major)VALUES('1005','五月','数学')

44.--图书信息表中插入数据--

45.INSERT INTO book(BID,title,author)VALUES('B001','人生若只如初见','安意如')

46.INSERT INTO book(BID,title,author)VALUES('B002','入学那天遇见你','晴空')

47.INSERT INTO book(BID,title,author)VALUES('B003','感谢折磨你的人','如娜')

48.INSERT INTO book(BID,title,author)VALUES('B004','我不是教你诈','刘庸')

49.INSERT INTO book(BID,title,author)VALUES('B005','英语四级','白雪')

50.--借书信息表中插入数据--

51.INSERT INTO borrow(borrowID,stuID,BID,T_time,B_time)VALUES('T001','1001','B00

1','2007-12-26',null)

52.INSERT INTO borrow(borrowID,stuID,BID,T_time,B_time)VALUES('T002','1004','B00

3','2008-1-5',null)

53.INSERT INTO borrow(borrowID,stuID,BID,T_time,B_time)VALUES('T003','1005','B00

1','2007-10-8','2007-12-25')

54.INSERT INTO borrow(borrowID,stuID,BID,T_time,B_time)VALUES('T004','1005','B00

2','2007-12-16','2008-1-7')

55.INSERT INTO borrow(borrowID,stuID,BID,T_time,B_time)VALUES('T005','1002','B00

4','2007-12-22',null)

56.INSERT INTO borrow(borrowID,stuID,BID,T_time,B_time)VALUES('T006','1005','B00

5','2008-1-6',null)

57.INSERT INTO borrow(borrowID,stuID,BID,T_time,B_time)VALUES('T007','1002','B00

1','2007-9-11',null)

58.INSERT INTO borrow(borrowID,stuID,BID,T_time,B_time)VALUES('T008','1005','B00

4','2007-12-10',null)

59.INSERT INTO borrow(borrowID,stuID,BID,T_time,B_time)VALUES('T009','1004','B00

5','2007-10-16','2007-12-18')

60.INSERT INTO borrow(borrowID,stuID,BID,T_time,B_time)VALUES('T010','1002','B00

2','2007-9-15','2008-1-5')

61.INSERT INTO borrow(borrowID,stuID,BID,T_time,B_time)VALUES('T011','1004','B00

3','2007-12-28',null)

62.INSERT INTO borrow(borrowID,stuID,BID,T_time,B_time)VALUES('T012','1002','B00

3','2007-12-30',null)

标准答案:

-- 1)查询“计算机”专业学生在“2007-12-15”至“2008-1-8”时间段内借书的学生编号、学生名称、图书编号、图书名称、借出日期—

[sql]view plain copy

1.select学生编号=stuID,学生名称=(select stuName from student where stuID=borrow.

stuID),图书编号=BID,图书名称=(select title from book where BID=borrow.BID),借出日期=T_time from borrow where stuID in (select stuID from student where major= '计算机') and T_time>'2007-12-15'and T_time<'2008-1-8'

-- 2)查询所有借过图书的学生编号、学生名称、专业--

[sql]view plain copy

1.select学生编号=stuID,学生名称=stuName,专业=major from student where stuID i

n (select stuID from borrow)

-- 3)查询借过作者为“安意如”的图书的学生姓名、图书名称、借出日期--

[sql]view plain copy

1.select学生名称=(select stuName from student where stuID=borrow.stuID),图书名称

=(select title from book where BID=borrow.BID),借出日期=T_time,归还日期=B_tim

e from borrow where BID in (select BID from book where author='安意如')

-- 4)查询目前借书但未归还图书的学生名称及未还图书数量--

[sql]view plain copy

1.select学生名称=(select stuName from student where stuID=borrow.stuID),借书数量

=count(*) from borrow where B_time is null group by stuID

题目2

程序员工资表:ProWage

字段名称数据类型说明

ID int 自动编号,主键PName Char(10) 程序员姓名Wage int 工资创建一个存储过程,对程序员的工资进行分析,月薪1500到10000不等,如果有

百分之五十的人薪水不到2000元,给所有人加薪,每次加100,再进行分析,直到有一半

以上的人大于2000元为止,存储过程执行完后,最终加了多少钱?

例如:如果有百分之五十的人薪水不到2000,给所有人加薪,每次加100元,直到有一半以上的人工资大于2000元,调用存储过程后的结果如图:

请编写T-SQL来实现如下功能:

1) 创建存储过程,查询是否有一半程序员的工资在2200、3000、3500、4000、5000或6000元之上,如果不到分别每次给每个程序员加薪100元,至之一半程序员的工资达到2 200,3000,3500,4000,5000或6000元。

2) 创建存储过程,查询程序员平均工资在4500元,如果不到则每个程序员每次加200元,至到所有程序员平均工资达到4500元。

建表语句:

[sql]view plain copy

https://www.360docs.net/doc/aa1251672.html,E master

2.GO

3./*

$建库

*/

4.--检验数据库是否存在,如果为真,删除此数据库--

5.IF exists(SELECT * FROM sysdatabases WHERE name='Wage')

6.DROP DATABASE Wage

7.GO

8.CREATE DATABASE Wage

9.GO

10.

11.--建数据表--

https://www.360docs.net/doc/aa1251672.html,E Wage

13.GO

14.CREATE TABLE ProWage --程序员工资表

15.(

16. ID int identity(1,1) primary key, --工资编号

17. PName CHAR(10) NOT NULL , --程序员姓名

18. Wage int NOT NULL--工资

19.)

20.GO

21.--插入数据--

22.INSERT INTO ProWage(PName,Wage)VALUES('青鸟',1900)

23.INSERT INTO ProWage(PName,Wage)VALUES('张三',1200)

24.INSERT INTO ProWage(PName,Wage)VALUES('李四',1800)

25.INSERT INTO ProWage(PName,Wage)VALUES('二月',3500)

26.INSERT INTO ProWage(PName,Wage)VALUES('蓝天',2780)

标准答案:

[sql]view plain copy

1.--1、创建存储过程--

2.if exists (select * from sysobjects where name='Sum_wage')

3.drop procedure Sum_wage

4.GO

5.create procedure Sum_wage

6.@PWage int,

7.@AWage int,

8.@total int

9.as

10.while (1=1)

11.begin

12.if (select count(*) from ProWage)>2*(select count(*) from ProWage where Wage>

=@PWage)

13.update ProWage set @total=@total+@AWage,Wage=Wage+@AWage

14.else

15.break

16.end

17.print'一共加薪:'+convert(varchar,@total)+'元'

18.print'加薪后的程序员工资列表:'

19.select * from ProWage

20.--调用存储过程1--

21.exec Sum_wage @PWage=2000,@AWage=100,@total=0

22.exec Sum_wage @PWage=2200,@AWage=100,@total=0

23.exec Sum_wage @PWage=3000,@AWage=100,@total=0

24.exec Sum_wage @PWage=4000,@AWage=100,@total=0

25.exec Sum_wage @PWage=5000,@AWage=100,@total=0

26.exec Sum_wage @PWage=6000,@AWage=100,@total=0

27.

28.--2、创建存储过程2--

29.if exists (select * from sysobjects where name='Avg_wage')

30.drop procedure Avg_wage

31.GO

32.create procedure Avg_wage

33.@PWage int,

34.@AWage int,

35.@total int

36.as

37.while (1=1)

38.begin

39.if ((select Avg(Wage) from ProWage)<=@PWage)

40.update ProWage set @total=@total+@AWage,Wage=Wage+@AWage

41.else

42.break

43.end

44.print'一共加薪:'+convert(varchar,@total)+'元'

45.print'加薪后的程序员工资列表:'

46.select * from ProWage

47.--调用存储过程--

48.exec Avg_wage @PWage=3000,@AWage=200,@total=0

49.exec Avg_wage @PWage=4500,@AWage=200,@total=0

题目3

学生成绩信息三个表,结构如下:

学生表:Member

字段名称数据类型说明

MID Char(10) 学生号,主键MName Char(50) 姓名课程表:F

字段名称数据类型说明

FID Char(10) 课程,主键FName Char(50) 课程名成绩表:Score

字段名称数据类型说明

SID int 自动编号,主键,成绩记录号FID Char(10) 课程号,外键

MID Char(10) 学生号,外键

Score int 成绩

请编写T-SQL语句来实现如下功能:

1) 查询各个学生语文、数学、英语、历史课程成绩,例如下表:

姓名语文数学英语张萨78 67 89

王强89 67 84

李三70 87 92

李四80 78 97

2) 查询四门课中成绩低于70分的学生及相对应课程名和成绩。

3) 统计各个学生参加考试课程的平均分,且按平均分数由高到底排序。

4) 创建存储过程,分别查询参加1、2、3、4门考试及没有参加考试的学生名单,要求显示姓名、学号。

建表语句:

[sql]view plain copy

https://www.360docs.net/doc/aa1251672.html,E master

2.GO

3./*

$建库

*/

4.--检验数据库是否存在,如果为真,删除此数据库--

5.IF exists(SELECT * FROM sysdatabases WHERE name='Student')

6.DROP DATABASE Student

7.GO

8.CREATE DATABASE Student

9.GO

10.

11.--建数据表--

https://www.360docs.net/doc/aa1251672.html,E Student

13.GO

14.CREATE TABLE Member --学生表

15.(

16. MID char(10) primary key, --学生号

17. MName CHAR(50) NOT NULL--姓名

18.)

19.GO

20.CREATE TABLE F --课程表

21.(

22. FID char(10) primary key, --课程号

23.FName CHAR(50) NOT NULL--课程名

24.)

25.GO

26.CREATE TABLE score --学生成绩表

27.(

28. SID int identity(1,1) primary key, --成绩记录号

29. FID char(10) foreign key(FID) references F(FID) , --课程号

30. MID char(10) foreign key(MID) references Member(MID) , --学生号

31. Score int NOT NULL--成绩

32.)

33.GO

34.--课程表中插入数据--

35.INSERT INTO F(FID,FName)VALUES('F001','语文')

36.INSERT INTO F(FID,FName)VALUES('F002','数学')

37.INSERT INTO F(FID,FName)VALUES('F003','英语')

38.INSERT INTO F(FID,FName)VALUES('F004','历史')

39.--学生表中插入数据--

40.INSERT INTO Member(MID,MName)VALUES('M001','张萨')

41.INSERT INTO Member(MID,MName)VALUES('M002','王强')

42.INSERT INTO Member(MID,MName)VALUES('M003','李三')

43.INSERT INTO Member(MID,MName)VALUES('M004','李四')

44.INSERT INTO Member(MID,MName)VALUES('M005','阳阳')

45.INSERT INTO Member(MID,MName)VALUES('M006','虎子')

46.INSERT INTO Member(MID,MName)VALUES('M007','夏雪')

47.INSERT INTO Member(MID,MName)VALUES('M008','璐璐')

48.INSERT INTO Member(MID,MName)VALUES('M009','珊珊')

49.INSERT INTO Member(MID,MName)VALUES('M010','香奈儿')

50.--成绩表中插入数据--

51.INSERT INTO Score(FID,MID,Score)VALUES('F001','M001',78)

52.INSERT INTO Score(FID,MID,Score)VALUES('F002','M001',67)

53.INSERT INTO Score(FID,MID,Score)VALUES('F003','M001',89)

54.INSERT INTO Score(FID,MID,Score)VALUES('F004','M001',76)

55.INSERT INTO Score(FID,MID,Score)VALUES('F001','M002',89)

56.INSERT INTO Score(FID,MID,Score)VALUES('F002','M002',67)

57.INSERT INTO Score(FID,MID,Score)VALUES('F003','M002',84)

58.INSERT INTO Score(FID,MID,Score)VALUES('F004','M002',96)

59.INSERT INTO Score(FID,MID,Score)VALUES('F001','M003',70)

60.INSERT INTO Score(FID,MID,Score)VALUES('F002','M003',87)

61.INSERT INTO Score(FID,MID,Score)VALUES('F003','M003',92)

62.INSERT INTO Score(FID,MID,Score)VALUES('F004','M003',56)

63.INSERT INTO Score(FID,MID,Score)VALUES('F001','M004',80)

64.INSERT INTO Score(FID,MID,Score)VALUES('F002','M004',78)

65.INSERT INTO Score(FID,MID,Score)VALUES('F003','M004',97)

66.INSERT INTO Score(FID,MID,Score)VALUES('F004','M004',66)

67.INSERT INTO Score(FID,MID,Score)VALUES('F001','M006',88)

68.INSERT INTO Score(FID,MID,Score)VALUES('F002','M006',55)

69.INSERT INTO Score(FID,MID,Score)VALUES('F003','M006',86)

70.INSERT INTO Score(FID,MID,Score)VALUES('F004','M006',79)

71.INSERT INTO Score(FID,MID,Score)VALUES('F002','M007',77)

72.INSERT INTO Score(FID,MID,Score)VALUES('F003','M008',65)

73.INSERT INTO Score(FID,MID,Score)VALUES('F004','M007',48)

74.INSERT INTO Score(FID,MID,Score)VALUES('F004','M009',75)

75.INSERT INTO Score(FID,MID,Score)VALUES('F002','M009',88)

标准答案:

-- 1)查询各个学生语文、数学、英语、历史课程成绩--

[sql]view plain copy

1.SELECT Member.MName AS姓名,

2.英语 = SUM(CASE F.FName WHEN'语文'THEN Score.Score END),

3.数学 = SUM(CASE F.FName WHEN'数学'THEN Score.Score END),

4.语文 = SUM(CASE F.FName WHEN'英语'THEN Score.Score END),

5.历史 = SUM(CASE F.FName WHEN'历史'THEN Score.Score END)

6.FROM Score, Member,F

7.WHERE F.FID = Score.FID AND Member.MID =Score.MID GROUP BY Member.MName

-- 2)查询四门课中成绩低于70分的学生及相对应课程名和成绩--

[sql]view plain copy

1.select姓名=(select MName from Member where MID=Score.MID),课程名=(select FNam

e from F where FID=Score.FID),成绩=Score from Score where Score<70

-- 3)统计各个学生四课程的平均分,且按平均分数由高到底排序--

[sql]view plain copy

1.select姓名=(select MName from Member where MID=Score.MID),平均分=Avg(Score) f

rom Score group by MID order by平均分desc

-- 4)创建存储过程--

[sql]view plain copy

1.if exists (select * from sysobjects where name='P_stu')

2.drop procedure P_stu

3.GO

4.create procedure P_stu

5.@num int

6.As

7.print'参加'+convert(varchar(5),@num)+'门课考试的学生姓名及学号:'

8.select姓名=(select MName from Member where MID=Score.MID),学号=MID from Scor

e group by MID having count(*)=@num

9.

10.--调用存储过程--

11.exec P_stu @num=2

create proc proc_stu

@snamevarchar(20),

@pwdvarchar(20)

as

select * from ren where sname=@sname and pwd=@pwd

go

查看结果:proc_stu'admin','admin'

例2:

下面的存储过程实现用户验证的功能,如果不成功,返回0,成功则返回1.

CREATE PROCEDURE VALIDATE @USERNAME CHAR(20),@PASSWORD CHAR(20),@LEGAL BIT OUTPUT

AS

IF EXISTS(SELECT * FROM REN WHERE SNAME = @USERNAME AND PWD = @PASSWORD)

SELECT @LEGAL = 1

ELSE

SELECT @LEGAL = 0

在程序中调用该存储过程,并根据@LEGAL参数的值判断用户是否合法。

例3:一个高效的数据分页的存储过程可以轻松应付百万数据

CREATE PROCEDURE pageTest --用于翻页的测试

--需要把排序字段放在第一列

(

@FirstIDnvarchar(20)=null, --当前页面里的第一条记录的排序字段的值@LastIDnvarchar(20)=null, --当前页面里的最后一条记录的排序字段的值@isNext bit=null, --true1 :下一页;false0:上一页

@allCount int output, --返回总记录数

@pageSize int output, --返回一页的记录数

@CurPage int --页号(第几页)0:第一页;-1最后一页。

)

AS

if @CurPage=0--表示第一页

begin

--统计总记录数

select @allCount=count(ProductId) from Product_test

set @pageSize=10

--返回第一页的数据

select top 10

ProductId,

ProductName,

Introduction

from Product_test order by ProductId

end

elseif @CurPage=-1--表示最后一页

select * from

(select top 10ProductId,

ProductName,

Introduction

from Product_test order by ProductIddesc ) as aa

order by ProductId

else

begin

if @isNext=1

--翻到下一页

select top 10ProductId,

ProductName,

Introduction

from Product_test where ProductId> @LastID order by ProductId

else

--翻到上一页

select * from

(select top 10ProductId,

ProductName,

Introduction

from Product_test where ProductId< @FirstID order by ProductIddesc) as bb order by ProductId end

SQL Server2000常用语句

SQL Server 2000常用命令,语法使用方法 (1) 数据记录筛选: sql="select * from 数据表 where 字段名=字段值 order by 字段名 [desc]" sql="select * from 数据表 where 字段名 like '%字段值%' order by 字段名 [desc]" sql="select top 10 * from 数据表 where 字段名 order by 字段名 [desc]" sql="select * from 数据表 where 字段名 in ('值1','值2','值3')" sql="select * from 数据表 where 字段名 between 值1 and 值2" (2) 更新数据记录: sql="update 数据表 set 字段名=字段值 where 条件表达式" sql="update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式" (3) 删除数据记录: sql="delete from 数据表 where 条件表达式" sql="delete from 数据表" (将数据表所有记录删除) (4) 添加数据记录: sql="insert into 数据表 (字段1,字段2,字段3 …) values (值1,值2,值3 …)" sql="insert into 目标数据表 select * from 源数据表" (把源数据表的记录添加到目标数据表) (5) 数据记录统计函数: AVG(字段名) 得出一个表格栏平均值 COUNT(*|字段名) 对数据行数的统计或对某一栏有值的数据行数统计 MAX(字段名) 取得一个表格栏最大的值 MIN(字段名) 取得一个表格栏最小的值 SUM(字段名) 把数据栏的值相加 引用以上函数的方法:

最新SAS中的SQL语句大全

SAS中的SQL语句完全教程之一:SQL简介与基本查询功能 本系列全部内容主要以《SQL Processing with the SAS System (Course Notes)》为主进行讲解,本书是在网上下载下来的,但忘了是在哪个网上下的,故不能提供下载链接了,需要的话可以发邮件向我索取,我定期邮给大家,最后声明一下所有资料仅用于学习,不得用于商业目的,否则后果自负。 1 SQL过程步介绍 1.1 SQL过程步可以实现下列功能: 查询SAS数据集、从SAS数据集中生成报表、以不同方式实现数据集合并、创建或删除SAS 数据集、视图、索引等、更新已存在的数据集、使得SAS系统可以使用SQL语句、可以和SAS的数据步进行替换使用。注意,SQL过程步并不是用来代替SAS数据步,也不是一个客户化的报表工具,而是数据处理用到的查询工具。 1.2 SQL过程步的特征 SQL过程步并不需要对每一个查询进行重复、每条语句都是单独处理、不需要print过程步就能打印出查询结果、也不用sort过程步进行排序、不需要run、要quit来结束SQL过程步 1.3 SQL过程步语句 SELECT:查询数据表中的数据 ALTER:增加、删除或修改数据表的列 CREATE:创建一个数据表 DELETE:删除数据表中的列 DESCRIBE:列出数据表的属性 DROP:删除数据表、视图或索引 INSERT:对数据表插入数据 RESET:没用过,不知道什么意思 SELECT:选择列进行打印 UPDATE:对已存在的数据集的列的值进行修改 2 SQL基本查询功能 2.1 SELECT语句基本语法介绍 SELECT object-item <, ...object-item> FROM from-list > >; 这里SELECT:指定被选择的列 FROM:指定被查询的表名 WHERE:子数据集的条件

SQL数据库基础知识集合

1、数据库简介: 数据库是专门开发数据管理的软件,或者说专门管理数据的软件就是数据库。 数据库存在的意义就是:减轻开发人员的负担。数据库是一个综合的软件,那么我们不需要队要进行2进制保存数据进行处理了,但是却是要与数据库产生交互,那么命令式SQL,有技巧的,数据库就是万物皆关系(面向对象,万物皆是对象)有所区别。 2、数据库的发展: 一开始的是层次化的数据与网状数据库,后来也发现使用确实很麻烦。 于是到了1970年EF.Cold博士(IBM公司的研究员)开创了关系性的数据库的先驱,发表了关系性数据库的论文,但是由于当时电脑硬件的局限性,大家觉得跑如此大的程序不值得。后来,Oracle(甲骨文)公司的创始人,拉里带领Oracle投入到关系型数据库的研发,并且得到了一个大客户—美国国防部。随即开始世界刮起了关系数据库的旋风,随后各个公司都纷纷推出自己的数据库系统。比如:IBM的DB2 ,还有风靡一时的DBS3。 但是随即出现不兼容的问题,由于最早的时候都没有进行没规范。所以到最后各个数据库巨头统一了操纵数据库的SQL(结构化Struct数据查询语言)变成了标准语言,而关系型数据库也俨然变成大家的宠儿,Oracle也从一个小公司,变成现在的数据库巨头,而我们的微软也推出了SQLServer。当然还有PHPer的最爱mySQL。但是mySQL被SUN,SUN 被Oracle收购,现在有免费版与收费专业版了。所以我们学习SQL语言的时候,先学共同点,再学特异性。各种数据库软件在使用上有一点区别。 3、数据库系统详解: 为适应数据处理的需要而发展起来的一种较为理想的数据处理的核心机构。计算机的高速处理能力和大容量存储器提供了实现数据管理自动化的条件。 数据库系统一般由4个部分组成: 数据库,即存储在磁带、磁盘、光盘或其他外存介质上、按一定结构组织在一起的相关数据的集合。(个体) 数据库管理系统(DBMS)。一组能完成描述、管理、维护子数据库的程序系统。它按照一种公用的和可控制的方法完成插入新数据、修改和检索原有数据的操作。 数据库管理员(DBA)。 用户和应用程序。(微软的称作SSMS) 4、数据库系统的基本要求是: 1、能够保证数据的独立性。数据和程序相互独立有利于加快软件开发速度,节省开发费用。 2、冗余数据少,数据共享程度高。 3、系统的用户接口简单,用户容易掌握,使用方便。 4、能够确保系统运行可靠,出现故障时能迅速排除,能够保护数据不受非受权者访问或破坏,能够防止错误数据的产生,一旦产生也能及时发现。 5、有重新组织数据的能力,能改变数据的存储结构或数据存储位置,以适应用户操作特性的变化,改善由于频繁插入、删除操作造成的数据组织零乱和时空性能变坏的状况。 6、具有可修改性和可扩充性、可维护性。 7、能够充分描述数据间的内在联系。 5、数据库(Database): 由众多的数据、数据表、约束、存储过程、函数、视图、索引构成的一个数据存储与交互单元,是按照数据结构来组织、存储和管理数据的仓库。 6、数据表(table): 数据表,实际上是一个二维表。一般是围绕一个事务、动作记录,或者是一个信息主题作为一个数据表。数据表由行与列构成。 7、列(column、field): 列,其实就是字段。也是决定了信息的基本单元。列,包含有数据类型的设定。 8、行(row、record): 行,实际上就是一条基本信息。一行包含了多列数据的存储的信息。所以一行也有一条记录之称。 9、行业(trade) 一个行业一种需求,没一个需求每一种数据库的设计模式与思想。每个行业的数据设计的重点都是不同的。侧重查询(要求低范式)还是操作(要求搞范式)就是自己选择的问题了。 10、索引(index) 索引是一个单独的、物理的数据库结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引其实就是一个B+树,但是这个索引是N^n层数次方的。目的就是在数据库中划分出一定的区域优化查询。可以提升大量数据的查询速度。索引一般可以分为:基于字段优化查询速度的普通索引、唯一性索引、主键索引、全文索引、单列与多列索引。现在由于数据库系统的不断升级,我们只要设定索引就可以了,不需要特殊的维护。而且数据在查询的时候也会根据查询适当地选择是利用索引查询,还是仅仅是表查询。由于数据库系统的发展,系统内部已经自动帮我们完成对索引的维护。但是在设计的时候要考虑到索引的损耗问题。数据库DB就像是一个字典,索引就是根据指定字段制成的快速指向。由于只是指向数据对象标识,真正的数据是存储在DB中,所以查询速度极快。但是额外的内存与硬盘花销也是一个需要考虑的问题。比如:增加、删除、修改时数据库都要对索引进行维护,但是这样也是为了最后查询的效率的提升,特别适合W行级别的数据查询。而索引可以分为:隐式索引(针对单个字段)、唯一索引(唯一约束)、函数索引(函数(字段))、聚簇索引(主键)、组合索引(最多16个field)与全文索引(text)。一般索引会占用原数据库大小的20%。 11、视图(view) 固化的子查询,将一个子查询起了一个固化的名字,保存在数据库中,方便以后的使用。其实调用大量的Join来进行一个查询一般也是用视图。视图与索引都是为了优化查询的速度与语句。视图是优化语句,索引是优化单查速度。一般是DBA来设定数据库的视图,封装内部数据库的数据关系,范式修改数据容易了,视图让我们查询复杂关系的数据变得容易。 12、触发器(trigger) 触发器(trigger)是个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由个事件来触发,比如当对一个表进行操作(insert,delete,update)时就会激活它执行。触发器经常用于加强数据的完整性约束和业务规则等。触发器可以从DBA_TRIGGERS ,USER_TRIGGERS 数据字典中查到。 13、SQLServer数据类型详解

数据库基本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

SAS中的SQL语句大全

S A S中的S Q L语句完全教程之一:S Q L简介与基本查询功能本系列全部内容主要以《SQLProcessingwiththeSASSystem(CourseNotes)》为主进行讲解,本书是在网上下载下来的,但忘了是在哪个网上下的,故不能提供下载链接了,需要的话可以发邮件向我索取,我定期邮给大家,最后声明一下所有资料仅用于学习,不得用于商业目的,否则后果自负。 1SQL过程步介绍 过程步可以实现下列功能: 查询SAS数据集、从SAS数据集中生成报表、以不同方式实现数据集合并、创建或删除SAS数据集、视图、索引等、更新已存在的数据集、使得SAS系统可以使用SQL 语句、可以和SAS的数据步进行替换使用。注意,SQL过程步并不是用来代替SAS数据步,也不是一个客户化的报表工具,而是数据处理用到的查询工具。 过程步的特征 SQL过程步并不需要对每一个查询进行重复、每条语句都是单独处理、不需要print 过程步就能打印出查询结果、也不用sort过程步进行排序、不需要run、要quit来结束SQL过程步 过程步语句 SELECT:查询数据表中的数据 ALTER:增加、删除或修改数据表的列 CREATE:创建一个数据表 DELETE:删除数据表中的列 DESCRIBE:列出数据表的属性 DROP:删除数据表、视图或索引

RESET:没用过,不知道什么意思 SELECT:选择列进行打印 UPDATE:对已存在的数据集的列的值进行修改 2SQL基本查询功能 语句基本语法介绍 SELECTobject-item<,...object-item> FROMfrom-list > >; 这里SELECT:指定被选择的列 FROM:指定被查询的表名 WHERE:子数据集的条件 GROUPBY:将数据集通过group进行分类 HAVING:根据GROUPBY的变量得到数据子集 ORDERBY:对数据集进行排序 语句的特征 选择满足条件的数据、数据分组、对数据进行排序、对数据指定格式、一次最多查询32个表。这里还要提到的就是,在SAS系统中,对于表名和变量名一般不超过32个字符,对于库名,文件引用名,格式等不能超过8个字符 关键字 Validate关键字只存在于select语句中、可以在不运行查询的情况下测试语句的语

(整理)SQLServer数据库基本知识点.

SQL Server 数据库基本知识点一、数据类型

二、常用语句 (用到的数据库Northwind) 查询语句 简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的 表或视图、以及搜索条件等。例如,下面的语句查询Customers 表中公司名称为“Alfreds Futterkiste”的ContactName字段和Address字段。 SELECT ContactName, Address FROM Customers WHERE CompanyName='Alfreds Futterkiste' (一) 选择列表 选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。 1、选择所有列 例如,下面语句显示Customers表中所有列的数据: SELECT * FROM Customers 2、选择部分列并指定它们的显示次序查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 例如: SELECT ContactName, Address FROM Customers 3、更改列标题 在选择列表中,可重新指定列标题。定义格式为: 列标题 as 列名 列名列标题如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题: SELECT ContactName as 联系人名称, Address as地址 FROM Customers 4、删除重复行

SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认 为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 SELECT DISTINCT(Country) FROM Customers 5、限制返回的行数 使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT 时,说明n是 表示一百分数,指定返回的行数等于总行数的百分之几。 例如: SELECT TOP 2 * FROM Customers SELECT TOP 20 PERCENT * FROM Customers (二)FROM子句 FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列 所属的表或视图。例如在Orders和Customers表中同时存在CustomerID列,在查询两个表中的CustomerID时应 使用下面语句格式加以限定: select * from Orders,Customers where Orders.CustomerID =Customers.CustomerID 在FROM子句中可用以下两种格式为表或视图指定别名: 表名 as 别名 表名别名 select * from Orders as a,Customers as b where a.CustomerID =b.CustomerID SELECT不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。 例如: select * from Customers where CustomerID in (select CustomerID from Orders where EmployeeID=4) 此例中,将SELECT返回的结果集合给予一别名CustomerID,然后再从中检索数据。 (三) 使用WHERE子句设置查询条件 WHERE子句设置查询条件,过滤掉不需要的数据行。例如下面语句查询年龄大于20的数据:select CustomerID from Orders where EmployeeID=4

常用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 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、说明:几个高级查询运算词

数据库基本知识(自己整理,初学者可以看一下,基于某MySql)

数据库

1常见数据库 1.1MySql : 甲骨文 1.2Oracle: 甲骨文 1.3SQL Server: 微软 1.4Sybase: 赛尔斯 1.5DB2: IBM 2MySql基础知识 2.1关系结构数据模型数据库 2.2SQL(Structured Query Language)结构化查询语言2.2.1DDL(Data Definition Language):数据定义语言,用来定义数据库对象:库、表、列等 操作数据库 CREATE DATABASE [IF NOT EXISTS]mydb1 USE mydb1 DROP DATABASE [IF NOT EXISTS] mydb1

ALTER DATABASE mydb1 CHARACTER SET utf8 操作表 插入表 CREATE TABLE stu( sid CHAR(6), sname VARCHAR(20), age INT, gender VARCHAR(10) ); 更改表 ALTER TABLE t_user ADD (student varcher(20)) ALTER TABLE t_user MODIFY gender CHAR(20) ALTER TABLE t_user CHANGE gender VARCHER(20) ALTER TABLE t_user REMANE genderTO genders ALTER TABLE t_user DROP gender 删除表 DROP TABLE t_user 2.2.2DML(Data Manipulation Language):数据操作语言,用来定义数据库记录(数据) 插入数据 INSERT INTO t_user VALUES() INSERT INTO 表名 VALUES(值1,值2,…)

50个经典SQL查询语句

--一个题目涉及到的50个Sql语句 --(下面表的结构以给出,自己在数据库中建立表.并且添加相应的数据,数据要全面些. 其中Student表中,SId为学生的ID) ------------------------------------表结构-------------------------------------- --学生表tblStudent(编号StuId、姓名StuName、年龄StuAge、性别StuSex) --课程表tblCourse(课程编号CourseId、课程名称CourseName、教师编号TeaId) --成绩表tblScore(学生编号StuId、课程编号CourseId、成绩Score) --教师表tblTeacher(教师编号TeaId、姓名TeaName) --------------------------------------------------------------------------------- --1、查询“001”课程比“002”课程成绩高的所有学生的学号; Select StuId From tblStudent s1 Where (Select Score From tblScore t1 Where t1.StuId=s1.stuId And t1.CourseId='001')> (Select Score From tblScore t2 Where t2.StuId=s1.stuId And t2.CourseId='002') --2、查询平均成绩大于60分的同学的学号和平均成绩; Select StuId,Avg(Score) as AvgScore From tblScore Group By StuId Having Avg(Score)>60 --3、查询所有同学的学号、姓名、选课数、总成绩; Select StuId,StuName, SelCourses=(Select Count(CourseId) From tblScore t1 Where t1.StuId=s1.StuId), SumScore=(Select Sum(Score) From tblScore t2 Where t2.StuId=s1.StuId) From tblStudent s1 --4、查询姓“李”的老师的个数; Select Count(*) From tblTeacher Where TeaName like '李%' --5、查询没学过“叶平”老师课的同学的学号、姓名; Select StuId,StuName From tblStudent Where StuId Not In ( Select StuID From tblScore sc Inner Join tblCourse cu ON sc.CourseId=cu.CourseId Inner Join tblTeacher tc ON cu.TeaId=tc.TeaId Where tc.TeaName='叶平' ) --6、查询学过“001”并且也学过编号“002”课程的同学的学号、姓名; Select StuId,StuName From tblStudent st Where (Select Count(*) From tblScore s1 Where s1.StuId=st.StuId And

数据库经典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 注:索引是不可更改的,想更改必须删除重新建。

SQL必须掌握的基础知识

SQL必须掌握的基础知识 说明:SQL是操作数据库内容的,可以进行select查询检索,update修改,insert into添加,delete 删除 以下内容举例,均参考下表: 常用关键词含义的简单说明(不区分大小写) SELECT ---------查询,检索数据库,从数据库表中检索数据行和列 INSERT --------添加数据,向数据库表添加新数据行 DELETE --------删除数据,从数据表中删除数据行 UPDATE --------更新数据库表中的数据 WHERE --------设置条件 以下内容都是在WHERE内使用 LIKE --------模糊查询 IN --------包含 BETWEEN --------在两者之间 TOP -----------前几条信息 LIMIT --------用于在MYSQL中设置显示的记录位置和数量 以上内容在WHERE内使用 ORDER BY --------设置排序规则,以下两个是它的两个规则 ASC --------排序规则为升序(默认),123456 DESC -------- 排序规则为降序,654321 SELECT 基本语句 主要被用来对数据库进行查询并返回符合用户查询标准的结果集。最基本的SELECT 语句格式为:SELECT [ALL|DISTINCT] select_list FROM table_list [WHERE search_condition] [GROUP BY group_by_expression] [HAVING search_condition] [ORDER BY order_list[ASC|DESC]] 其中[]内是可选内容,详细使用方法介绍如下: [ALL|DISTINCT]:ALL显示表中满足条件的所有记录,DISTINCT删除查询结果中重复的记录,只返回满足条件的第一条记录。 [WHERE search_condition]:设置筛选条件,过滤掉不需要的记录。WHERE子句可以包含以下各种运算符:1.比较运算符(大小比较):>、>=、=、<、<=、<>、!>、!< 2.范围运算符(表达式值是否在指定范围内):BETWEEN……AND……、NOT… BETWEEN……AND…… 3.列表运算符(判断表达式是否为列表中指定的项):IN(项1,项2,……)、NOT IN(项1,项2,……)

SQL SEVER 常用语句

整理了一下,希望对大家有用 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、信息:是现实世界事物的存在方式或运动状态的反映。或认为,信息是一种已经被加工为特定形式的数据。 信息的主要特征是:信息的传递需要物质载体,信息的获取和传递要消费能量;信息可以感知;信息可以存储、压缩、加工、传递、共享、扩散、再生和增值 2、数据:数据是信息的载体和具体表现形式,信息不随着数据形式的变化而变化。数据有文字、数字、图形、声音等表现形式。 3、数据与信息的关系:一般情况下将数据与信息作为一个概念而不加区分。 二、数据处理与数据管理技术: 1、数据处理:数据处理是对各种形式的数据进行收集、存储、加工和传输等活动的总称。 2、数据管理:数据收集、分类、组织、编码、存储、检索、传输和维护等环节是数据处理的基本操作,称为数据管理。数据管理是数据处理的核心问题。 3、数据库技术所研究的问题不是如何科学的进行数据管理。 4、数据管理技术的三个阶段:人工管理,文件管理和数据库系统。 第二节:数据库技术的发展 一、数据库的发展:数据库的发展经历了三个阶段: 1、层次型和网状型: 代表产品是1969年IBM公司研制的层次模型数据库管理系统IMS。 2、关系型数据型库: 目前大部分数据库采用的是关系型数据库。1970年IBM公司的研究员E.F.Codd提出了关系模型。其代表产品为sysem R和Inges。 3、第三代数据库将为更加丰富的数据模型和更强大的数据管理功能为特征,以提供传统数据库系统难以支持的新应用。它必须支持面向对象,具有开放性,能够在多个平台上使用。 二、数据库技术的发展趋势: 1、面向对象的方法和技术对数据库发展的影响: 数据库研究人员借鉴和吸收了面向对旬的方法和技术,提出了面向对象数据模型。 2、数据库技术与多学科技术的有机组合: 3、面向专门应用领域的数据库技术 三、数据库系统的组成:

新手学习SQL必看,SQL基础知识

新手学习SQL必看,SQL基础知识 SQL定义:SQL是一种面向数据库的通用数据处理语言规范,能完成以下几类功能:提取查询数据,插入修改删除数据,生成修改和删除数据库对象,数据库安全控制,数据库完整性及数据保护控制。 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) db2数据类型 CHAR():定长字符串最大长度为 254 VARCHAR():变长字符最大长度为 4000 SMALLINT:短整型数字长度为 2 字节 INTEGER:整型数字长度为 4 字节 REAL:单精度浮点 32 位近似值 DOUBLE:双精度浮点 64 位近似值 DECIMAL(m,n):数字精度为m小数位为n DATE:日期时间 TIME:日期时间 TIMESTAMP:日期时间 DDL—数据库定义语言:直接提交的。 CREATE:用于创建数据库对象。 DECLARE:除了是创建只在过程中使用的临时表外,DECLARE语句和CREATE语句非常相似。唯一可以被声明的对象是表。并且必须放入用户临时表空间。 DROP:可以删除任何用CREATE(数据库对象)和DECLARE(表)创建的对象。

ALTER:允许修改某些数据库对象的信息。不能修改索引。 下面主要基于对象介绍基本的语法: 1、数据库: 创建数据库:CREATE DATABASE database-name [USING CODESET codeset TERRI TORY territory] 注:代码页的问题。 删除数据库:drop database dbname 2、表: 创建新表: 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 修改表: 增加一个列: Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加va rchar类型的长度。添加主键: Alter table tabname add primary key(col) 删除主键: Alter table tabname drop primary key(col) 删除表:drop table tabname 3、表空间: 创建表空间:create tablespace tbsname pagesize 4k managed by database using (file ‘f ile’ size) 表空间加入容器:alter tablespace tablespace_name add(file 'filename' size) 注:该操作是不可逆的,加入容器后将不能将其删除,因此在加入的时候注意。 删除表空间:drop tablespace tbsname 4、索引:

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.da t' --- 开始 备份 BACKUP DATABASE pubs TO testBack 4,说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not n ull],..) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definition onl y 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 on tabname 注:索引是不可更改的,想更改必须删除重新建. 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 范围

Sql Server 基础知识总结

一、语句建库、表 1.回顾 1)数据库文件 主数据文件(.mdf) 次数据文件(.ndf) 日志文件(.ldf) 2.建库 1)语法

2)必要属性 存储位置 初始大小 增长速度 3)示例 4)注意事项 单位必须完整(必须具有”B”,eg:KB、MB等) 数据库的逻辑名称不能出现重复

5)建议 将数据文件和日志文件进行分开存放 数据库的初始大小及增长速度计算后在定义 3.删除数据库 1)语法 2)示例 3)建议 删除数据库之前尽量使用判断语句检查数据库是否存在。 4.建表 1)数据类型 字符类型 ?Char :非unicode的固定长度的字符类型 ?Varchar :非unicode的可变长度的字符类型 ?Nchar :unicode的固定长度的字符类型

?Nvarchar :unicode的可变长度的字符类型 ?Text 数值 Int、float、decimal、number 布尔类型 Bit 日期类型 Datetime 二进制 Image 2)语法 注:特征—非空(Not null)、自增(Identity) 3)示例

4)数据完整性 实体完整性 ?要求 唯一标识每行记录 ?实现 主键、唯一、自增 域完整性 ?要求 保证列数据的有效性 ?实现 数据类型、非空、默认值、检查 引用完整性 ?要求 引用完整性约束保证两(多)表之间数据的有效性 ?实现 引用关系 自定义完整性 ?要求 通过编写自定义的逻辑或规则实现数据的验证。 ?实现 存储过程、触发器、规则

5)约束(Constraint) 主键约束(Primary Key Constraint) 作用:数据唯一且不允许出现null值 唯一约束(Unique Key Constraint) 作用:数据唯一但允许出现一次null值 检查约束(Check Constraint) 作用:数据符合规则 引用约束(Foreign Key……References) 作用:保证两表之间数据的有效性 默认值约束(Default Constraint) 作用:提供默认的字段值 6)命名规则 缩写_列名 7)分类 行内约束

相关文档
最新文档