知识点:SQL语言的作用、SQL语言的组成、SQL中的运算符、使用INSERT向表中插入数据、使用UPDATE更新表中数据、使用DELETE删除表中数据。
Structured Query Language:结构化查询语言
SQL语言是针对数据库而言的一门语言,它可以创建数据库、数据表,可以针对数据库的数据进行增、删、改、查等操作,可以创建视图、存储过程,可以赋予用户权限等。
T-SQL作为SQL的扩展语言,是SQL程序设计语言的增强版,它是用来让应用程序与SQL Server沟通的主要语言。T-SQL提供标准SQL的DDL和DML功能,加上延伸的函数、系统预存程序以及程式设计结构(如IF和WHILE)让程续设计更有弹性。
运算符是一种符号,是用来进行列之间或者变量之间的比较和数学运算的。
算术运算符 | 描述 |
+ | 加法 - 把运算符两边的值相加 |
- | 减法 - 左操作数减去右操作数 |
* | 乘法 - 把运算符两边的值相乘 |
/ | 除法 - 左操作数除以右操作数 |
% | 取模 - 左操作数除以右操作数后得到的余数 |
赋值运算符 | 描述 |
= | 把一个数或变量或表达式赋值给另一个变量,如:Name='小明' |
操作符 | 描述 | 例子:a=10; b=20; |
---|---|---|
= | 检查如果两个操作数的值是相等或不相等,如果是的话,条件为真。 | (a = b) is not true. |
!= | 检查如果两个操作数的值是否相等,如果值不相等,则条件为真。 | (a != b) is true. |
<> | 检查如果两个操作数的值是否相等,如果值不相等,则条件为真。 | (a <> b) is true. |
> | 检查值,如果左操作数大于右操作数的值,如果是的话,条件为真。 | (a > b) is not true. |
< | 检查如果左操作数的值小于右操作数的值,如果是的话,条件为真。 | (a < b) is true. |
>= | 检查如果左操作数的值大于或等于右操作数的值,如果是的话,条件为真。 | (a >= b) is not true. |
<= | 检查如果左操作数的值小于或等于右操作数的值,如果是的话,条件为真。 | (a <= b) is true. |
!< | 检查如果左操作数的值不小于右操作数的值,如果是的话,条件为真。 | (a !< b) is false. |
!> | 检查如果左操作数的值是不大于右操作数的值,如果是的话,条件为真。 | (a !> b) is true. |
逻辑运算符 | 描述 |
AND | 当且仅当两个布尔表达式都为True时,返回True。 |
OR | 当且仅当两个布尔表达式都为Fales时,返回False。 |
NOT | 对布尔表达式的值取反,优先级别最高 |
查询结果演示:
第一步:在工具栏上点击【新建查询】
第二步:系统新建查询文件
第三步:输入T-SQL语句:
use SchoolDB; --跳转到指定数据库SchoolDB
select * from Student; --查询数据库表Student里的所有信息
注意:
第四步:执行T-SQL语句。方法:选中要执行的语句,然后单击工具栏【执行】
第五步:查看执行结果
使用INSERT语句插入一行数据(最常用的方法),语法:
举例:向数据库表Student中插入一行数据,使用INSERT语句,在查询面板输入T-SQL语句:
insert into Student values (1831304,'张杰','男',19,2,'逆战',null,default);
编写代码完成后,选中改行代码,单击工具栏上的【执行】,会提示执行结果。
再次选中代码select * from Student; 单击工具栏上的【执行】,可以看到结果。
注意:T-SQL语句输入完成后,点击工具栏的【执行】,会有结果提示是否成功。然后再次执行select * from Student; 语句,验证插入数据结果。
语法:
insert into 表名(列名1,列名2,…,列名n)
select 值1,值2,…,值n union
select 值1,值2,…,值n union
select 值1,值2,…,值n union
select 值1,值2,…,值n ;
举例:向表中一次插入多行数据
编写代码完成后,选中代码,单击工具栏上的【执行】,会提示执行结果。
再次选中代码select * from Student; 单击工具栏上的【执行】,可以看到结果。
--使用union,一次插入多行数据
insert into Student(Number,Name,Gender,Age,Major,Works,Email)
select 1831305,'王源','男',16,2,null,'[email protected]' union
select 1831306,'易烊千玺','男',16,2,null,'[email protected]' union
select 1831307,'yangyang','男',16,2,null,'[email protected]' ;
方法一:通过insert select语句
insert into 新表名(列名1,列名2,…,列名n)
select 列名1,列名2,…,列名n
from 原表名;
适用情况:将旧表里的数据,保存到新表中,要求必须先创建一个新表,且新表里的列属性要和旧表一致。
方法二:通过select into语句将现有表中数据添加到新表中
select 列名1,列名2,…,列名n
insert into 新表名
from 原表名;
适用情况:适合备份,这里的新表是执行查询语句的时候自动创建的,不能预先存在。执行以后刷新,会有一张新的表生成。
数据更新是经常发生的事情,比如QQ修改账户名、修改密码等,使用T-SQL 可以进行数据更新。
Update 表名 set 列名=更新值 [where 更新条件];
注意:
举例:将Student表里专业为2的信息,修改为4,添加代码:update Student set Major=4 where Major=2;
编写代码完成后,选中代码,单击工具栏上的【执行】,会提示执行结果。
再次选中代码select * from Student; 单击工具栏上的【执行】,可以看到结果。
思考:
删除数据行也是经常会用的操作,比如QQ上删除好友。
Delete [from] 表名 [where 删除条件];
注意:
举例:删除学号为1831304的学生,添加代码:delete from Student where Number=1831304;
编写代码完成后,选中代码,单击工具栏上的【执行】,会提示执行结果。
再次选中代码select * from Student; 单击工具栏上的【执行】,可以看到结果。
有时我们会希望将一个表的数据全部复制到另一个表。
SQL Server中,如果目标表不存在:
select * into 目标表 from 原表;
SQL Server中,如果目标表存在:
insert into 目标表 select * from 原表;
有时需要把存储在数据库中的数据导出保存成文本或者Excel文件,或者把文本文件、Excel文件中的数据导入数据库表中,这个时候就需要用到数据库的导入/导出。导入/导出实际上不仅仅可以完成数据库和文件格式的转换,还可以在不同的数据库之间进行数据传输。
演示:导出数据库SchoolDB中表Student里的数据,并保存为文本文件。
第一步:在对象资源管理器中,将数据库【SchoolDB】单击鼠标右键,在弹出的下拉菜单里依次点击【任务】——【导出数据】
第二步:在弹出的【SQL Server导入和导出向导】窗口中,点击【下一步】
第三步:在【SQL Server导入和导出向导——选择数据源】窗口中,进行设置。
1)进行数据源设置:点击,在弹出的下拉菜单中选中“SQL Server Native Client 11.0”
2) 点击【SQL Server导入和导出向导——选择数据源】窗口中的【下一步】按钮。
第四步:在【SQL Server导入和导出向导——选择目标】窗口中,进行设置。
1)设置将数据导出到什么位置。
2)点击目标后面的,在弹出的下拉菜单中选中“平面文件目标”
3)设置文件名,点击文件名后面的浏览按钮,在弹出的【打开】窗口中选择文件将要保存的位置,并给文件起名字,然后单击【打开】按钮。
4)点击【SQL Server导入和导出向导——选择数据源】窗口中的【下一步】按钮。
如果要导出excel文件,这里选择目标时要注意不同的文件类型
第五步:点击【SQL Server导入和导出向导——指定表复制或查询】窗口中的【下一步】按钮。
第六步:在【SQL Server导入和导出向导——指定表复制或查询】窗口中,选择导出哪一个表的数据、分隔字符的选择
选择将要导出数据的表,还可以预览看一下该表中的数据,确定无误后,点击【下一步】按钮。
导出为excel文件时,此步骤是这样的。
第七步:在【SQL Server导入和导出向导——保存并运行包】窗口中,确定是否立即运行,然后点击【下一步】按钮
第八步:在【SQL Server导入和导出向导——完成向导】窗口中,查看完整信息,确认无误后,单击【完成】按钮。
第九步:在【SQL Server导入和导出向导——执行】窗口中,给出执行结果提示,点击【关闭】按钮。
第十步:验证导出的数据文件
演示:将Eexcel中的数据,导入到数据库
第一步:准备好数据文件。一般会有一个excel文件,里面填充有数据,注意excel文件的列名称采用英文。
第二步:在对象资源管理器中,鼠标右键单击要导入数据的数据库,这里以【SchoolDB】为例,
第三步:在弹出的【SQL Server 导入和导出向导】窗口中,单击【下一步】按钮。
第四步:在【SQL Server 导入和导出向导——选择数据源】窗口中,进行设置
数据源选择Microsoft Excel,然后浏览文件,确定是否勾选“首行包含列名称”,设置完毕以后,点击【下一步】按钮。
第五步:在【SQL Server 导入和导出向导——选择目标】窗口中,进行设置
点击目标后面的,选择SQL Server Native Client 11.0,确定好导入到哪个数据库,然后点击【下一步】按钮
第六步:在【SQL Server 导入和导出向导——指定表复制或查询】窗口中,点击【下一步】按钮。
第七步:在【SQL Server 导入和导出向导——选择元表和源视图】窗口中,进行设置。勾选sheet1,因为准备导入的excel文件里数据都放在sheet1.然后可以点击【预览】按钮看一下效果,(还可以点击【编辑映射】按钮,进行设置)。接着点击【下一步】按钮。
第八步:在【SQL Server 导入和导出向导——保存并运行】窗口中,点击【下一步】按钮。
第九步:在【SQL Server 导入和导出向导——完成向导】窗口中,点击【完成】按钮。
第十步:在【SQL Server 导入和导出向导——执行】窗口中,可以看到执行结果,点击【关闭】按钮。
第十一步:验证结果。在兑现资源管理器中点击【刷新】按钮,展开数据库【SchoolDB】,查看新导入的表。
=========================这里是结束分割线========================