数据库小结壹

 一、基础

一、创造数据库

CREATE DATABASE database-name

二、删除数据库

 drop database dbname

3、备份sql server

 — 成立 备份数据的 device

USE master

EXEC sp_addumpdevice ‘disk’,’testBack’,
:\mssql7backup\MyNwind_1.dat’ — 开始 备份

BACKUP DATABASE pubs TO testBack

4、创立新表

 create table tabname(col1 type1 [not null] [primary key],col2 type2
[not null],..)

例子:

CREATE TABLE tableA(

    [id] [int] NOT NULL PRIMARY KEY,

    [Name][nvarchar](50) NOT NULL,

    [Age] [int] NOT NULL,)

依附已有些表创造新表:

A:create table tab_new like tab_old (使用旧表创立新表SQL
server2010不可以)

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

C: select *into  tableAnew from
tableA(复制表结构和表数据。旧表创立新表无主键。SQL server200玖Koleos2能够用
亲测)

D:select * into table三 from tableA where
壹=二;(复制表数据,主键复制可是去)

E: insert into table3 select * from tableA where
id=壹;(倘使表存在,导入数据)

F: select * into table五 from tableA where
一<>一;(旧表创设新表,唯有表结构)

伍、删除新表

drop table tabname

陆、扩充二个列

Alter table tabname add column col type

注:列增添后将不能去除。DB2中列加上后数据类型也不能够退换,唯一能更改的是充实varchar类型的长度。

七、增添主键:

 Alter table tabname add primary key(col)

证实:删除主键:

 Alter table tabname drop primary key(col)

八、创造索引:

create [unique] index idxname on tabname(col….) 删除索引:drop index
idxname

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

九、创建视图:

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 table一 where 田野1 like ’%value一%’
—like的语法很精细,查资料

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

总数:select count as totalcount from table,

求和: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

1一、多少个高档查询运算词

A: UNION 运算符

UNION 运算符通过整合别的三个结实表(举个例子 TABLE一 和
TABLE二)并消去表中其它重复行而派生出一个结出表。当 ALL 随 UNION
一同使用时(即 UNION
ALL),不清除重复行。二种情况下,派生表的每一行不是来源于 TABLE1 正是来自
TABLE二。

B: EXCEPT 运算符

EXCEPT 运算符通过包蕴持有在 TABLE1 中但不在 TABLE第22中学的行并消除全部重复行而派生出二个结出表。当 ALL 随 EXCEPT 一齐行使时
(EXCEPT ALL),不拔除重复行。

C: INTERSECT 运算符

NTE汉兰达SECT 运算符通过只包含 TABLE一 和 TABLE第22中学都部分行并消除全体重复行而派生出三个结出表。当 ALL 随 INTE宝马7系SECT
一齐行使时 (INTE牧马人SECT ALL),不清除重复行。
注:使用运算词的多少个查询结果行必须是一律的

12、使用外接连

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

     在行使left join时,on和where条件的分别如下:一、 on条件是在白云苍狗目前表时使用的原则,它不管on中的条件是还是不是为真,都会再次回到左侧表中的笔录。能够明白为,左表记录封存,右表不知足条件的填写为null
贰、where条件是在目前表生成好后,再对一时半刻表进行过

滤的准绳。那时早已远非left
join的意义(必须回到左边表的记录)了,条件不为真的就总体过滤掉。

 

B:right (outer) join:

右外连接(右连接):结果集既蕴含连接表的相配连接行,也包蕴右连接表的有所

行。

C:full/cross (outer) join:

全外连接:不仅囊括符号连接表的相配行,还包涵四个一而再表中的全体记录。

13、分组:Group by:

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

组相关的音信:(总结音信) count,sum,max,min,avg 分组的科班)

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

在selecte总括函数中的字段,无法和日常字段放在一块儿;

1④、对数据库进行操作:

  分离数据库:EXEC sp_detach_db DatabaseName

外加数据库:sp_attach_db后接注明,

内需总体的路线名

一伍.什么修改数据库的名号:

sp_renamedb ‘old_name’, ‘new_name’

16、左匹配、模糊、右匹配、全匹配

左相称:左侧开端是字段条件的比方一左相配,正是一上马的字段

右相称:左边初步是标准的

17、SQL模糊查询条件的各种相称情势

壹、%:表示大肆0个或七个字符。可相配任性类型和长度的字符,有些意况下倘诺华语,请使用三个百分号(%%)表示:

例如 SELECT * FROM [user] WHERE u_name LIKE ‘%三%’
将会把u_name为“张三”,“张猫叁”、“三脚猫”,“唐三藏”等等有“叁”的笔录全寻觅来。

再比方说须求搜索u_name中既有“三”又有“猫”的记录,请使用and条件
SELECT * FROM [user] WHERE u_name LIKE ‘%三%’ AND u_name LIKE
‘%猫%’

再例如 SELECT * FROM [user] WHERE u_name LIKE ‘%三%猫%’
尽管如此能寻觅出“三脚猫”,但不可能寻找出符合条件的“张猫三”。备注:%三:表示左相称。3%:表示右相配。%叁%:表示模糊查询

②、_ :
表示任意单个字符。相称单个率性字符,它常用来限制表达式的字符长度语句:

例如 SELECT * FROM [user] WHERE u_name LIKE ‘_三_’
只找出“唐三藏”,这样u_name为多个字且中间叁个字是“叁”的;

再例如 SELECT * FROM [user] WHERE u_name LIKE ‘三__’
只寻觅“3脚猫”那样name为五个字且第1个字是“三”的;

③、[
] :表示括号内所列字符中的2个(类似正则表达式)。钦定多个字符、字符串或限制,需要所相配对象为它们中的任三个。

例如 SELECT * FROM [user] WHERE u_name LIKE ‘[张李王]三’
将找寻“张叁”、“李叁”、“王叁”(而不是“张李王三”);

再例如 [ ]
内有壹多种字符(01234、abcde之类的)则可略写为“0-四”、“a-e”
SELECT * FROM [user] WHERE u_name LIKE ‘老[1-9]’
将找出“老1”、“老2”、……、“老9”;

例如要找“-”字符请将其放在第二个人:’张3[-1-9]’;

Oracle 10g以上的版本用法为:

select * from flow_user where regexp_like(username, ‘[张王李]飞’)

④、[^ ] :表示不在括号所列之内的单个字符。其取值和 []
一样,但它供给所匹配对象为内定字符以外的任叁个字符。

例如 SELECT * FROM [user] WHERE u_name LIKE ‘[^张李王]三’
将搜索不姓“张”、“李”、“王”的“赵三”、“孙三”等;
再例如 SELECT * FROM [user] WHERE u_name LIKE ‘老[^1-4]’
将排除“老1”到“老4”,寻找“老5”、“老6”、……、“老9”。

注:oracle like 不扶助正则,你能够行使扶助like的正则regexp_like

伍、查询内容包括通配符时

* 表示查找的是兼备音讯,举个例子select * from tbl_user 

由于通配符的原故,导致大家询问特殊字符“%”、“_”、“[”的口舌无法寻常达成,而把尤其字符用“[
]”括起便可符合规律查询。据此大家写出以下函数:
function sqlencode(str)
str=replace(str,”[“,”[[]”) ‘此句一定要在最前
str=replace(str,”_”,”[_]”)
str=replace(str,”%”,”[%]”)

sqlencode=str
end function

注:
在询问前将待查字符串先经该函数管理就可以,并且在网页上一而再数据库用到那类的查询语句时侯要专注:
例如 Select * FROM user Where name LIKE ‘老[^1-4]’

18、select isnull(max(字段1+1),1) from table

 从table中查询“字段一+1”的最大值,如若“字段一+1”的最大值为null,则值取一,否则取“字段一+一”的最大值。

相关文章