1.名词解释

    a.SQL:结构化查询语言

    b.ANSI:U.S.国标组织

    c.数据库正是多少集结

    下列语句部分是Mssql语句,不可能在access中应用。

2.SQL限令的体系

    2.1 数据定义语言

CREATE TABLE
ALTER TABLE
DROP TABLE
CREATE INDEX
ALTER INDEX
DRROP INDEX
CREATE VIEW
DROP VIEW

    2.2 数据操作语言

INSERT
DELETE
UPDATE

    2.3 数据查询语言

SLECT

    2.4 数据调控语言

ALTER PASSWORD
GRANT
REVOKE
CREATE SYNONYM (同义字)

    2.5 数据管理命令

START AUDIT
STOP AUDIT

    5.6 事务调控命令

COMMIT (保存数据库事务)
ROLLBACK (撤销数据库事务)
SAVEPOINT (创建标记点用于回退)
SET TRANSACTION (设置事务的名称)

SQL分类:
DDL—数据定义语言(CREATE,ALTEVanquish,DROP,DECLARE)
DML—数据垄断语言(SELECT,DELETE,UPDATE,INSERT)
DCL—数据调整语言(GRANT,REVOKE,COMMIT,ROLLBACK)

3.表的咬合

    关系型数据库由互相关系的表组成,表之间通过机要字互相关系

    a. 字段(属性)

    b. 记录(风流倜傥行数据卡塔 尔(英语:State of Qatar)

    c. 列(包含特定字段的漫天消息卡塔尔

    d. 主键 区分表里的每一条数据

    e. NULL

  首先,简单介绍根底语句:
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

  注:列扩大后将无法去除。DB第22中学列加上后数据类型也无法更正,唯大器晚成能修改的是充实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

  6、表达:外接连查询(表名1:a 表名2:b)
        select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON
a.a = b.c

  7、表明:在线视图查询(表名1:a )
        select * from (SELECT a,b,c FROM a) T where t.a > 1;

  8、表明:between的用法,between限定查询数据范围时富含了边界值,not
between不包括
        select * from table1 where time between time1 and time2
        select a,b,c, from table1 where a not between 数值1 and 数值2

  9、表达:in 的选取办法
        select * from table1 where a [not] in
(‘值1’,’值2’,’值4’,’值6’)

  10、表明:两张关联表,删除主表中早已在副表中从未的新闻
        delete from table1 where not exists ( select * from table2
where table1.field1=table2.field1 )

  11、表达:四表联合检查难题:
        select *4503.com, from a left inner join b on a.a=b.b right inner join c
on a.a=c.c inner join d on a.a=d.d where …..

  12、表明:日程布署提前四分钟提醒
        SQL: select * from 日程布置 where
datediff(‘minute’,f开始时间,getdate())>5

  13、表达:一条sql 语句化解数据库分页
        select top 10 b.* from (select top 20 主键字段,排序字段 from
表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段
order by a.排序字段

  14、说明:前10条记录
        select top 10 * form table1 where 范围

  15、表明:采取在每生机勃勃组b值相近的数码中对应的a最大的记录的有所音信(肖似这样的用法能够用于论坛每月排名的榜单,每月卖得快产品解析,按学科成绩排行,等等.)
        select a,b,c from tablename ta where a=(select max(a) from
tablename tb where tb.b=ta.b)

  16、表达:满含具有在 TableA 中但不在 TableB和TableC
中的行并排除全体重复行而派生出叁个结实表
        (select a from tableA ) except (select a from tableB) except
(select a from tableC)

  17、表明:随机抽出10条数据
        select top 10 * from tablename order by newid()

  18、表达:随机筛选记录
        select newid()

  19、表达:删除重复记录
        Delete from tablename where id not in (select max(id) from
tablename group by col1,col2,…)

  20、说明:列出数据Curry具有的表名
            select name from sysobjects where type=’U’

    21、表明:列出表里的富有的
            select name from syscolumns where id=object_id(‘TableName’)

  22、表明:列示type、vender、pcs字段,以type字段排列,case能够方便地得以达成多种选取,相似select
中的case。
            select type,sum(case vender when ‘A’ then pcs else 0
end),sum(case vender when ‘C’ then pcs else 0 end),sum(case vender when
‘B’ then pcs else 0 end) FROM tablename group by type

  显示结果:
type    vender pcs
电脑 A 1
电脑 A 1
光盘 B 2
光盘 A 2
手机 B 3
手机 C 3

  23、说明:起初化表table1
        TRUNCATE TABLE table1