几客’Blog
一个人的天堂!

SqlServer基础知识点(T-SQL语言基础)

DML(数据操作语言)

INSERT、UPDATE、DELETE 等

  • 插入、修改和删除数据库中的数据

- 插入数据

## 插入数据语法:(字符数据需要单引号,数值数据不需要单引号。)
INSERT INTO 表名 (列名)VALUES (值列表)
## 示例:向学生表中插入一行数据
INSERT INTO Students (SName,SAddress,SGrade,SEmail,SsEX)
VALUES ('张青裁','上海松江',6,'ZQC@Sohu.com',0)

## 示例:向学生表中插入多行数据
INSERT INTO Students (SName,SAddress,SGrade,SEmail,SsEX)
SELECT '张青裁','上海松江',6,'ZQC@Sohu.com',0 UNION
SELECT '张三','上海松江',3,'VDC@Sohu.com',1 UNION
SELECT '刘筱','上海松江',2,'RRF@Sohu.com',0

- 每次插入一行数据,不能只插入半行或者几列数据,插入的数据是否有效将按照整行的完整性的要求来检验。
- 每个数据值的数据类型、精度和小数位数必须与相应的列匹配。
- 不能给标识列插入值。
- 不允许为空的列,则必须插入数据。
- 有缺省值的列,插入时可以使用 DEFAULT(缺省)关键字来代表缺省值。
- 用null表示空

# 将某一个表里的数据添加到另一个已存在的表中:
INSERT INTO 表名 (列名)
SELECT 列名
FROM 源表名
# 示例:将Students表中SName,SAdderss,SEmail列数值插入AddressList表的 (姓名,地址,电子邮件)列
INSERT INTO AddressList (姓名,地址,电子邮件)
SELECT SName,SAdderss,SEmail
FROM Students
# 注意:AddressList 表需包含 (姓名,地址,电子邮件) 列
# 将某一个表里的数据添加到新表中:
SELECT (列名)
INTO 表名
FROM 源表名
# 示例:将Students表中SName,SAdderss,SEmail列数值创建新NEWAddressList表
SELECT SName,SAdderss,SEmail
INTO NEWAddressList
FROM Students


- 更改数据

## 更新数据行:(更新多列数据使用逗号隔开)
UPDATE 表名 
SET 列名=更新值, 列名=更新值, ...
WHERE 条件
## 示例1:将Students 表中的SSEX列中所有数值改为0
UPDATE Students
SET SSEX=0
## 示例2:将Students 表中的SAddress列中 上海黄浦 改为 上海松江
UPDATE Students
SET SAddress='上海松江'
WHERE SAddress='上海黄浦'

- 勿忘条件限制,以防有效数据的丢失。



- 删除数据

## 删除数据行:
DELETE FROM 表名
WHERE 条件
## 示例1:删除Students 表中的SName列为 张青裁 行
DELETE FROM Students
WHERE SName='张青裁'
## 直接清空表:(慎用)
TRUNCATE TABLE 表名

DQL(数据查询语言)

SELECT 等

  • 用来查询数据库中的数据
## 查询数据:
SELECT 列名
FROM 表名
WHERE 条件 (可选)
ORDER BY 排序的列名 (可选)
##示例1:查询Students表中所有的列
SELECT *
FROM Students
## 示例2:查询Students表中SSEX列值为0的数据行,只显示SCode,SName,SAddress列,并按SCode列的值排序。
SELECT SCode,SName,SAddress
FROM Students
WHERE SSEX = 0
ORDER BY SCode
## 示例3:查询Students表中Email值为空的行。
SELECT *
FROM Students
WHERE Email is null
## 示例4:查询Students表中Email值非空的行。
SELECT *
FROM Students
WHERE Email is not null

- 排序默认按升序排列,降序语法:ORDER BY 列名 desc。
- 多列排序可以用 , 隔开列名,多列排序语法:ORDER BY 列名1,列名2。

## 只查询前几行数据
##方式1:按指定行数查询
SELECT TOP * 列名
FROM 表名
WHERE 条件 (可选)
ORDER BY 排序的列名 (可选)
## 示例:查询Students表所有列前5行数据
SELECT TOP 5 *
FROM Students
##方式2:按总行百分百查询
SELECT TOP * PERCENT 列名
FROM 表名
WHERE 条件 (可选)
ORDER BY 排序的列名 (可选)
## 示例:查询Students表所有列前20%行数据
SELECT TOP 20 PERCENT *
FROM Students
## 自定义数据结果列名称
##方法1
SELECT 列名 AS 新列名,列名 AS 新列名,...
FROM 表名
WHERE 条件 (可选)
ORDER BY 排序的列名 (可选)
##方法2
SELECT 新列名=列名,新列名=列名,...
FROM 表名
WHERE 条件 (可选)
ORDER BY 排序的列名 (可选)
## 显示结果中增加一个自定义列
SELECT 列名 AS 新列名,'自定义内容' AS 自定义列名,
FROM 表名
WHERE 条件 (可选)
ORDER BY 排序的列名 (可选)
## 多列合并查询
##方式1
SELECT 列名+列名
FROM 表名
WHERE 条件 (可选)
ORDER BY 排序的列名 (可选)
##方法2
SELECT 列名+列名 AS 新列名
FROM 表名
WHERE 条件 (可选)
ORDER BY 排序的列名 (可选)

- +连接的列,值需要是同一种类型
- 如果+连接的列是字符类数据,结果为数据内容相连。如:姓名+地址 结果为:姓名地址。
- 如果+连接的列是数值类数据,结果为数值之和。如:12+20 结果为:32。


DCL(数据控制语言)

  • 用来控制存取许可、存取权限等

GRANT、REVOKE 等


DDL(数据定义语言)

  • 用来建立数据库、数据库对象和定义表的列

CREATE TABLE、DROPTABLE 等


运算符

  • 一种符号,他用来进行列间或者变量之间的比较和数学运算
  • 包括算术运算符、赋值运算符、比较运算符、逻辑运算符
算术运算符
算术运算符 说明
+ 加运算,求两个数或者表达式相加的和
- 减运算,求两个数或者表达式相减的差
* 乘运算,求两个数或者表达式相乘的积
/ 除运算,求两个数或者表达式相除的商,如:5/3的值为1
% 取模运算,求两个数或者表达式相除的余数,如:5%3的值为2
赋值运算符
赋值运算 说明
= 吧一个数或变量或表达式赋值给另一个变量,如:Name='王华'
比较运算符
比较运算 含义
= 等于
> 大于
< 小于
>= 大于或等于
<= 小于或等于
<> 不等于
! 非(Java语言中为not)
逻辑运算符
逻辑表达式 说明 示例
AND 逻辑与 1 AND 1 = ; 1 AND 0 = 0; 0 AND 0 = 0;
OR 逻辑或 1 OR 1 = 1; 1OR 0 = 1; 0 OR 0 = 0;
NOT 逻辑非 NOT 1 = 0; NOT 0 = 1;
通配符 解释 示例
‘_’ 一个字符 A Like 'C_'
% 任意长度的字符串 B Like 'CO_%'
[ ] 括号中所指定范围内的一个字符 C Like '9W0[1-2]'
[^] 不在括号中所指定范围内的一个字符 D Like ‘%[A-D][^1-2]'
赞(4) 打赏
未经允许不得转载:几客’Blog » SqlServer基础知识点(T-SQL语言基础)

评论 抢沙发

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏