SQL - 2.基础语法

一、SQL分类:

DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE)

DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT)

DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)

二、SQL基础语句

1.创建数据库

Create Database 数据库名称

2.删除数据库

Drop Database 数据库名称

3.备份数据库

创建备份数据  device

USE master

EXEC sp_addumpdevice 'disk', 'testBack', 'c:mssql7backupMyNwind_1.dat'

开始备份

BACKUP DATABASE 数据库名称 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

复制表(只复制结构,源表名:tab_new 新表名:tab_old) 

A:select * into tab_new from tab_old where 1<>1

B:select top 0 * into tab_new from tab_old

5.删除新表

drop table 表名

6.增加一个列

Alter table tabname add 列名称 列的数据类型

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.几个高级查询运算词

A: UNION 运算符

UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。

B: EXCEPT 运算符

EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。

C: INTERSECT 运算符

INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。

注:使用运算词的几个查询结果行必须是一致的。

11.使用外连接

A、left outer join: 左外连接(左连接):结果集既包括连接表的匹配行,也包括左连接表的所有行。

B:right outer join: 右外连接(右连接):结果集既包括连接表的匹配行,也包括右连接表的所有行。

C:full outer join: 全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。

12.拷贝表(拷贝数据,源表名:a 目标表名:b)

insert into b(a, b, c) select d,e,f from a;

13.跨数据库之间表的拷贝(具体数据使用绝对路径)

insert into b(a, b, c) select d,e,f from a in ‘具体数据库’ where 条件例子:..from a in '"&Server.MapPath(".")&"data.mdb" &"' where..

14.between的用法,between限制查询数据范围时包括了边界值,not between不包括

15.随机取出10条数据

select top 10 * from tablename order by newid()

16.删除重复记录

Delete from tablename where id not in (select max(id) from tablename group by col1,col2,...)

17.列出一个表中所有的列名称

select name from syscolumns where id=object_id('TableName')

18.选择从10到15的记录(思路:按ID顺序取前15,然后倒叙取前5)

select top 5 * from (select top 15 * from table order by id asc) table_别名 order by id desc

19.成绩表字段为学号,课程和成绩,按照学号分组,用一句SQL求每个学生成绩比较高的两个课程。

select * from 成绩表 a where 成绩  in (select top 2 成绩 from 成绩表 b where a.学号=b.学号 order by 成绩)

20.SQL Server 2000中使用的一些数据库对象

表格,视图,用户定义的函数,以及存储过程,触发器

 21.什么是索引

简单地说,索引是一个数据结构,用来快速访问数据库表格或者视图里的数据。在SQL Server里,它们有两种形式:聚集索引和非聚集索引。聚集索引在索引的叶级保存数据。这意味着不论聚集索引里有表格的哪个(或哪些)字段,这些字段都会按顺序被保存在表格。由于存在这种排序,所以每个表格只会有一个聚集索引非聚集索引在索引的叶级有一个行标识符。这个行标识符是一个指向磁盘上数据的指针。它允许每个表格有多个非聚集索引。

22.什么是主键/外键?

主键是表格里的(一个或多个)字段,只用来定义表格里的行;主键里的值总是唯一的。

外键是一个用来建立两个表格之间关系的约束。这种关系一般都涉及一个表格里的主键字段与另外一个表格(尽管可能是同一个表格)里的一系列相连的字段。那么这些相连的字段就是外键。

 

posted @ 2018-07-02 16:43  Like_Moon  阅读(167)  评论(0编辑  收藏  举报