0
点赞
收藏
分享

微信扫一扫

SQL 语句运用(一)

小黑Neo 2022-04-07 阅读 59

上篇,我有说到SQL语句和SQL;这次就说如何去使用SQL语句;

首先,我们要知道一些语句里的SQL命令的作用;

  1. select 从数据库中提取数据
  2. update 更新数据库中的数据
  3. delete 从数据库中删除数据
  4. insert into 向数据库中插入新数据

  5. create database 创建新数据库

  6. alter database 修改数据库

  7. create table 创建新表

  8. alter table 修改(变更、改变)数据库表

  9. drop index 删除索引

  10. . drop table 删除表

  11. create index 创建索引(搜索键)

         如上,这些都是我在上文说到过,但是如果要详细使用,这些是不够,我们还要熟悉SQL里的那些数据类型,在SQL Server中,它的数据类型可以分为:string 类型、number 类型、date 类型、其它数据类型,而SQL Server的 string 类型又可以详细的分为:Character 字符串、Unicode 字符串、binary 类型;如下:

 String 类型: Character 字符串

  1. char(n)               固定长度的字符串。最多 8,000 个字符。
  2. varchar(n)          可变长度的字符串。最多 8,000 个字符。
  3. vachar(max)      可变长度的字符串。最多 1,073,741,824 个字符。
  4. text                     可变长度的字符串。最多 2GB 字符数据。

  String 类型: Unicode 字符串

  • nchar(n)                固定长度的 Unicode 数据。最多 4,000 个字符
  • nvarchar(n)           可变长度的 Unicode 数据。最多 4,000 个字符
  • nvarchar(max)      可变长度的 Unicode 数据。最多 536,870,912 个字符。
  • ntext                      可变长度的 Unicode 数据。最多 2GB 字符数据。

  String 类型:Binary 类型

  1. bit                        允许 01 NULL
  2. binary(n)             固定长度的二进制数据。最多 8,000 字节。
  3. varbinary(n)         可变长度的二进制数据。最多 8,000 字节。

  4. varbinary(max)   可变长度的二进制数据。最多 2GB 字节。

  5. image                    可变长度的二进制数据。最多 2GB

Character 字符串中的 varchar与Unicode字符串中的nvarchar对比

比较

varcharnvarchar

字符

数据

类型

可变长度的非Unicode字符

可变长度, Unicode 和非 Unicode 字符,

如:中 文,日语和韩语。

最大

长度

最多 8000 个字符

最多 4000 个字符

字符

大小

每个字符占用 1 个字节

每个 Unicode/ Unicode 字符占用 2 个字节

使用

当数据长度为可变或可变长度列且 实

际数据始终小于容量时使用

仅限存储,仅在需要 Unicode 支持时使用,

例如:汉字,日语或韩文字符。

这个时候,我们就要用上别的SQL命令;如下:

我这里有 一个数据库,名称为:SQLS,我现在要用SQL语句将这个数据库里的Course表里的Cname字段类型改nvarchar,并修改其长度为100;

如图:这个是未修改之前的类型

当我们执行如下这条语句:

alter table Course
alter column Cname nvarchar(100)

就会改变原有的数据类型,如效果右图:

查询score表前五条数据(由高到低的顺序排序),查询这个的语句有两种

方法一:SELECT * FROM SC
ORDER BY score DESC
OFFSET 0 ROWS
FETCH NEXT 5 ROWS ONLY

方法二:select top 5* from SC
order by Score desc

效果如右图:

集合运算符;

一、SQL Server Union(并集)

SQL Server Union是一组集合操作,用于将两个select语句的结果组合到一个结果中,该结果集包括属于union中select语句的所有行;通俗点来说,就是将地方A中的狗和地方B中的猫集合到同一个地方中;

如:查询所有的学生姓名和老师姓名。(学生表为:Student,学生名称为:Sname;老师表为:Teacher;老师名称为:Tname)

首先,我们先看,这是用语句单独查出来的: 

一:select Sname from Student      二: select Tname from Teacher

学生名称:        老师名称:  

当我们用union来查时,语句为:

select Sname from Student 
union 
select Tname from Teacher

结果为:,由结果就可以很明显的看出union的作用

1、 union 与union all 的区别

在默认的情况下,union运算符从结果集中删除所有重复的行。但是,如果要保留重复的行,则需要明确指定 all 关键字;UNION 运算符删除重复行,而 UNION ALL 运算符在最终结果集中包含重复行。

union语句

select first_name,last_name from bk_stores.sales.staffs
union 
select first_name,last_name from bk_stores.sales.customers

结果:

union all语句:

select first_name,last_name from bk_stores.sales.staffs
union all
select first_name,last_name from bk_stores.sales.customers

结果:

 由上面的两个结果可以很明显的看出union 语句比 union all 语句少了一条,少了一条重复的行,不过至于是那条我就不清楚了,毕竟这有一千多条,懒的去弄,知道就行了;

2、 union 与 join

inner join left join 等连接组合了两个表中的列,而 union组合了查询中的行。换句话来说,join 水平附加结果集,而 union垂直附加结果集

3、union 和order by 组合使用

如果要对 union 运算符返回的结果集进行排序,就将 order by 子句放在最后一个查询中;

语句:

select first_name,last_name from bk_stores.sales.customers
union all 
select first_name,last_name from bk_stores.sales.staffs
order by first_name,last_name

结果:

举报

相关推荐

0 条评论