常用SQL语句

一、 修改数据库定序 语法:ALTER DATABASE "&Database Name&"SET SINGLE_USER WITH ROLLBACK IMMEDIATE ALTER DATABASE "&Database Name&" COLLATE "&定序名称&" ALTER DATABASE "&Database Name&"SET MULTI_USER WITH ROLLBACK IMMEDIATE 如:ALTER DATABASE SODDB SET SINGLE_USER WITH ROLLBACK IMMEDIATE ALTER DATABASE SODDB COLLATE Chinese_Taiwan_Stroke_CI_AI ALTER DATABASE SODDB SET MULTI_USER WITH ROLLBACK IMMEDIATE二、修改数据表字段定序语法:Alter Table "&TableName &"Alter Column "&ColumnName&" "&ColumnType&"如:Alter Table SODM87 Alter Column COMP_ID char(10) COLLATE Chinese_Taiwan_Stroke_CI_AS NULL三、变动数据表中的字段:1、添加字段语法:ALTER TABLE "&TableName&" ADD "&ColumnName&" DataType如:ALTER TABLE SODM87 ADD CLASSNO_SDATE CHAR(9) NOT NULL DEFAULT(' ')2、修改字段类型语法:ALTER TABLE "&TableName&" ALTER COLUMN "&ColumnName&" NewDataType如:ALTER TABLE SODM87 ALTER COLUMN APPLY_NAME Varchar(10) NULL 3、修改域名语法:EXEC SP_RENAME 'TableName.ColumnName','NewColumnName','COLUMN'如:将表SODM87的域名APPLY_NAME修改为APPLY_ID,语句为:EXEC SP_RENAME SODM87.APPLY_NAME','APPLY_ID','COLUMN'4、修改栏为名称和类型如果同时修改栏为名称和类型,则需要分两步进行,同时使用如上3、4两步即可。5、删除字段语法:ALTER TABLE "&TableName&" DROP COLUMN "&ColumnName&" 如:ALTER TABLE SODM87 DROP COLUMN CLASSNO_SDATE四、添加索引 语法:CREATE INDEX [索引名称] ON "&TableName&" (索引键) ON [PRIMARY]如:CREATE INDEX [IDX_MAIN_CNO_CODE] ON [dbo].[ SODM87]([MAIN_CNO_CODE]) ON [PRIMARY]五、添加主键语法:ALTER Table "&TableName&" ADD CONSTRAINT"&PK Name&" PRIMARY KEY CLUSTERED (构成主键字段组合 ) ON [PRIMARY] 如:ALTER TABLE [PM048TB] ADD CONSTRAINT [PK_PM048TB] PRIMARY KEY CLUSTERED ( [USER_CODE] ASC, [LOG_DATE] ASC, [PROJ_CODE] ASC, [TASK_KIND] ASC, [TASK_CODE] ASC ) ON [PRIMARY]六、删除主键 语法:ALTER TABLE "&Table Name&"DROP CONSTRAINT "&PK Name&" 如:IF EXISTS (SELECT * FROM dbo.sysindexes WHERE id = OBJECT_ID(N'[dbo].[PM048TB]') AND name = N'PK_PM048TB') ALTER TABLE [dbo].[PM048TB] DROP CONSTRAINT [PK_PM048TB]七、修改表的主键修改主键是:先删除已有的主键,再添加新的主键,如:IF EXISTS (SELECT * FROM dbo.sysindexes WHERE id = OBJECT_ID(N'[dbo].[PM048TB]') AND name = N'PK_PM048TB') ALTER TABLE [dbo].[PM048TB] DROP CONSTRAINT [PK_PM048TB] ALTER TABLE [PM048TB] ADD CONSTRAINT [PK_PM048TB] PRIMARY KEY CLUSTERED ( [USER_CODE] ASC, [LOG_DATE] ASC, [PROJ_CODE] ASC, [TASK_KIND] ASC, [TASK_CODE] ASC ) ON [PRIMARY] 八、数据库还原(不同版本数据库备份还原,须用命令)语法:USE MASTER RESTORE DATABASE 数据库名称 FROM DISK=档案位置with replace;范例:USE MASTER RESTORE DATABASE APWCDB FROM DISK='C:\APWCDB.BAK'with replace;九、数据库重命名说明:重命名 SQL SERVER 的数据库,必须在 数据库 是 单用户 (Single User)的模式下,才可以更改语法:EXEC sp_dboption 'DatabaseName', 'Single User', 'TRUE' EXEC sp_renamedb 'DatabaseName', 'NewDatabaseName' EXEC sp_dboption 'NewDatabaseName', 'Single User', 'FALSE'范例:将MCTA改名为MCTADB EXEC sp_dboption 'MCTA', 'Single User', 'TRUE' EXEC sp_renamedb 'MCTA', 'MCTADB' EXEC sp_dboption 'MCTADB', 'Single User', 'FALSE'十、多table删除比较好的做法是(SQL Server语法):DELETE FROM TableA FROM TableA TA INNER JOIN TableB TB ON TA.KEY_1=TB.KEY_1 AND TA.KEY_2=TB.KEY_2 AND TA.KEY_3=TB.KEY_3WHERE ……(其它条件)Oracle和DB2语法(也支持以上语法,但以下语法效率更好)DELETE FROM TableA WHERE (KEY_1, KEY_2, KEY_3) IN(SELECT KEY_1, KEY_2, KEY_3 FROM TableB) AND ……(其它条件)十一、用TableB中的数据更新TableAUPDATE TableA SET TEMP_A=B.TEMP_B, NOTE_A=B.NOTE_BFROM TableB TB WHERE TableA.KEY_1=TB.KEY_1 AND TableA.KEY_2=TB.KEY_2 AND TableA.KEY_3=TB.KEY_3AND ……(其它条件)用子查询方法也可以实现这样的更新效果,但是如果更新字段两个以上时,下来没有以上语法好;注:在Oracle 9i及以下版本中以上语法无法实现,需用以下的子查询方式,Oracle10i版本没有试过,待有机会操作后再更新UPDATE TableA SET TEMP_A=(SELECT B.TEMP_B FROM TableB TB WHERE TableA.KEY_1=TB.KEY_1 AND TableA.KEY_2=TB.KEY_2 AND TableA.KEY_3=TB.KEY_3)WHERE ……(其它条件)十二、连接两台数据库语法:EXEC master.dbo.addlinkedserver @server=N'DB别名',@provider=N'SQLNCLI',@provstr=N'DRIVER={SQL Server};SERVER=远程db机器名称或者IP;UID=访问ID;PWD=访问密码;'范例1:EXEC master.dbo.addlinkedserver @server=N'DB_20',@provider=N'SQLNCLI',@provstr=N'DRIVER={SQL Server};SERVER=192.168.1.30;UID=sa;PWD=sa;'范例2:EXEC master.dbo.addlinkedserver 'DB_20', 'SQLNCLI', 'DRIVER={SQL Server};SERVER=192.168.1.30;UID=sa;PWD=sa;'使用方法: SELECT * FROM DB_20.MCTADB.dbo.Table1
第一部分、 基础 1、创建数据库 2、删除数据库 3、备份sql server 4、创建新表 5、删除新表 6、增加一个列 7、添加和删除主键 8、索引 9、视图 10、几个简单的基本的sql语句 11、几个高级查询运算词 12、使用外连接 13、分组:Group by: 14、对数据库进行操作: 15.如何修改数据库的名称: 第二部分、 提升 1、复制表 2、拷贝表 3、跨数据库之间表的拷贝 4、子查询 5、显示文章、提交人和最后回复时间 6、外连接查询 7、在线视图查询 8、between的用法 9、in 的使用方法 10、两张关联表,删除主表中已经在副表中没有的信息 11、四表联查问题 12、日程安排提前五分钟提醒 13、一条sql 语句搞定数据库分页 14、前10条记录 15、选择每组中的最大数 第三部分、 技巧 1、True/False的使用 2、收缩数据库 3、压缩数据库 dbcc shrinkdatabase(dbname) 4、转移数据库给新用户以已存在用户权限 5、检查备份集 6、修复数据库 7、日志清除 8、更改某个表 9、存储更改全部表 10、SQL SERVER中直接循环写入数据 数据开发-经典 1.按姓氏笔画排序 2.数据库加密 3.取回表中字段 4.查看硬盘分区 5.比较A,B表是否相等 6.杀掉所有的事件探察器进程 7.记录搜索: 9:获取当前数据库中的所有用户表 10:获取某一个表的所有字段 11:查看与某一个表相关的视图、存储过程、函数 12:查看当前数据库中所有存储过程 13:查询用户创建的所有数据库 14:查询某一个表的字段和数据类型 15:不同服务器数据库之间的数据操作 SQL Server基本函数 SQLServer2000同步复制技术实现步骤 一、 预备工作 二、 正式配置
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值