快捷搜索:
来自 网络数据库 2019-09-12 04:57 的文章
当前位置: 67677新澳门手机版 > 网络数据库 > 正文

新京葡娱乐场网址:数据库基础

一、基础

一、基础

  1、表达:成立数据库

  1、表明:创造数据库

  CREATE DATABASE database-name

  CREATE DATABASE database-name

  2、表明:删除数据库

  2、表达:删除数据库

  drop database 数据库名

  drop database 数据库名

  3、说明:备份sql server

  3、说明:备份sql server

  --- 创立 备份数据的 device

  --- 成立 备份数据的 device

  USE master

  USE master

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

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

  --- 开始 备份

  --- 开始 备份

  BACKUP DATABASE pubs TO testBack

  BACKUP DATABASE pubs TO testBack

  4、表明:创制新表  

  4、表达:创制新表  

      create table 表名 (列名 数据类型 primary key(设置主键)

      create table 表名 (列名 数据类型 primary key(设置主键)

                          列名 数据类型 

                          列名 数据类型 

                          列名 数据类型 not null(不能够安装空值))

                          列名 数据类型 not null(无法设置空值))

  依照已部分表创立新表:

  依照已有的表成立新表:

  A:create table tab_new like tab_old (使用旧表创造新表)

  A:create table tab_new like tab_old (使用旧表创设新表)

  B:create table tab_new as select col1,col2… from tab_old definition only

  B:create table tab_new as select col1,col2… from tab_old definition only

  5、表明:删除新表

  5、表达:删除新表

  drop table tabname

  drop table tabname

  6、表达:增加叁个列

  6、表明:增添三个列

  Alter table tabname add column col type

  Alter table tabname add column col type

  注:列扩充后将无法去除。DB第22中学列加上后数据类型也无法改变,独一能改造的是充实varchar类型的长短。

  注:列扩张后将不能去除。DB第22中学列加上后数据类型也不能够改换,独一能改换的是充实varchar类型的长短。

  7、表达:增多主键: Alter table tabname add primary key(col)

  7、表达:增添主键: Alter table tabname add primary key(col)

  表达:删除主键: Alter table tabname drop primary key(col)

  表达:删除主键: Alter table tabname drop primary key(col)

  8、表达:创造索引:create [unique] index idxname on tabname(col….)

  8、表达:创立索引:create [unique] index idxname on tabname(col….)

  删除索引:drop index idxname

  删除索引:drop index idxname

  注:索引是不可退换的,想改换必须删除重新建。

  注:索引是不行退换的,想改动必须删除重新建。

  9、表达:创立视图:create view viewname as select statement

  9、表达:创制视图:create view viewname as select statement

  删除视图:drop view viewname

  删除视图:drop view viewname

  10、表明:多少个简易的主干的sql语句

  10、表达:多少个大致的骨干的sql语句

  选择:select * from table1 where 范围

  选择:select * from table1 where 范围

  插入:insert into table1(field1,field2) values(value1,value2)

  插入:insert into table1(field1,field2) values(value1,value2)

  删除:delete from table1 where 范围

  删除:delete from table1 where 范围

  更新:update table1 set field1=value1 where 范围

  更新:update table1 set field1=value1 where 范围

  查找:select * from table1 where 田野(field)1 like ’%value1%’ ---like的语法很精妙,查资料!

  查找:select * from table1 where 田野(field)1 like ’%value1%’ ---like的语法很精细,查资料!

  排序:select * from table1 order by field1,field2 [desc]

  排序:select * from table1 order by field1,field2 [desc]

  总数:select count as totalcount from table1

  总数:select count as totalcount from table1

  求和:select sum(field1) as sumvalue from table1

  求和:select sum(field1) as sumvalue from table1

  平均:select avg(field1) as avgvalue from table1

  平均:select avg(field1) as avgvalue from table1

  最大:select max(field1) as maxvalue from table1

  最大:select max(field1) as maxvalue from table1

  最小:select min(field1) as minvalue from table1

  最小:select min(field1) as minvalue from table1

  11、表达:多少个高等查询运算词

  11、表达:多少个高档查询运算词

  A: UNION 运算符

  A: UNION 运算符

  UNION 运算符通过结合别的三个结实表(举例 TABLE1 和 TABLE2)并消去表中其余重复行而派生出一个结出表。当 ALL 随 UNION 一同使用时(即 UNION ALL),不化解重复行。二种情形下,派生表的每一行不是来源于 TABLE1 就是来自 TABLE2。

  UNION 运算符通过整合别的多少个结实表(举例 TABLE1 和 TABLE2)并消去表中其他重复行而派生出一个结实表。当 ALL 随 UNION 一同行使时(即 UNION ALL),不免除重复行。二种意况下,派生表的每一行不是发源 TABLE1 便是发源 TABLE2。

  B: EXCEPT 运算符

  B: EXCEPT 运算符

  EXCEPT 运算符通过包涵具备在 TABLE1 中但不在 TABLE2 中的行并解决全体重复行而派生出一个结出表。当 ALL 随 EXCEPT 一齐使用时 (EXCEPT ALL),不清除重复行。

  EXCEPT 运算符通过富含具有在 TABLE1 中但不在 TABLE2 中的行并消除全数重复行而派生出贰个结实表。当 ALL 随 EXCEPT 一齐行使时 (EXCEPT ALL),不排除重复行。

  C: INTERSECT 运算符

  C: INTERSECT 运算符

  INTE昂CoraSECT 运算符通过只囊括 TABLE1 和 TABLE2 中都部分行并解决全数重复行而派生出二个结出表。当 ALL 随 INTE索罗德SECT 一齐使用时 (INTEENVISIONSECT ALL),不清除重复行。

  INTEXC60SECT 运算符通过只囊括 TABLE1 和 TABLE2 中都有的行并化解全数重复行而派生出多个结实表。当 ALL 随 INTEKugaSECT 一齐利用时 (INTEKugaSECT ALL),不排除重复行。

  注:使用运算词的多少个查询结果行必需是千篇一律的。

  注:使用运算词的多少个查询结果行必须是同样的。

  12、表达:使用外接连

  12、说明:使用外接连

  A、left (outer) join:

  A、left (outer) join:

  左外连接(左连接):结果集几席卷连接表的相配行,也蕴涵左连接表的装有行。

  左外连接(左连接):结果集几席卷连接表的相配行,也席卷左连接表的具备行。

  SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c

  SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c

  B:right (outer) join:

  B:right (outer) join:

  右外接连(右连接):结果集既富含连接表的相称连接行,也席卷右连接表的有所行。

  右外接连(右连接):结果集既包括连接表的相配连接行,也包涵右连接表的保有行。

  C:full/cross (outer) join:

  C:full/cross (outer) join:

  全外连接:不仅仅包括符号连接表的相称行,还满含多少个三番五次表中的全数记录。

  全外连接:不独有富含符号连接表的相配行,还包蕴多个三番五次表中的全体记录。

  12、分组:Group by:

  12、分组:Group by:

  一张表,一旦分组 完结后,查询后只好获得组相关的音信。

  一张表,一旦分组 完结后,查询后只可以博取组相关的新闻。

  组相关的消息:(总括消息) count,sum,max,min,avg 分组的职业)

  组相关的音信:(总计音讯) count,sum,max,min,avg 分组的正规)

  在SQLServer中分组时:不可能以text,ntext,image类型的字段作为分组依附

  在SQLServer中分组时:无法以text,ntext,image类型的字段作为分组依据

  在selecte总计函数中的字段,无法和一般的字段放在一同;

  在selecte计算函数中的字段,不可能和平凡的字段放在一块儿;

  13、对数据库进行操作:

  13、对数据库进行操作:

  分离数据库: sp_detach_db; 附加数据库:sp_attach_db 后接表明,附加须要总体的路线名

  分离数据库: sp_detach_db; 附加数据库:sp_attach_db 后接申明,附加要求总体的路子名

  14.哪些修改数据库的名号:

  14.如何修改数据库的称谓:

  sp_renamedb 'old_name', 'new_name'

  sp_renamedb 'old_name', 'new_name'

  二、提升

  二、提升

  1、表达:复制表(只复制结构,源表名:a 新表名:b) (Access可用)

  1、表达:复制表(只复制结构,源表名:a 新表名:b) (Access可用)

  法一:select * into b from a where 1<>1(仅用于SQlServer)

  法一:select * into b from a where 1<>1(仅用于SQlServer)

  法二:select top 0 * into b from a

  法二:select top 0 * into b from a

  2、表明:拷贝表(拷贝数据,源表名:a 指标表名:b) (Access可用)

  2、表明:拷贝表(拷贝数据,源表名:a 指标表名:b) (Access可用)

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

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

  3、表达:跨数据库之间表的正片(具体多少选用相对路线) (Access可用)

  3、表达:跨数据库之间表的正片(具体数额选取相对路线) (Access可用)

  insert into b(a, b, c) select d,e,f from b in ‘具体数据库’ where 条件

  insert into b(a, b, c) select d,e,f from b in ‘具体数据库’ where 条件

  例子:..from b in '"&Server.MapPath(".")&"data.mdb" &"' where..

  例子:..from b in '"&Server.MapPath(".")&"data.mdb" &"' where..

  4、说明:子查询(表名1:a 表名2:b)

  4、说明:子查询(表名1:a 表名2:b)

  select a,b,c from a where a IN (select d from b ) 或者: select a,b,c from a where a IN (1,2,3)

  select a,b,c from a where a IN (select d from b ) 或者: select a,b,c from a where a IN (1,2,3)

  5、表达:展现小说、提交人和尾声回复时间

  5、表达:突显小说、提交人和末段回复时间

  select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b

  select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b

  6、表达:外接连查询(表名1:a 表名2:b)

  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

  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 )

  7、表达:在线视图查询(表名1:a )

  select * from (SELECT a,b,c FROM a) T where t.a > 1;

  select * from (SELECT a,b,c FROM a) T where t.a > 1;

  8、表明:between的用法,between限制查询数据范围时包涵了边界值,not between不饱含

  8、表明:between的用法,between限制查询数据范围时包罗了边界值,not between不包含

  select * from table1 where time between time1 and time2

  select * from table1 where time between time1 and time2

  select a,b,c, from table1 where a not between 数值1 and 数值2

  select a,b,c, from table1 where a not between 数值1 and 数值2

  9、表达:in 的应用格局

  9、表明:in 的选择办法

  select * from table1 where a [not] in (‘值1’,’值2’,’值4’,’值6’)

  select * from table1 where a [not] in (‘值1’,’值2’,’值4’,’值6’)

  10、表达:两张关联表,删除主表中曾经在副表中尚无的消息

  10、表明:两张关联表,删除主表中已经在副表中从不的新闻

  delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1 )

  delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1 )

  11、表明:四表联查难题:

  11、表明:四表联合检查难点:

  select * 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 .....

  select * 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、表达:日程安排超前五分钟提示

  12、表达:日程布署超前五分钟提醒

  SQL: select * from 日程布署 where datediff('minute',f初叶时间,getdate())>5

  SQL: select * from 日程布置 where datediff('minute',f开头时间,getdate())>5

新京葡娱乐场网址 ,  13、表明:一条sql 语句化解数据库分页

  13、说明:一条sql 语句消除数据库分页

  select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段

  select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段

  具体完成:

  具体落到实处:

  关于数据库分页:

  关于数据库分页:

  declare @start int,@end int

  declare @start int,@end int

  @sql nvarchar(600)

  @sql nvarchar(600)

  set @sql=’select top’ str(@end-@start 1) ’ from T where rid not in(select top’ str(@str-1) ’Rid from T where Rid>-1)’

  set @sql=’select top’ str(@end-@start 1) ’ from T where rid not in(select top’ str(@str-1) ’Rid from T where Rid>-1)’

  exec sp_executesql @sql

  exec sp_executesql @sql

  注意:在top后无法直接跟一个变量,所以在实质上采纳中独有这么的扩充超过常规规的拍卖。Rid为一个标记列,纵然top后还会有具体的字段,那样做是老大有裨益的。因为这样能够制止 top的字段假诺是逻辑索引的,查询的结果后实际表中的不同(逻辑索引中的数据有非常大概率和数据表中的不雷同,而查询时一旦处在索引则率先查询索引)

  注意:在top后不能够从来跟二个变量,所以在实际利用中独有如此的举行特殊的管理。Rid为贰个标志列,借使top后还会有具体的字段,那样做是极度有低价的。因为如此能够幸免 top的字段纵然是逻辑索引的,查询的结果后其实表中的不雷同(逻辑索引中的数占有希望和数目表中的差别样,而查询时一旦处在索引则第一查询索引)

  14、说明:前10条记录

  14、说明:前10条记录

  select top 10 * form table1 where 范围

  select top 10 * form table1 where 范围

  15、表明:选取在每一组b值同样的数额中对应的a最大的笔录的兼具音讯(类似那样的用法能够用于论坛每月名次榜,每月抢手产品深入分析,按学科成绩排行,等等.)

  15、表明:选取在每一组b值一样的多寡中对应的a最大的记录的有所新闻(类似那样的用法能够用来论坛每月排名的榜单,每月销路广产品深入分析,按学科战表排行,等等.)

  select a,b,c from tablename ta where a=(select max(a) from tablename tb where tb.b=ta.b)

  select a,b,c from tablename ta where a=(select max(a) from tablename tb where tb.b=ta.b)

  16、表达:包罗持有在 TableA 中但不在 TableB和TableC 中的行并化解全体重复行而派生出三个结实表

  16、表明:包涵具备在 TableA 中但不在 TableB和TableC 中的行并消除全部重复行而派生出四个结实表

  (select a from tableA ) except (select a from tableB) except (select a from tableC)

  (select a from tableA ) except (select a from tableB) except (select a from tableC)

  17、表达:随机抽取10条数据

  17、表达:随机抽出10条数据

  select top 10 * from tablename order by newid()

  select top 10 * from tablename order by newid()

  18、表明:随机选用记录

  18、表明:随机挑选记录

  select newid()

  select newid()

  19、表明:删除重复记录

  19、表达:删除重复记录

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

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

  2),select distinct * into temp from tablename

  2),select distinct * into temp from tablename

  delete from tablename

  delete from tablename

  insert into tablename select * from temp

  insert into tablename select * from temp

  评价: 这种操作牵连大气的多少的位移,这种做法不符合大体量但多少操作

  评价: 这种操作牵连大气的数码的活动,这种做法不相符大体量但多少操作

  3),举例:在三个外表表中程导弹入数据,由于有个别原因首先次只导入了一部分,但很难判定具体地点,这样只有在下一遍全部导入,那样也就发生非常多种新的字段,怎么样删除重复字段

  3),比方:在二个外界表中程导弹入数据,由于一些原因首先次只导入了一片段,但很难确定具体地方,那样独有在下一回全部导入,那样也就发生众多再度的字段,如何删除重复字段

  alter table tablename

  alter table tablename

  --增多贰个自增列

  --增多叁个自增列

  add column_b int identity(1,1)

  add column_b int identity(1,1)

  delete from tablename where column_b not in(

  delete from tablename where column_b not in(

  select max(column_b) from tablename group by column1,column2,...)

  select max(column_b) from tablename group by column1,column2,...)

  alter table tablename drop column column_b

  alter table tablename drop column column_b

  20、说明:列出数据库里有着的表名

  20、表达:列出数据Curry具有的表名

  select name from sysobjects where type='U' // U代表客户

  select name from sysobjects where type='U' // U代表客商

  21、表达:列出表里的兼具的列名

  21、说明:列出表里的全体的列名

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

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

  22、表达:列示type、vender、pcs字段,以type字段排列,case能够方便地落到实处多种接纳,类似select 中的case。

  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

  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

  展现结果:

  显示结果:

本文由67677新澳门手机版发布于网络数据库,转载请注明出处:新京葡娱乐场网址:数据库基础

关键词: