创建数据库 创建之前判断该数据库是否存在 if exists (select * from sysdatabases where name='databaseName') drop database databaseName go Create DATABASE databasename on primary-- 默认就属于primary文件组,可省略 ( /*--数据文件的具体描述--*/ name=‘databasename_data’,-- 主数据文件的逻辑名称 filename=‘'所存位置:\databasename_data.mdf’, -- 主数据文件的物理名称 size=数值mb, --主数据文件的初始大小 maxsize=数值mb, -- 主数据文件增长的最大值 filegrowth=数值%--主数据文件的增长率 ) log on ( /*--日志文件的具体描述,各参数含义同上--*/ name='databasename_log', -- 日志文件的逻辑名称 filename='所存目录:\databasename_log.ldf', -- 日志文件的物理名称 size=数值mb, --日志文件的初始大小 filegrowth=数值mb--日志文件的增长值 ) 删除数据库 drop database databasename 备份sql server --- 创建备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat' --- 开始备份 BACKUP DATABASE pubs TO testBack 创建新表 create table tabname(col1 type1 [not null] [primary key] identity(起始值,递增量) ,col2 type2 [not null],..)--primary key为主键 identity表示递增数量 根据已有的表创建新表: A:go use 原数据库名 go select * into 目的数据库名.dbo.目的表名 from 原表名(使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definition only 创建序列 create sequence SIMON_SEQUENCE minvalue 1 -- 最小值 maxvalue 999999999999999999999999999 -- 最大值 start with 1 -- 开始值 increment by 1 -- 每次加几 cache 20; 删除表 drop table tabname--这是将表连同表中信息一起删除但是日志文件中会有记录 删除表中信息 delete from tabname-这是将表中信息删除但是会保留这个表 增加一个列 Alter table tabname add colname coltype 删除一个列 Alter table tabname drop column colname 添加主键 Alter table tabname add primary key(col) 说明:删除主键:Alter table tabname drop primary key(col) 创建索引 create [unique] index idxname on tabname(col…。) 删除索引:drop index idxname on tabname 注:索引是不可更改的,想更改必须删除重新建。 创建视图 create view viewname as select statement 删除视图:drop view viewname 基本的sql语句 (1) 数据记录筛选: sql="select * from 数据表 where字段名=字段值 order by字段名[desc]" sql="select * from 数据表 where字段名like '%字段值%' order by 字段名 [desc]" sql="select top 10 * from 数据表 where字段名=字段值 order by 字段名 [desc]" sql="select top 10 * from 数据表 order by 字段名 [desc]" sql="select * from 数据表 where字段名in ('值1','值2','值3')" sql="select * from 数据表 where字段名between 值1 and 值2" (2) 更新数据记录: sql="update 数据表 set字段名=字段值 where 条件表达式" sql="update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式" (3) 删除数据记录: sql="delete from 数据表 where 条件表达式" sql="delete from 数据表" (将数据表所有记录删除) (4) 添加数据记录: sql="insert into 数据表 (字段1,字段2,字段3 …) values (值1,值2,值3 …)" sql="insert into 目标数据表 select * from 源数据表" (把源数据表的记录添加到目标数据表) (5) 数据记录统计函数: AVG(字段名) 得出一个表格栏平均值 COUNT(*;字段名) 对数据行数的统计或对某一栏有值的数据行数统计 MAX(字段名) 取得一个表格栏最大的值 MIN(字段名) 取得一个表格栏最小的值 SUM(字段名) 把数据栏的值相加 引用以上函数的方法: sql="select sum(字段名) as 别名 from 数据表 where 条件表达式" set rs=conn.excute(sql) 用 rs("别名") 获取统计的值,其它函数运用同上。 查询去除重复值:select distinct * from table1 (5) 数据表的建立和删除: CREATE TABLE 数据表名称(字段1 类型1(长度),字段2 类型2(长度) …… ) (6) 单列求和: SELECT SUM(字段名) FROM 数据表 编辑本段最新语句查询数据库中含有同一这字段的表: select name from sysobjects where xtype = 'u' and id in(select id from syscolumns where name = 's3') 根据出生日期可以算出年龄: select datediff(year,scrq,'2013') as 年龄 from page_shsjgrgl 根据当前年份自动算出年龄 select datediff(year,csny,cast(YEAR(GETDATE()) as char)) 年 select year(djsj) from page_shsjgrgl 月 select month(djsj) from page_shsjgrgl 日 select day(djsj) from page_shsjgrgl 在同一数据库中复制表结构: select * into a from b where 1<>1 当 IDENTITY_INSERT 设置为 OFF 时,不能为表 'aa' 中的标识列插入显式值。 set identity_insert aa ON----设置打开, 批量插入: insert into aa(Customer_ID, ID_Type, ID_Number) select Customer_ID, ID_Type, ID_Number from TCustomer; set identity_insert aa OFF---关闭 不同数据库之间的复制: 复制结构: select * into test.dbo.b from GCRT.dbo.page_shsjgrgl where 1<>1 复制内容: insert into test.dbo.b(xm,ssdq) select xm,ssdq from GCRT.dbo.page_shsjgrgl 查看数据库中所有的数据表表名: select name from SysObjects where type='u' 查看数据库中所有表含有同一字段的表: select name from sysobjects where xtype = 'u' and id in(select id from syscolumns where name = '同一字段') 查看数据表中的所有字段: select name from Syscolumns where id=object_id('表名') 查询数据库时随机10条记录: select top 10 * from td_areacode order by newid() 修改字段类型: ALTER TABLE 表名 ALTER COLUMN 字段名 varchar(30) NOT NULL use ZHJIANGJGYL declare @temp nvarchar(30) set @temp = 'ZWI4' sel
SQL 语句集合
最新推荐文章于 2022-03-15 11:18:11 发布