iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >数据库基本-SQL语句大全
  • 602
分享到

数据库基本-SQL语句大全

2024-04-02 19:04:59 602人浏览 八月长安
摘要

一、基础 1、说明:创建数据库Create DATABASE database-name2、说明:删除数据库drop database dbname3、说明:备份sql server--- 创建 

一、基础

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
注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加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
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 table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料!
排序:select * from table1 order by field1,field2 [desc]
总数:select count as totalcount from table1
求和: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
11、说明:几个高级查询运算词
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),不消除重复行。
注:使用运算词的几个查询结果行必须是一致的。
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
B:right outer join:
右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。
C:full outer join:
全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。

二、提升

1、说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用)
法一:select  into b from a where 1<>1
法二:select top 0 
 into b from a
2、说明:拷贝表(拷贝数据,源表名:a 目标表名:b) (Access可用)
insert into b(a, b, c) select d,e,f from b;
3、说明:跨数据库之间表的拷贝(具体数据使用绝对路径) (Access可用)
insert into b(a, b, c) select d,e,f from b in ‘具体数据库’ where 条件
例子:..from b in ‘"&Server.MapPath("."&"\data.mdb" &"‘ where..
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)
5、说明:显示文章、提交人和最后回复时间
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)
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  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、说明:列出数据库里所有的表名
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

24、说明:选择从10到15的记录
select top 5  from (select top 15  from table order by id asc) table_别名 order by id desc

三、技巧1、1=1,1=2的使用,在SQL语句组合时用的较多
“where 1=1” 是表示选择全部  “where 1=2”全部不选,
如:
if @strWhere !=‘
br/>1、1=1,1=2的使用,在SQL语句组合时用的较多
“where 1=1” 是表示选择全部  “where 1=2”全部不选,
如:
if @strWhere !=‘
br/>set @strSQL = ‘select count(*) as Total from [‘ + @tblName + ‘] where ‘ + @strWhere
begin
set @strSQL = ‘select count(*) as Total from [‘ + @tblName + ‘]‘
br/>else
begin
set @strSQL = ‘select count(*) as Total from [‘ + @tblName + ‘]‘
我们可以直接写成
set @strSQL = ‘select count(*) as Total from [‘ + @tblName + ‘] where 1=1 安定 ‘+ @strWhere

2、收缩数据库
--重建索引
DBCC REINDEX
DBCC INDEXDEFRAG
--收缩数据和日志
DBCC SHRINKDB
DBCC SHRINKFILE

3、压缩数据库
dbcc shrinkdatabase(dbname)

4、转移数据库给新用户以已存在用户权限
exec sp_change_users_login ‘update_one‘,‘newname‘,‘oldname‘
Go

5、检查备份集
RESTORE VERIFYONLY from disk=‘E:\dvbbs.bak‘

6、修复数据库
Alter DATABASE [dvbbs] SET SINGLE_USER
GO
DBCC CHECKDB(‘dvbbs‘,repair_allow_data_loss) WITH TABLOCK
GO
Alter DATABASE [dvbbs] SET MULTI_USER
GO

7、日志清除SET NOCOUNT ON
DECLARE @LogicalFileName sysname,
br/>SET NOCOUNT ON
DECLARE @LogicalFileName sysname,
        @NewSize INT

USE    tablename            -- 要操作的数据库名Select  @LogicalFileName = ‘tablename_log‘,  -- 日志文件名
br/>Select  @LogicalFileName = ‘tablename_log‘,  -- 日志文件名
        @NewSize = 1                  -- 你想设定的日志文件的大小(M)

-- Setup / initializeDECLARE @OriginalSize int
br/>DECLARE @OriginalSize int
 Where name = @LogicalFileName
br/>  FROM sysfiles
 Where name = @LogicalFileName
br/>        CONVERT(VARCHAR(30),@OriginalSize) + ‘ 8K pages or ‘ +
  Where name = @LogicalFileName
br/>  FROM sysfiles
  Where name = @LogicalFileName
  (DummyColumn char (8000) not null)

DECLARE @Counter  INT,        @StartTime DATETIME,
br/>        @StartTime DATETIME,
br/>Select  @StartTime = GETDATE(),

DBCC SHRINKFILE (@LogicalFileName, @NewSize)EXEC (@TruncLog)
br/>EXEC (@TruncLog)
br/>WHILE    @MaxMinutes > DATEDIFF (mi, @StartTime, GETDATE()) -- time has not expired
br/>      AND (@OriginalSize * 8 /1024) > @NewSize
br/>    Select @Counter = 0
        Insert DummyTrans VALUES (‘Fill Log‘)
        Delete DummyTrans
       Select @Counter = @Counter + 1
br/>      BEGIN -- update
        Insert DummyTrans VALUES (‘Fill Log‘)
        Delete DummyTrans
       Select @Counter = @Counter + 1
br/>    EXEC (@TruncLog)
Select ‘Final Size of ‘ + db_name() + ‘ LOG is ‘ +
        CONVERT(VARCHAR(30),size) + ‘ 8K pages or ‘ +        CONVERT(VARCHAR(30),(size*8/1024)) + ‘MB‘
  FROM sysfiles
  Where name = @LogicalFileName
br/>        CONVERT(VARCHAR(30),(size*8/1024)) + ‘MB‘
  FROM sysfiles
  Where name = @LogicalFileName
SET NOCOUNT OFF

8、说明:更改某个表
exec sp_changeobjectowner ‘tablename‘,‘dbo‘

9、存储更改全部表

Create PROCEDURE dbo.User_ChangeObjectOwnerBatch@OldOwner as NVARCHAR(128),
br/>@OldOwner as NVARCHAR(128),
AS

DECLARE @Name  as NVARCHAR(128)DECLARE @Owner  as NVARCHAR(128)
br/>DECLARE @Owner  as NVARCHAR(128)

DECLARE curObject CURSOR FORselect ‘Name‘  = name,
  ‘Owner‘  = user_name(uid)
from sysobjects
where user_name(uid)=@OldOwner
br/>select ‘Name‘  = name,
  ‘Owner‘  = user_name(uid)
from sysobjects
where user_name(uid)=@OldOwner

OPEN  curObjectFETCH NEXT FROM curObject INTO @Name, @Owner
br/>FETCH NEXT FROM curObject INTO @Name, @Owner
if @Owner=@OldOwner
br/>BEGIN
if @Owner=@OldOwner
br/>  set @OwnerName = @OldOwner + ‘.‘ + rtrim(@Name)
end
-- select @name,@NewOwner,@OldOwner

FETCH NEXT FROM curObject INTO @Name, @Owner
END

close curObject
deallocate curObject
GO

10、SQL SERVER中直接循环写入数据declare @i int
br/>declare @i int
br/>while @i<30
br/>  insert into test (userid) values(@i)
end  

您可能感兴趣的文档:

--结束END--

本文标题: 数据库基本-SQL语句大全

本文链接: https://www.lsjlt.com/news/40068.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SQL数据库语句大全
    目录基础创建数据库删除数据库备份sql server创建 备份数据的 device开始 备份创建新表根据已有的表创建新表:删除新表增加一个列添加主键删除主键创建索引删除索引创建视图删...
    99+
    2024-04-02
  • Mysql数据库之sql基本语句小结
    本文实例讲述了Mysql数据库之sql基本语句。分享给大家供大家参考,具体如下: SQL基本语句 1.登录退出及快捷键: (1)快捷键: ————快速回到行首 ctrl + a ————回到行末 ctr...
    99+
    2024-04-02
  • 【MySQL】MySQL基本语句大全
    个人主页:【😊个人主页】 系列专栏:【❤️MySQL】 文章目录 前言结构化查询语句分类MySQL语句大全📚DDL(对数据库和表的操作)🤖DQL(查询语句)💻...
    99+
    2023-08-17
    mysql 数据库
  • SQL Server数据库的基本操作语句总结
    这篇文章主要介绍“SQL Server数据库的基本操作语句总结”,在日常操作中,相信很多人在SQL Server数据库的基本操作语句总结问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大...
    99+
    2024-04-02
  • 数据库基本操作语句
    这篇文章给大家分享的是有关数据库基本操作语句的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。数据库基本操作语句有哪些?数据库基本操作语句有:1 关于数据库的基本操作SHOW&nbs...
    99+
    2024-04-02
  • SQL基本语句
    SQL基本语句 1.数据记录筛选:sql="select * from 数据表 where字段名=字段值 order by字段名[desc]"(按某个字段值降序排列。默认升序A...
    99+
    2024-04-02
  • mysql数据库基本语法及操作大全
    mysql数据库基本语法 DDL操作 创建数据库 语法:create database 数据库名; 查看所有数据库 语法:show databases; 切换(使用)数据库 语法:u...
    99+
    2024-04-02
  • SQL基本语法用例大全
    文章目录 SQL语法概述简单查询计算列查询条件查询范围查询使用逻辑运算符过滤数据使用IN操作符过滤数据格式化结果集模糊查询行数据过滤数据排序数据统计分析分组总计简单子查询多行子查询多表链接插入...
    99+
    2023-10-11
    sql 数据库
  • SQL语句大全(3)
    1、1=1,1=2的使用,在SQL语句组合时用的较多 “where 1=1” 是表示选择全部    “where 1=2”全部不选, 如: if @strWhere !=''  begin set @strSQ...
    99+
    2023-01-31
    语句 大全 SQL
  • Mysql 最最最基本语句(大全)
    Mysql Workbench 基本语句 前言 SQL语言关键字不区分大小写,但不同的数据库,对于表名和列名,有的数据库区分大小写,有的数据库不区分大小写。 一、创建数据库 create data...
    99+
    2023-09-06
    mysql 数据库 sql
  • mysql,用sql语句,建立学生-课程数据库基本表
    首先要准备三个表Student学生表、Course课程表、SC选课表 学生表学号姓名年龄性别院系StudentSnoSnameSageSsexSdept 课程表课程号课程名先行课学分CourseCnoCnameCpnoCcredit 选课表...
    99+
    2023-10-12
    数据库 mysql sql
  • SQL常用语句大全
    我们在进行开发工作时,对数据库的操作是必不可少的,熟练掌握SQL语句可以让我们对数据库的数据处理变得非常简单,所以学习SQL语句是非常有必要的,下面汇总了一些常用的SQL语句 SQL语句的类型 DDL(Data Definition Lan...
    99+
    2023-08-31
    sql 数据库
  • SQL语句大全(详解)
    SQL 前言1 DDL1.1 显示所包含的数据库1.2 创建数据库1.3 删除数据库1.4 使用数据库1.4.1 创建表1.4.2 查看表的结构1.4.3 查看当前数据库下的所有表1.4.4 ...
    99+
    2023-10-26
    sql 数据库 mysql
  • 【SQL基础】SQL增删改查基本语句
    目录 1 SQL 增删改查基本语句2 select 语句2.1 select 基本语句2.2 Select .. where 语句2.3 Select .. order by 语句2...
    99+
    2023-10-04
    sql 数据库 注入 database mysql
  • 【MySQL】数据库SQL语句之DML
    目录 前言: 一.DML添加数据 1.1给指定字段添加数据 1.2给全部字段添加数据 1.3批量添加数据 二.DML修改数据 三.DML删除数据 四.结尾 前言:   时隔一周,啊苏今天来更新啦,简单说说这周在做些什么吧,上课、看书、...
    99+
    2023-08-31
    数据库 sql mysql
  • MySQL数据库 | SQL语句详解
    MySQL数据库基本操作——DDL DDL解释: 数据库的常用操作 表结构的常用操作 修改表结构 数据库的常用操作 查看所有的数据库show databases;创建数据库create database if not exists 表名;切...
    99+
    2023-08-23
    数据库 sql mysql
  • 数据库SQL语句的使用
    这篇文章主要讲解了“数据库SQL语句的使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“数据库SQL语句的使用”吧!1、创建数据库 create ...
    99+
    2024-04-02
  • 使用SQL语句查询学生数据库中学生信息 —14条基本查询语句
    SQL语句不区分大小写 调用数据库(数据库创建见上一篇文章) use STU_Informationgo 查询各位学生的学号、班级和姓名 --1.查询各位学生的学号、班级和姓名select SNo,ProClass,SN from...
    99+
    2023-09-29
    数据库 mysql
  • sql插入语句的基本语法
    小编给大家分享一下sql插入语句的基本语法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在SQL中我们可以使用insert in...
    99+
    2024-04-02
  • mysql数据库操作_高手进阶常用的sql命令语句大全
    mysql数据库操作sql命令语句大全:三表连表查询、更新时批量替换字段部分字符、判断某一张表是否存在、自动增长恢复从1开始、查询重复记录、更新时字段值等于原值加上一个字符串、更新某字段为随机值、复制表数据到另一个表、创...
    99+
    2022-11-20
    mysql sql语句 sql命令
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作