SQL Server数据库第三课:SQL语言介绍、使用INSERT向表中插入数据、使用UPDATE更新表中数据、使用DELETE删除表中数据

版权声明:王迪 https://blog.csdn.net/dnruanjian/article/details/89088848

知识点:SQL语言的作用、SQL语言的组成、SQL中的运算符、使用INSERT向表中插入数据、使用UPDATE更新表中数据、使用DELETE删除表中数据。

1、SQL简介

1.1   什么是SQL?

      Structured Query Language:结构化查询语言

  • SQL 指结构化查询语言
  • SQL 使我们有能力访问数据库
  • SQL 是一种 ANSI 的标准计算机语言(注释:ANSI,美国国家标准化组织)

1.2   SQL能做什么?

       SQL语言是针对数据库而言的一门语言,它可以创建数据库、数据表,可以针对数据库的数据进行增、删、改、查等操作,可以创建视图、存储过程,可以赋予用户权限等。

 

1.3   SQL语言的组成

 

 

1.4   SQL 和 T-SQL的关系

         T-SQL作为SQL的扩展语言,是SQL程序设计语言的增强版,它是用来让应用程序与SQL Server沟通的主要语言。T-SQL提供标准SQL的DDL和DML功能,加上延伸的函数、系统预存程序以及程式设计结构(如IF和WHILE)让程续设计更有弹性。

1.5    SQL中的运算符

        运算符是一种符号,是用来进行列之间或者变量之间的比较和数学运算的。

(1)算术运算符

算术运算符 描述
             + 加法 - 把运算符两边的值相加
             - 减法 - 左操作数减去右操作数
             * 乘法 - 把运算符两边的值相乘
             / 除法 - 左操作数除以右操作数
             % 取模 - 左操作数除以右操作数后得到的余数

(2)赋值运算符

赋值运算符 描述
           = 把一个数或变量或表达式赋值给另一个变量,如:Name='小明'

(3)比较运算符

操作符 描述 例子: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.

(4)逻辑运算符

逻辑运算符 描述
             AND     当且仅当两个布尔表达式都为True时,返回True。
             OR 当且仅当两个布尔表达式都为Fales时,返回False。
             NOT 对布尔表达式的值取反,优先级别最高

2、使用T-SQL 查询数据

查询结果演示:

第一步:在工具栏上点击【新建查询】

第二步:系统新建查询文件

第三步:输入T-SQL语句:

use SchoolDB;              --跳转到指定数据库SchoolDB
select * from Student;    --查询数据库表Student里的所有信息

注意:

  • USE 的用法:USE 数据库名
  • USE //跳转到需要操作的数据库。

第四步:执行T-SQL语句。方法:选中要执行的语句,然后单击工具栏【执行】

第五步:查看执行结果

 

3、使用T-SQL 插入数据

3.1 使用INSERT插入数据

使用INSERT语句插入一行数据(最常用的方法),语法:

insert [into] 表名 [(列名列表)] values(值列表);

  • [into]是可选的,中括号都代表可以省略,但是一般建议不要省略。
  • 表名必须要有,插入到哪个表要说清楚。
  • 表的列名是可选的,如果省略,将依次插入所有列。
  • 多个列名和多个值列表用英文逗号隔开,最后一个列名、值列表,不需要逗号
  • 分号是T-SQL语句终止符,代表这条语句结束。
  • 字符型要用单引号,数值类型不用引号。

举例:向数据库表Student中插入一行数据,使用INSERT语句,在查询面板输入T-SQL语句:

insert into Student  values (1831304,'张杰','男',19,2,'逆战',null,default);

编写代码完成后,选中改行代码,单击工具栏上的【执行】,会提示执行结果。

再次选中代码select * from Student; 单击工具栏上的【执行】,可以看到结果。

da

注意:T-SQL语句输入完成后,点击工具栏的【执行】,会有结果提示是否成功。然后再次执行select * from Student; 语句,验证插入数据结果。

  • 每次插入一整行数据,不可能只插入半行或者几列数据,但允许某些列为空或使用默认值。
  • 为允许为空的列,插入空值,输入null。
  • 为具有默认值的列插入默认数据,可以使用default。
  • 数据值的数目必须与列数相同,每个数据值的数据类型、精度和小数位数也必须与相应的列匹配。
  • INSERT语句不能为标识列指定值,因为标识列的数字是自动增长的。
  • 对于字符类型、日期类型的列,当插入数据的时候,用英文的单引号''将其引起来,如  '男'  。
  • 插入的数据项要符合列的要求,如非空约束、CHECK约束等。

 

3.2 一次插入多行数据(使用UNION关键字)

语法:

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 原表名;

适用情况:适合备份,这里的新表是执行查询语句的时候自动创建的,不能预先存在。执行以后刷新,会有一张新的表生成。

 

 

4、使用T-SQL 更新数据

数据更新是经常发生的事情,比如QQ修改账户名、修改密码等,使用T-SQL 可以进行数据更新。

Update 表名 set 列名=更新值 [where 更新条件];

注意:

  • where子句是可选的,但是建议一定要添加where条件,否则会更新整个表,另外有些安全性高的会报错。
  • 使用update语句,可能更新一行数据,也可能更新多行数据,也可能不会更新任何数据。

 

举例:将Student表里专业为2的信息,修改为4,添加代码:update Student set Major=4 where Major=2;

编写代码完成后,选中代码,单击工具栏上的【执行】,会提示执行结果。

再次选中代码select * from Student; 单击工具栏上的【执行】,可以看到结果。

思考:

  • 同时更新多列内容,怎么实现?举例:将学号为1831304的学生,修改年龄为20,作品为“勿忘心安”
  • 同时满足两个条件的实体,进行更新,怎么实现?举例:将Age为16,并且性别为男的学生,统一修改性别为女。

 

5、使用T-SQL 删除数据

删除数据行也是经常会用的操作,比如QQ上删除好友。

Delete [from] 表名 [where 删除条件];

注意:

  • 如果要删除的行的主键值被其他表引用,那么删除被引用的行时,会报错。
  • Delete语句删除的是整条记录,不会只删除单个列,所以delete后面不能出现列名。
  • where子句是可选的,但是建议一定要添加where条件,否则使用delete时会删除表中的所有行。

举例:删除学号为1831304的学生,添加代码:delete from Student where Number=1831304;

编写代码完成后,选中代码,单击工具栏上的【执行】,会提示执行结果。

再次选中代码select * from Student; 单击工具栏上的【执行】,可以看到结果。

 

6、使用T-SQL 复制表的数据到另一个表

有时我们会希望将一个表的数据全部复制到另一个表。

SQL Server中,如果目标表不存在:

select * into 目标表 from 原表;

SQL Server中,如果目标表存在:

insert into 目标表 select * from 原表;

7、导入和导出数据

       有时需要把存储在数据库中的数据导出保存成文本或者Excel文件,或者把文本文件、Excel文件中的数据导入数据库表中,这个时候就需要用到数据库的导入/导出。导入/导出实际上不仅仅可以完成数据库和文件格式的转换,还可以在不同的数据库之间进行数据传输。

7.1 导出数据

演示:导出数据库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导入和导出向导——执行】窗口中,给出执行结果提示,点击【关闭】按钮。

第十步:验证导出的数据文件

 

7.2 导入数据

演示:将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】,查看新导入的表。

 

 

 

 

 

=========================这里是结束分割线========================

 

 

猜你喜欢

转载自blog.csdn.net/dnruanjian/article/details/89088848