Sql Server 常用语法

  • 格式:doc
  • 大小:42.50 KB
  • 文档页数:6

Sql Server 常用语法-- 约束种类1、default:默认约束,值类型需要加单引号default value2、null | not null 空约束|非空约束(只能用于列定义中)null not null3、标识列Identity(seed,increment)seed 种子increment 增量4、check:检查约束例:check(columnName > 18)5、Primary Key 主键约束Primary key(columnName asc|desc)6、Foreign Key References 外键约束,相对于主键而言的,通常用于引用主键Foreign Key(columnName) References targetTableName(columnName)7、唯一约束Unique-- 列级约束columnDefination unique(columnName)-- 表级约束Constraint ConstraintName unique(columnName)事例:-- 创建成绩表,使用列级约束Create Table Score(SCode int not null Foreign Key(SCode) References Student(StuCode), Score int check(Score >= 0 and Score <= 100))-- 创建成绩表, 使用表级约束Create Table ScoreSCode int not null,Score int default 0,Constraint FK_SCode Foreign Key(SCode) References Student(StuCode),Constraint CK_Score check(Score >= 0 and Score <= 100))总结:虽然歌种约束可以使用列级定义也可使用表级定义,建议非空约束,默认约束,标识列使用列级约束,而其它约束使用表级约束.创建数据表,修改数据表语法Create Table TableName(columnName DataType ColumnConstraint,columnName …Constraint ConstraintName Primary key|Unique | Check | Foreign Key References)-- TableName 表名, columnName 列名, DataType 数据类型ColumnConstraint 列约束-- Default 约束,默认值格式default 值-- ColumnConstraint null | not null-- Constraint 约束, ConstraintName 约束名-- Unique 唯一, Check 检查,Foreign key 外键-- References 引用-- 选择数据库use DataBaseNameuse StudentGo-- 事例,创建数据表Create Table Student(stuCode int not null,stuName varchar(10) not null,stuAge int not null,stuSex bit default 0)若数据库中已经包含数据,我们想修改表的结构,但我们不能删除表怎么办呢,我们可以修改表,即Alter Table-- 修改表:语法Alter Table TableNameAddConstraint | columnNameAltercolumn columnNamedropConstraint | column columnName-- 给Student表添加一列Alter Table StudentAdd stuAddress varchar(100),stuOther varchar(10)-- 删除Student表中的一列Alter Table Studentdrop column stuOther-- 修改表中的一列Alter Table StudentAlter column stuCode bigint not null-- 给Student表中的stuCode添加主键约束Alter Table StudentAdd Constraint PK_stuCode Primary Key(stuCode asc)-- 删除数据表drop table TableName-- 查看数据表select * from Student-- 使用Sql查询数据--1、查询表中所有类容Select * From TableName--2、查询表中指定字段类容Select ColumnName,…, From TableNameSelect stuName,stuNo,stuSex From stuInfo--3、带Where条件的查询Select *|ColumnName From TableName Where conditionselect * From stuInfo where stuSex='女'--4、带排序的查询(Order By ColumnName)-- 语法: Select *|ColumnName From TableName Order By ColumnName Desc|AscSelect * From stuInfo Order By stuAge,stuSeat desc-- 5、选择指定数量的记录,通常配合order By使用-- 语法: Select Top num *|ColumnName From TableName-- 语法: Select Top num *|ColumnName From TableName Order By Desc|AscSelect Top 2 * From stuInfo Order By stuAge Desc-- 6、分组查询Group By-- 分组查询中包含的列必须包含在聚合函数或GROUP BY 子句中Select * From stuInfoSelect stuSex, Max(stuAge) As '平均年龄' From stuInfo Group By stuSex--7、对分组后的结果进行过滤-- having(相当于Where)Select * From stuInfoSelect stuSex, Avg(stuAge) As '平均年龄' From stuInfo Group By stuSex having Avg(stuAge)>20--8、Group By 配合Where 使用Select * From stuInfoSelect stuSex, Avg(stuAge) As '平均年龄' From stuInfo where stuAge > 18 Group By stuSex having Avg(stuAge)>20-------------------------------------------------------------使用Sql插入数据--1、不指定列插入数据语法:Insert Into TableName Values(值列表)Insert Into stuInfo Values('小八','S25311','男',24,'北京')Select * from stuInfo-- 2、指定列名对数据插入--语法:Insert Into TableName(列名列表) Values(值列表)--注意:列名列表顺序可自己指定,但值列表的顺序应该和列名列表相同。

Insert Into stuInfo(stuName,stuNo,stuSex,stuAddress,stuAge) Values('小九','S25312','男','上海',25)select * from stuInfo--3、一次插入多条记录--1) Insert Into TableName(列名类表) Select…From 插入到现存的表中--注意:列名的数据类型,个数必须相同Insert Into stuInfoCopy(stuName,stuNo,stuSex,stuAge,stuSeat,stuAddress)Select * From stuInfoSelect * From stuInfoCopy--3、一次插入多条记录--2) Select 列名列表Into 新表名From SourceTable 插入到现存的表中--注意:列名的数据类型,个数必须相同,新表必须不存在Select Identity(int,1,1) As 'ID',stuName,stuNo,stuSex,stuAge,stuAddressInto #tempFrom stuInfoselect * from #temp--3、一次插入多行记录--3)使用Union合并数据行Insert #temp(stuName,stuNo,stuSex,stuAge,stuAddress)Select '宝贝','S25318','男',22,'湖北' UnionSelect '宝贝2','S25318','女',23,'湖南'select * from #temp--4、更改数据--语法: Update TableName Set ColumnName=值where CondititonUpdate #temp Set stuName = '宝贝3' Where stuName = '宝贝'Select * from #temp--5删除数据-- 语法: Delete From TableName Where ConditionDelete From #temp Where Id=8Select * From #temp--5删除数据--语法:Truncate Table TableName(在删除表中所有数据时,比Delete效率高,但不能--删除包含外键约束的表Truncate Table stuMarks-- Where 条件种类--1、ColumnName Between 低值And 高值Select * from stuInfo Where stuAge Between 20 And 25--2、And Or Not(与,或,非)--3、In(值列表)Select * from stuInfo Where stuAge IN (21,25)--4、Like(模糊查询)-- % 表示任意数量字符_ 一个字符[] 一个范围[^]不在某个范围Select * from stuInfo Where stuName like '小%'。