sql简单语句
来源:互联网 发布:淘宝破损补寄怎么设置 编辑:程序博客网 时间:2024/06/11 20:53
select * from Employee where EmpIsMary=0
--向表中所有的字段插入值,可以省略表后的字段名。(不提倡)
--如果只插入部分列,那么必须写字段名。
insert into Employee values('11113333222','laozhao','男','2014-3-10',32,'北京中国','123456',1,'zhang@126.com',0)
set IDENTITY_INSERT Employee on--可以向主键列插入值.
insert into Employee(EmpCode, EmpName, EmpGender, EmpDateTime, EmpAge, EmpAddress, EmpPhone, DepId, EmpEmail, EmpIsMary) values('11113333222','laozhao','男','2014-3-10',32,'北京中国','123456',1,'zhang@126.com',0)
set IDENTITY_INSERT Employee off
------------------------------------------------
insert into dbo.DepartMent(DepName) values(N'研发部')--防止插入中文出现乱码.
--------------------------------------更新---------------------------------------
update Employee set EmpName='laozhao222'--表中所有的记录都修改了.
update Employee set EmpName='laozhao222' where EmpId=2000
select * from Employee
--or或者 ,and ,not
update Employee set EmpName='laozhao222',EmpAge=30 where EmpId=2000 or EmpAge>30
--将所有"男"生的年龄减少10岁.
update Employee set EmpAge=EmpAge-10 where EmpGender='男'
update Employee set EmpAge-=10 where EmpGender='男'
update Employee set EmpAge=EmpAge+10 where EmpGender!='男'
update Employee set EmpAge=EmpAge-10 where EmpGender<>'男'--不等于
-----------------------------------数据删除------------------------
delete from dbo.Employee --表中所有的数据都删除.表的结构保留.
drop table Employee--删除表
delete from Employee where EmpId=2001
--删除表中所有的数据,同时编号再回到起始位置.
truncate table Employee--删除表中所有的数据.删除完成以后再次插入记录,编号从开始计算.
---------------------------
--update TblScore set tEnglish=tEnglish+2,tMath=tMath+2
create table Employees
(
EmpId int identity(1,1),
EmpName varchar(50),
EmpGender char(2),
EmpAge int,
EmpEmail varchar(100),
EmpAddress varchar(500)
)
create table Department
(
DepId int identity(1,1) primary key,
DepName varchar(50) unique not null
)
create table Employees
(
EmpId int identity(1,1),
EmpName varchar(50),
EmpGender char(2),
EmpAge int,
EmpEmail varchar(100),
EmpAddress varchar(500)
)
create table Department
(
DepId int identity(1,1) primary key,
DepName varchar(50) unique not null
)
select * from dbo.Employees
--============手动增加约束==========
--手动删除一列(删除EmpAddress列)
alter table Employees drop column EmpAddress
--手动增加一列(增加一列EmpAddr varchar(1000))
alter table Employees add EmpAddr varchar(1000)
--手动修改一下EmpEmail的数据类型(varchar(200))
alter table Employees alter column EmpEmail varchar(200)
--为EmpId增加一个主键约束
alter table Employees add constraint PK_Employees_EmpId primary key(EmpId)
--非空约束,为EmpName增加一个非空约束
alter table Employees alter column EmpName varchar(50) not null
--为EmpName增加一个唯一约束
alter table Employees add constraint QU_Employees_EmpName unique(EmpName)
--为性别增加一个默认约束,默认为'男'
alter table Employees add constraint DF_Employees_EmpGender default('男') for EmpGender
--为年龄增加一个检查约束:年龄必须在0-120岁之间,含岁与岁。
alter table Employees add constraint CK_Employees_EmpAge check(EmpAge>0 and EmpAge<120)
--创建一个部门表,然后为Employee表增加一个DepId列。
alter table Employees add DepId int
--增加外键约束
alter table Employees add constraint FK_Employees_DepId foreign key(DepId) references dbo.Department(DepId)
------------------------------------------
alter table Employees drop constraint QU_Employees_EmpName,DF_Employees_EmpGender,CK_Employees_EmpAge
--------------------基本查询-----------------------------
use Itcast2014
select * from dbo.TblStudent--*:表示所有的列.
select tSName,tSAddress from TblStudent--查询部分列.
select * from TblStudent where tSGender='女' and tSAge>20
select tSName as 姓名,tSAddress as 地址 from TblStudent--as:跟的是别名.
select [姓 名]=tSName ,tSAddress as 地址 from TblStudent--遇到一些非法的名称可以用[],或者一些关键字。select [count]
select 1+1
select getdate()--显示系统时间.
-------------------------TOP-------------------------------------
select top 5 * from TblStudent where tSGender='女' and tSAge>20--取前5条记录
select top (1*5) * from TblStudent where tSGender='女' and tSAge>20
select top 50 percent * from TblStudent--50% 如果计算出是17.5,那么取18.
--top与order by 连用有意义.
--order by 对数据进行排序,asc表示升序排序,默认也是升序. desc:表示降序
select top 5 * from TblStudent where tSGender='女' and tSAge>20 order by tSAge asc
select top 5 * from TblStudent where tSGender='女' and tSAge>20 order by tSAge desc
--先按照年龄降序排序,如果年龄相同再按照学号升序排序。
select top 5 * from TblStudent where tSGender='女' and tSAge>20 order by tSAge desc, tSId asc
--------------------------Distinct -------------------------
select * from dbo.TblStudent
select Distinct tsname,tsgender from TblStudent--对真个查询结果集去重复。
select Distinct * from dbo.TblStudent--不会去重复,因为编号列不重复。
-------------------------聚合函数----------------
select * from TblScore
select 数学成绩最高分=max(tMath) from TblScore --获取最大值.
select 数学成绩最低分=min(tMath) from TblScore
select 数学成绩总和=sum(tMath) from TblScore
select 数学平均分=avg(tMath) from TblScore--注意,由于tMath类型是小数,所以计算出的平均值带有小数。如果该字段类型是整数。 求出的数学总分是663,那么“整数/整数”,结果还是整数.可以乘以1.0.
select count(*) from TblScore--总的记录数.对行进行聚合操作.
select count(tEnglish) from TblScore--聚合函数不会对空值(NULL)进行计算。
select 英语平均分=avg(tEnglish) from TblScore--也不会对空值进行运算.
select 英语平均分=sum(tEnglish)/count(*) from TblScore
--求出每个人的平均成绩。
select tEnglish+10 from TblScore
update TblScore set tEnglish=0 where tEnglish is null--注意不能用'='或'<>'
select tsId, 平均成绩=(tEnglish+tMath)/2 from TblScore
-------------------------------条件查询--------------------------------
select * from dbo.TblScore where tSid=3 or tSid=5 or tSid=7
select * from dbo.TblScore where tSid in(3,5,7)--在指定的范围内查询.
select * from dbo.TblScore where tSid=3 or tSid=5 or tSid=4
select * from dbo.TblScore where tSid in(3,4,5)--如果查询的范围是连续的,最后不要用in.
select * from dbo.TblScore where tSid>=3 and tSid<=5 --可以更好的利用索引。提高的查询的效率.
select * from dbo.TblScore where tSid between 3 and 8
--------------------------模糊查询.-----------------------------
select * from dbo.TblStudent
select * from dbo.TblStudent where tSName like '张%'-- %:是一个通配符,表示单个(0个)或任意的多个字符。使用索引.
select * from dbo.TblStudent where tSName like '张%妹'
select * from dbo.TblStudent where tSName like '张_妹'--:_表示任意的单个字符.
--[]与正则表达式的含义是一样的,表示在指定范围内的任意一个字符.
select * from dbo.TblStudent where tSName like '张[0-9a-z]妹'
select * from dbo.TblStudent where tSName like '张[^0-9a-z]妹'
select * from dbo.TblStudent where tSName like '%[_]%'--注意.
select * from dbo.TblStudent where tSName like '%[_]'
select * from dbo.TblStudent where tSName not like '张%'
select * from dbo.TblStudent where tSName like '张_'
---Asp.Net高级编程
select * from books where title like '%Asp.Net高级编程%'--1.性能太差。无法使用索引。2.无法对搜索的内容进行分词,搜索的精度太低了。--项目.Lunce.Net+盘古分词.
---------------------------------排序-----------------------------------
--获取成绩最高的5个人.
select top 5 tSId,tMath from dbo.TblScore order by tMath desc
--获取平均成绩最高的5个人.
select top 5 tSId as 学号,平均成绩=(tMath+tEnglish)/2 from TblScore order by 平均成绩 desc
select top 5 tSId as 学号,平均成绩=(tMath+tEnglish)/2 from TblScore order by (tMath+tEnglish)/2 desc
--SQL执行顺序
select top 5 tSId as 学号,平均成绩=(tMath+tEnglish)/2 from TblScore order by 平均成绩 desc
---先执行 from TblScore
--在执行 where
--- select
--- order by 最后执行。优先级最低.
- 简单SQL语句总结
- 简单SQL语句小结
- 简单SQL语句小结
- 简单sql语句
- sql plus 简单语句
- 简单SQL语句小结
- 简单SQL语句小结
- 简单的SQL语句
- 简单的SQL语句
- 简单SQL语句小结
- 简单SQL语句小结
- 简单SQL语句小结
- 简单SQL语句小结
- sql语句简单汇总
- 简单SQL语句
- 简单SQL语句
- oracle 简单sql语句
- 简单SQL语句
- 发布的Qt工程无法显示图标和图片的问题
- 反射+多态:生成容器实例化并装好view子类
- Android系统启动过程
- UML
- 小凡实验室卧龙老师CCIE学习方法:CCIE涅槃五剑
- sql简单语句
- 安卓开发之清理手机应用程序缓存
- wikioi天梯之1475 m进制转十进制
- 第四周作业:图的表示
- MySQL 5.0 游标基础
- jsp 用户上传头像、上传图片、邮件上传附件代码
- win8推荐浏览器
- nc.exe(Netcat) 瑞士军刀
- 算法实验题 车皮编序问题(转化为在全排列的基础上的堆栈问题)