加入收藏 | 设为首页 | 会员中心 | 我要投稿 源码门户网 (https://www.92codes.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SqlServer基本语法和语句大全_B/S开发框架

发布时间:2022-11-02 14:34:15 所属栏目:MsSql教程 来源:互联网
导读: MySQL学习地址:MySQL常用语法和语句大全_B/S开发框架
数据操作类
SELECT --查询 INSERT --插入 DELETE --删除 UPDATE --更新
数据定义类
CREATE TABLE --创建表 DROP TABLE --删除表

MySQL学习地址:MySQL常用语法和语句大全_B/S开发框架

数据操作类

SELECT --查询 INSERT --插入 DELETE --删除 UPDATE --更新

数据定义类

CREATE TABLE --创建表 DROP TABLE --删除表 ALTER TABLE --修改表结构 CREATE INDEX --创建索引

DROP INDEX --删除索引 CREATE VIEW --创建视图 DROP VIEW --删除视图 CREATE PROCEDURE --创建存储过程 DROP PROCEDURE --删除存储过程

统计函数

AVG --求平均值 MAX --求最大值 MIN --求最小值 COUNT --统计数目 SUM --求和

事务

COMMIT --结束当前事务 ROLLBACK --中止当前事务 SET TRANSACTION --定义当前事务数据访问特征

日期函数

GetDate()--获取当时时间 YEAR()--年份值 MONTH()--月份值 DAY()--日期值DATEADD( datepart, number,date)--在日期中添加或减去指定的时间间隔

DATEDIFF(datepart ,startdate ,enddate)--函数返回两个指定日期之间的时间 DATENAME(XX , Date)--函数以字符串的形式返回日期的指定部分 DATEPART( datepart,date )--返回日期/时间的单独部分。

游标

DECLARE --为查询设定游标 EXPLAN --为查询描述数据访问计划 OPEN --检索查询结果打开一个游标 FETCH --检索一行查询结果

CLOSE --关闭游标 PREPARE --为动态执行准备SQL 语句 EXECUTE --动态地执行SQL 语句 DESCRIBE --描述准备好的查询

上面介绍了基本语句关键词,在B/S开发框架中,应用了大量的数据库知识,下面我来看看数据库的一些常用和高级的sql语句。

常识

1、创建数据库

CREATE DATABASEdbname

2、删除数据库

drop database dbname

3、备份

--- 创建 备份数据的 device

USE master

EXEC sp_addumpdevice 'disk', 'dbback', 'd:\sqlbackup\dbname.dat'

--- 开始 备份

BACKUP DATABASE pubs TO dbback

4、创建表

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

复制表结构:

A:createtable newtable like oldtabe (复制表结构)

B:createtable newtable as select coloum1,coloum2,coloum3,… from oldtable definition only

5、删除表

drop table tablename

6、增加列

Alter table tablename add column columnname type

7、添加主键: Alter table tablename add primarykey(columnname)

删除主键: Alter table tablename drop primary key(columnname)

8、创建索引:create[unique] index indexname on tablename(columnname….)

删除索引:drop index indexname

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

9、创建视图:create view viewname as select statement

删除视图:drop view viewname

10、基本的sql语句集

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

删除:delete from table where ...

更新:update table set field=valuewhere ...

选择:select * from tablewhere ...

查找:select * from tablewhere fieldlike ’%value%’ ---模糊查找

总数:select count(1)as totalcount from table

最大:select max(field) as maxvfrom table

最小:select min(field) as minvfrom table

求和:select sum(field) as sumvfrom table

平均:select avg(field) as avgvfrom table

11、三个逻辑运算符

A: UNION并集运算符

UNION 多个表数据集合去重后结果表,带ALL不去重复行,表的数据并集。

B: EXCEPT 不包含运算符

A表 EXCEPT B表,表示包括在A表中但不在B表中的行并去掉重复行的出结果表,带 ALL 不去除重复行。

C: INTERSECT 交集运算符(去重)

A表INTERSECT B表,表示A、B表公共部分并去掉重复行的结果表。带 ALL不去重复行。

12、内连接和外连接

A、left (outer) join:

左外连接(左连接):左表数据全部保留,右表数据只保留连接条件过滤后的数据。

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

B:full/cross (outer) join:

全外连接:两个连接表中的所有记录。

13、Order by 和 Group by:

Order by按照条件来进行正序和逆序排序。

根据group by中条件来分成若干组,然后进行统计,必须带分组统计函数:count,sum,max,min,avg等。

14、where 后 1=1mssql复制表,1=2,11

“1=1” 是表示选择全部, “1=2”全部不选,“11”全部不选

15:获取当前数据库中的所有用户表

select Name from sysobjects where xtype='u' and status>=0

16:获取某一个表的所有字段

select name from syscolumns where id=object_id('表名')

select name from syscolumns where id in (select id from sysobjects where type = 'u' and name = '表名')

两种方式的效果相同

17:查看当前数据库中所有存储过程

select name as 存储过程名称 from sysobjects wherextype='P'

18:查询某一个表的字段和数据类型

select column_name,data_type from information_schema.columns where table_name = '表名'

下面为B/S开发框架数据库语句高级进阶知识分享

进阶

1、子查询(表名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 (...)

2、between,between查询数据范围内的结果集,查询数据范围时包括了边界值,not between不在数据范围内的结果集。

select * from table where a between '值1' and '值2'

select * from table where a not between ‘数值1‘ and ‘数值2’

3、in,表是在数据范围内的结果集, not in 反之。

select * from table where a in (‘值1’,’值2’,’值3’,’值4’,’值5’)

4、两张关联表,删除表1中已经在表2中没有的信息

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

5、多表内连接查询公共数据:

select * from A join B on A.a=B.a join C on A.a=C.a where...

6、复制表(只复制表结构,源表名:a 新表名:b)

select * into b from a where 11(仅用于SQL Server)

or select top 0 * into b from a

7、拷贝表(拷贝数据,源表名:a 目标表名:b)

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

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

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

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

9、前n条记录

select top n * form table where...

10、删除表或者表数据

TRUNCATE TABLE tablename --清空表,不留痕迹 Delete from TABLE tablename --仅仅删除数据 drop tabel tablename --删除表,包括表结构

11、选择从第m到第n条记录的结果集

select top (n-m) * from (select top n * from tablename order by id asc) table order by id desc

12、随机选择记录

select newid()

13、随机取出n条数据

select top n * from tablename order by newid()

14、删除重复记录,请用查询分析器分析性能开销!

1)delete from tablename where id not in (select max(id) from tablename group by column1,column2,column3...)

2)select distinct * into temp from tablename;

delete from tablename;

insert into tablename select* from temp;

15、case when then使用

select type,(case columnname when 'xx' then 'oo'when 'xxx' then 'ooo'else 'over' end) FROM tablename

(编辑:源码门户网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!