您的位置:首页 > 数据库

自己总结的一些SQL知识

2012-09-24 21:52 253 查看
基本语法(增,删,改,查)
1.增加数据的语法(增)
insert into 表名 (列名,列名,...)
values (值,值,...)

简化的增加数据的语法
insert into 表明
values (值,值,...)        ---注:此时值必须和表中列名对应,并且不能省略值

2.一次插入多行数据(增)
insert into 表明
select 值,值,...           --不需要小括号,此时输入的default是无效的,必须手动填默认值
union                        --表示用于组合前后两条插入语句
select 值,值,...

3.将现有表中的数据添加到已存在的表中(新表之前存在)(增)
insert into 已存在新表名 (列名,列名)
select 列名,列名,
from 现有表名

4.将现有表中的数据添加到新表中(新表之前不存在)(增)
select 列名,列名,...
into 新表
from 原表

5.更新数据(改)
update 表名 set 列名=更新值,列名=更新值
where 更新条件(可省略,意思是满足这个条件后执行更新)

6.删除数据(删)
delete from 表名
where 条件表达式        --如果满足此条件就可以伤处

7.删除数据(删)
truncate table 表名    --标的结构,列,约束,索引等不会被改动

8.查询一个表的所有数据(查)
select * from 表名

9.筛选符合条件的所有数据(查)
selcet * from 表名
where 条件

10.查询某些列或者列的数据(查)
select 列名,列名 from 表名
where 条件

11.在查询中使用别名(查)
a). select 列名 as 别名, 列名 as 别名 from 表名
where 条件
b). select 别名=列名,别名=列名 from 表名
where 条件

12.查询为空(不为空)的数据(查)
select 列名 from 表名
where 列名 is null(为空)
where 列名 is not null(不为空)

13.查询中使用常量(查)
select 列名,列名,'常量' as 别名 from 表名

14.查询返回限制的行数(查)
select top 行数 * from 表名
select top 行数 percent * from 表名(按百分比查询)

15.按升序查询
select * from 表名
order by 列名 (asc)        --无筛选条件的升序排列,asc可以省略,默认为升序

select * from 表名
where 筛选条件
order by 列名 (asc)        --有筛选条件的升序排列,where必须放在order by之前

select * from 表名
order by 列名 (desc)        --按降序排列

select top 行数 * from 表名
order by 列名 (asc)        --获得前多少行的数据

查询中使用的函数
1.charindex                    --查找指定字符的位置
select 列名,charindex('字符',列名,起始位置)(as 别名) from 表名

2.replace
select 列名,replace(列名,'字符','替换成的') from 表名

3.stuff
select 列名,stuff(列名,起始下标,修改长度,'替换成的') from 表名

常见错误:
1.对象名不存在
a.数据库选择错误
b.表名或者列名错误

2.不能为表'列名'中的标识插入显示值
出错原因:不能为标识列插入值

3.列名或所提供值的数目与表定义不匹配
出错原因:列的个数和值的个数不匹配

4.不能在对象'表名'中插入重复键
出错原因:主键值重复

5.约束"FK...."冲突,发生于"数据库名",表"表名",列名
出错原因:外链引用的数据不存在

6.将截断字符串二进制数据
出错原因:超出设置长度

7.约束"CK...."冲突,发生于"数据库名"表"表名",列名
出错原因:数据违背了检查约束

8.***附近有错误
出错原因:语法错误或者是符号错误
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: