您的位置:首页 > 数据库

【T_SQL】 基础 续

2016-05-18 14:43 357 查看

五、通配符      

    通配符 解释 示例 
   '_'一个字符 A Like 'C_' 
    %
任意长度的字符串 B Like 'CO_%' 
    [ ] 括号中所指定范围内的一个字符 C Like '9W0[1-2]' 

    [^] 不在括号中所指定范围内的一个字符 D Like '%[A-D][^1-2]' 

六、插入数据 

INSERT 表名(列名)  VALUES   (插入的列值)
insert  stuinfo(stuname,stuno,stuage,stuid,stuaddress)
values('张三',001,20,100,'hello')

1、注意事项 

        A、每次插入一行数据,不可能只插入半行或者几列数据,因此,插入的数据是否有效将
按照整行的完整性的要求来检验。  
        B、每个数据值的数据类型、精度和小数位数必须与相应的列匹配。 
        C、不能为标识列指定值,因为它的数字是自动增长的。 
        D、如果在设计表的时候就指定了某列不允许为空,则必须插入数据。 
        E、插入的数据项,要求符合检查约束的要求。 
        F、具有缺省值的列,可以使用 DEFAULT(缺省)关键字来代替插入的数值。 

2、插入多行数据 

(1)对象表存在 
INSERT INTO <表名>(列名)
SELECT <列名>  FROM <源表名>
INSERT INTO stuinfobak (stuname,stuno,stuage)
SELECT stuname,stuno,stuage FROM stuinfo
(Stuinfobak 表必须在数据库中存在)


(2)对象表不存在 
SELECT (列名)  INTO <表名>  FROM <源表名>
SELECT stuname,stuno,stuage  INTO stuinfobak1  FROM stuinfo
(Stuinfobak1 表必须在数据库中不存在)


(3)插入新的标识列 
IDENTITY(数据类型,标识种子,标识增量)
SELECT IDENTITY(数据类型,标识种子,标识增长量) AS 列名
INTO 新表 FROM 原始表
SELECT Students,SName,Students,SAddress,Students,SEmail,
IDENTITY(int,1,1) As StudentID
INTO TongXunLuEX FROM Students


(4)插入多行内容 
INSERT INTO <表名>(列名)
SELECT 列内容 UNION
SELECT 列内容 UNION


七、更新数据行 

UPDATE <表名> SET <列名 = 更新值>
[WHERE <更新条件>]
UPDATE Students
SET SAddress ='某社区 22#楼 4 单元 45 号'
WHERE SAddress = '某社区 22#楼 4 单元 45 号'
UPDATE Scores
SET Scores = Scores + 5
WHERE Scores <= 95


八、删除数据行 

1、删除指定的行 

DELETE  FROM <表名> [WHERE <删除条件>]

注意:DELETE  FROM 不会只删单个字段,要删就是整行 

2、删除所有记录 

TRUNCATE  TABLE <表名>
其实,我通常也用  
DELETE Table<>

注意:不能用于有外键约束引用的表。删除后,表的结构、列、约束、索引不变。 

九、查询 

SELECT <列名>
FROM <表名>
[WHERE <查询条件表达式>]
[ORDER BY <排序的列名>[ASC(升)或 DESC(降)] ]  --默认为升序

 1、查询全部的行和列 
SELECT * FROM Students

 2、查询部分行 
SELECT <列名>
FROM <表名>
WHERE <查询条件表达式>

 3、自定义命名查询结果中的列名 
(1)使用 AS 来命名列  
SELECT 原表中列名 AS 查询结果中显示的列名
FROM <表名>
WHERE <查询条件表达式>
SELECT Stuno AS 学员编号,StuName AS 学员姓名,StuAddress AS 学员地址
FROM stuinfo
WHERE  SAddress  like  '地址不详'


(2)合并两列数据,以规定格式输出查询结果 
SELECT  原表中列名+ '.' +原表中列名  AS  查询结果中显示的列名
FROM  表名


(3)使用“=”来命名列

SELECT 查询结果中显示的列名 = 原表中列名
FROM <表名>
WHERE <查询条件表达式>
SELECT  查询结果中显示的列名 = 原表中列名+ '.' +原表中列名
FROM  表名


(4)查询某几列为空的行 
SELECT 列名 A
FROM 表名
WHERE 条件列名 B  IS NULL
显示结果:B 列为空的 A 列内容。

(5)显示结果中加入常量列 
SELECT 列 A = SName,列 B = SAddress,'常量列内容'AS 常量列名称
FROM  Students
SELECT 姓名=SName,地址= SAddress,'72 中' AS 学校名称
FROM  Students

(6)限制查询结果输出的行数 
SELECT TOP 5 列名
FROM 表名
WHERE 条件
--显示结果:符合条件的前五行。


(7)返回百分之多少行 
SELECT TOP 20 PERCENT 列名
FROM 表名
WHERE 条件
显示结果:符合条件的行数的前 20%行。


 
(8)升序排列(默认)ASC 
SELECT StudentID As 学员编号,(Score*0.9+5) As 综合成绩
FROM Score
WHERE (Score*0.9+5)>60
ORDER BY Score


(9)降序排列 DESC 
SELECT  Au_Lname +'.' +Au_fName  AS  EMP
From 表 A Union
SELECT  fName +'.'+ LName  AS  EMP
From  表 B
ORDER  BY  EMP  DESC
显示结果:混合查找两张表中的列,并按格式输出到新列中,并按新列排序输出。 

(10)按多列排序 

SELECT  StudentID As 学员编号, Score As 成绩
FROM  表名
WHERE  Score>60
ORDER BY Score,studentID

 显示结果:先按 Score 排序,再按 studentID 排序。 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: