SQL sever基础代码

SQL sever基础代码,自己整理的,希望对萌新有用,不喜勿喷,谢谢!!
有不懂的欢迎在评论区留言一起讨论,此内容不是唯一解,仅作参考

--注:数据库语句基本不分大小写除表名
--1、创建数据库
--create (database) 数据库名
--示例:创建一个名为new_database的数据库
create database new_database

--2、创建表
--CREATE TABLE 表名称
--(
--列名称1 数据类型 null,
--列名称2 数据类型 null,
--列名称3 数据类型 not null
--)
--示例:创建一个表名为new_a_table的表,其中字段包括ta001、ta002、ta003,值类型分别为int,float,varchar(20),且前两个的字段值可以为空,最后一个不可为空
create table new_a_table
(
ta001 int null,
ta002 float null,
ta003 varchar(20) not null
)

--3、插入数据
--方法一:insert into 表名(字段1,字段2,字段3)
--		  values (值1,值2,值3)
--方法二:insert into 表名(字段1,字段2,字段3)
--		  select 值1,值2,值3
--示例:向new_a_table表中插入三条数据,
--第一条数据ta001、ta002、ta003的值分别为1、1.5、数据一;
--第二条数据ta001、ta002、ta003的值分别为2、2.5、数据二;
--第三条数据ta001、ta002、ta003的值分别为3、3.5、数据三
insert into new_a_table(ta001,ta002,ta003)
values (1,1.5,'数据一'),
	   (2,2.5,'数据二'),
	   (3,3.5,'数据三')
--或
insert into new_a_table(ta001,ta002,ta003)
select 1,1.5,'数据一'
union all
select 2,2.5,'数据二'
union all
select 3,3.5,'数据三'

--4、更新数据/修改数据
--update 表名 set 字段=新值 这种属于全部更新,没有任何条件
--update 表名 set 字段=新值 where 字段=条件 明确的修改某条数据;修改某部分数据可用in,如:update new_a_table set ta002=3.14 where ta001 in (1,2)
--示例将new_a_table表中的ta002等于2的字段值修改为3.14
update new_a_table set ta002=3.14 where ta001=2

--5、删除数据
--delete from 表名 where 字段=条件 where的意思同更新数据
--示例:删除new_a_table表中字段ta001等于1的数据
delete from new_a_table where ta001=1

--6、增加字段
--alter table 表名 add 字段名 值类型
--示例:在new_a_table表中加入ta004的字段
alter table new_a_table add ta004 datetime

--7、修改字段名
--execute sp_rename '表名.字段名','新字段名'
--示例:将new_a_table表中的字段ta004修改成ta005
execute sp_rename 'new_a_table.ta004','ta005'

--8、修改字段值类型
--alter table 表名 alter column 字段名 字段值类型
--示例:将new_a_table表中的字段ta005值类型修改成varchar(50)
alter table new_a_table alter column ta005 varchar(50)

--9、删除字段
--alter table 表名 drop column 字段名
--示例:将new_a_table表中的字段ta005删除
alter table new_a_table drop column ta005

--10、复制表
--select * into new_table新表表名 from 旧表表名
--示例:将new_a_table进行复制,新表的表名为new_b_table
select * into new_b_table from new_a_table

--11、重置数据表/清空数据表
--truncate table 表名
--示例:清空new_a_table表中的所有数据
truncate table new_a_table

--12、删除表/删除表结构
--drop table 表名
--示例:删除new_a_table表结构
drop table new_a_table

--13、查询数据
--select * from 表名 where 字段=条件 where的意思同更新数据
--示例:查询数据表new_b_table中ta001等于3的数据
select * from new_b_table where ta001=3

--14、表链接(内链接,左链接,右链接)
--内链接:select * from 表名1 inner join 表名2 on 表名1字段=表名2字段 where 字段=条件 where的意思同更新数据
--左链接:select * from 表名1 left join 表名2 on 表名1字段=表名2字段 where 字段=条件 where的意思同更新数据
--右链接:select * from 表名1 right join 表名2 on 表名1字段=表名2字段 where 字段=条件 where的意思同更新数据
--14.1
create table a_table
(
ta001 int null,--采购单号
ta002 datetime null,--采购日期
ta003 varchar(20) not null--采购人员
)
insert into a_table(ta001,ta002,ta003)
values (1,'2020-01-01','采购员一'),
	   (2,'2020-01-15','采购员二'),
	   (3,'2020-02-23','采购员三'),
	   (4,'2020-03-17','采购员三')
	   
--14.2
create table b_table
(
tb001 int null,--采购单号
tb002 float null,--采购单价
tb003 varchar(20) not null,--采购产品
tb004 float null--采购金额
)
insert into b_table(tb001,tb002,tb003,tb004)
values (1,1.5,'a',1.5),
	   (2,2.5,'a',5),
	   (3,3.5,'b',10.5),
	   (4,4.5,'c',18),
	   (5,5.5,'d',27.5),
	   (6,1.5,'a',9),
	   (7,7.5,'k',52.5)

select * from a_table A inner join b_table B on A.ta001=B.tb001 where A.ta001 in (1,2,3,4)
select * from a_table A inner join b_table B on A.ta001=B.tb001 where A.ta001 between 1 and 4
select * from a_table A left join b_table B on A.ta001=B.tb001
select * from a_table A right join b_table B on A.ta001=B.tb001 where B.tb001 between 5 and 7

--15、排序
--select * from 表名 order by 字段 --默认字段后无ASC(ASC可写可不写)按字段升序(升序ASC降序DESC)
--select row_number()over(partition by 字段1 order by 字段2),* from 表名 --特殊排序
--示例1:查询表b_table按采购金额排降序
select * from b_table order by tb004 desc
--示例2、查询表b_table先按产品排序再按单价进行筛选,筛选出产品最大的单价
--示例2第一步
select row_number()over(partition by tb003 order by tb002 desc),* from b_table
--示例2第二步
select * from (select row_number()over(partition by tb003 order by tb002 desc) as px,* from b_table)A where px=1
--上述中有运用到as;as是将字段进行重命名,重命名的结果也可以是中文,如:
--as示例一:
select * from (select row_number()over(partition by tb003 order by tb002 desc) as 排序,* from b_table)A where 排序=1
--as示例二:
select * from (select row_number()over(partition by tb003 order by tb002 desc) as [序列号-1],* from b_table)A where [序列号-1]=1
--as示例三:
select * from (select row_number()over(partition by tb003 order by tb002 desc) as '序列号-1',* from b_table)A where [序列号-1]=1
  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值