您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

sqlServer学习2-sql脚本说明

bubuko 2022/1/25 19:27:37 sqlserver 字数 13964 阅读 790 来源 http://www.bubuko.com/infolist-5-1.html

SQL语言分类: 1)DQL 数据查询语言 Select 列 From 表名 where 条件 2)DML 数据操纵语言 Insert 插入 insert into 表名 (列,列,...) values (对应的值,对应的值) Update 更新 update 表名 set 列名=值, 列名=值 ...

SQL语言分类:

1)DQL 数据查询语言   

Select 列 From 表名 where 条件

2)DML 数据操纵语言     Insert 插入   insert into 表名 (列,列,...) values (对应的值,对应的值)
                      Update 更新 update 表名 set 列名=值, 列名=值 where 条件
                 
                      Delete 删除 delete from 表名 where 条件
?
3)DDL 数据定义语言 创建数据库及其对象 Create/Alter/Drop Database/Table/View/Proc/Index
?
4)DCL 数据控制语言 用于授予或回收访问数据库某种特权,对数据实行监视等 commit 提交 rollback 回滚 grant 授权

创建脚本:

为什么创建新的数据库,要选择master?

master:系统数据库,它记录了SQL Server系统的所有系统级信息,还记录了所有其他数据库的存在,数据库文件的位置,SQL Server的初始化信息。

使用脚本创建数据库

use master go

create database 数据库名 on primary (

--主要数据文件的设置 name= filename size filegrowth ) log on ( --日志文件的设置 name filename size filegrowth ) go

t-sql创建表

1.表信息准备

产口信息表:标识列,int 编号 varchar(50) 名称 nvarchar(50) 产品类型 TypeId int 价格 decimal(18,2) 数量 int

产品类型表: 编号 TypeId int 名称 nvarchar(20) 2.脚本创建表:

同一个数据库下,不能有两张表同名

use 数据库名 go

create table 表名 ( -------- 列名 类型类型 长度 是否为空 标识列 主键 默认值,约束 ,列与列之间以逗号隔开 )

t-sql 修改表

1.直接在原来的脚本基础上进行修改

先把脚本代码进行修改,再删除原来的表,然后再执行创建表的脚本代码

这种方式,一般情况都不采用,后果很严重。除非表里数据不重要或是空表,可以使用上面这种方式。

2.alter table 进行修改

1)添加一列 : alter table 表名 add 列名 数据类型 是否为空

2)删除一列: alter table 表名 drop column 列名

3)修改列:一般不要修改列名,在设计时,定义好就不要改了。 修改的是数据类型,是否为空

    alter table 表名 alter column 列名 类型 是否为空

 

t-sql 创建约束

1.在创建表的过程中创建约束 unique 主键约束 外键约束 unique约束(唯一约束) check约束 default约束 default(‘‘) primary key foreign key references 主表名(主键列名)

2.在创建表完成后再创建约束

alter table 表名 add constraint 约束名 primary key (列名) / foreign key(列名) references 主表(列名)/ unique (列名)/ check(逻辑表达式) default(缺省值) for 列名

 

t-sql插入数据

对表的操作:插入、更新、删除

1.单条数据插入

--1) insert (into) 表名(列名,列名....) values (值,值....) --2) insert into 表名(列名,列名....) select 值,值....

2.多条插入 1) insert into 表名(TypeName) values (‘工具类1‘),(‘工具类2‘),(‘工具类3‘),(‘工具类4‘) 2) union 去重 union all 允许重复 union all效率比union高 insert Test(MName,Age) select ‘fff‘,21 union select ‘fff‘,21

3.克隆表数据

--1) 目标表在数据库已经存在 insert into Test(MName) ---目标表 select TypeName from ProductType --源表

--2)目标表之前数据库中不存在,执行操作时自动创建的 select TypeName into Test2 --目标表 from ProductType --源表

更新与删除

1.更新数据

--更新数据 update 几乎不会不用where条件 --主键不可以修改 --如果不加where条件,会把整张表的数据都修改了

update Test set MName=‘ssss‘,Age=30 where Id=5 (and | or) 条件

2.删除数据

--数据删除 :只是删除数据,表还在; 连同表一起删除 --1)删除数据 delete from Table 不加条件,会删除整个表数据,几乎都要加where条件 标识列 值还是接着删除前的值而自增,而不是从初始值开始 --delete语句会造成标识列的值不连续 delete from Test where Id = 20 --如果我们想删除数据,让标识列的值恢复到初始值,怎么办? truncate table Test --表数据清空,恢复到初始化,标识列也恢复 --表面上看,delete from Test 效果一样. --truncate效率比delete from Test高.delete每删除一条数据,都会在日志里记录.truncate不会记录日志,不激活触发器,drop truncate 是即时操作,不能rollback,delete update insert 事务中,可以恢复. --慎用truncate 一旦删除,不能恢复.

SQL查询之单表查询

1.查询所有数据

select * from UserInfos

2.查询表的部分数据

select UserId,UserName,Age from UserInfos where 条件

3.列命别名

为什么需要命别名 ---解决需要显示中文列名

--给列命别名 --列名 as 别名 列名 别名 别名=列名 select UserId as 用户编号,UserName 用户名,年龄= Age from UserInfos

4.排序

--主键,默认就有排序功能 从小到大 --升序 asc --降序:从大到小 desc --不管是否有条件,还是分组,order by 永远放在最后 select UserId,UserName,Age from UserInfos order by Age,UserId

查询之模糊查询

模糊查询:select UserName,Age from 表名 where UserName like ....

查询:完整查询和模糊查询

like SQL 提供4种匹配模式:

  1. % 0个或多个

2._ 匹配单个字符

3.[] 范围匹配 括号中所有字符中的一个

4.[^] 不在括号中所有字符之内的单个字符

范围查询

1.select from where 子句 条件 -- 给定范围 --1) 比较运算符 > < >= <= <> --2)in (2,3,4) not in (2,3,4) 不在这个范围之内 --3) between and 推荐 等价于 >= and <= 2.前面多少条、百比比 top n/percent

查询之聚合函数

聚合函数:对一组值执行计算并返回单一的值。

经常与select语句中group by结合使用。

五种聚合函数:count 记录个数 sum 求和 avg 求平均 max 最大值 min 最小值

分组查询

select .... where ..... group by 列名,列名 结合聚合函数,根据一列或多个列对结果集进行分组。

连接查询之内连接

sqlServer学习2-sql脚本说明

原文:https://www.cnblogs.com/wxhao/p/13624856.html


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶