SQL_4th_插入insert、查询select、删除delete、更新update

CREATE DATABASE Student
GO

USE Student
GO

--创建Student表
CREATE TABLE Student
(
SCode INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
SName CHAR(10) NOT NULL,
SAddress NVARCHAR(50),
SGrade FLOAT,
SEmail NVARCHAR(50),
SSex BIT
)

--插入一行数据(标识列不用插入,插入一整行数据,除标识列以外)
INSERT INTO Student(SName,SAddress,SGrade,SEmail,SSex)
VALUES('张青才','上海',6,'123456@hpe.com',1)

SELECT * FROM Student


打印:

SCode	SName		SAddress	SGrade	SEmail		SSex
1	张青才    	上海		6	123456@hpe.com	1


总结:除标识列SCode外的列,都可以在VALUES中写明要插入的内容,但必须在表名后的括号中写上一一对应的列名。


--插入一行数据(仅插入不允许为空的数据(除标识列))
INSERT INTO Student(SName)
VALUES('张爱国')

SELECT * FROM Student


打印:
SCode	SName		SAddress	SGrade	SEmail		SSex
1	张青才    	上海		6	123456@hpe.com	1
2	张爱国    	NULL		NULL	NULL		NULL

总结:SName列不允许为空,要插入必须要指明值,而允许为空的列可以不插入,保留为默认值NULL。


--插入一行数据(标识列不用插入,仅插入不允许为空的数据)
INSERT INTO Student(SName,SAddress,SGrade,SEmail,SSex)
VALUES('张发财',DEFAULT,DEFAULT,DEFAULT,DEFAULT)

SELECT * FROM Student

打印:
SCode	SName		SAddress	SGrade	SEmail			SSex
1	张青才    	上海		6	123456@hpe.com	1
2	张爱国    	NULL		NULL	NULL			NULL
3	张发财    	NULL		NULL	NULL			NULL

总结:对于一些可以为空的列,可以使用DEFAULT来填充。

--从另一个表中导入数据类型相同的列的值
--创建表AddressList,三个列的类型与Student表中的一致
CREATE TABLE AddressList(
Name CHAR(10) NOT NULL,
Address NVARCHAR(50),
Email NVARCHAR(50),
)

INSERT INTO AddressList(Name,Address,Email)
SELECT SName,SAddress,SEmail FROM Student

SELECT * FROM AddressList

打印:
Name		Address		Email
张青才		上海			123456@hpe.com
张爱国		NULL		NULL
张发财		NULL		NULL


--从一个表中选取需要的列,去创建一个新表
--首先删除上面创建的AddressList表
DROP TABLE AddressList

--从Student表中选取所需的列到新表AddressList中
SELECT Student.SName,Student.SAddress,Student.SGrade,Student.SEmail,Student.SSex
INTO AddressList
FROM Student

SELECT * FROM AddressList

打印:

SName		SAddress	SGrade	SEmail			SSex
张青才    	上海			6		123456@hpe.com	1
张爱国    	NULL		NULL	NULL			NULL
张发财    	NULL		NULL	NULL			NULL

--多行插入
INSERT INTO Student(SName)
VALUES('张飞'),('赵云'),('马超')

SELECT * FROM Student

打印:
SCode	SName	SAddress	SGrade	SEmail	        	SSex
1	张青才   上海	    	6	123456@hpe.com		1
2	张爱国   NULL		NULL	NULL	        	NULL
3	张发财   NULL		NULL	NULL			NULL
4	张飞     NULL		NULL	NULL			NULL
5	赵云     NULL		NULL	NULL			NULL
6	马超     NULL		NULL	NULL			NULL

INSERT INTO Student(SName,SAddress,SGrade)
VALUES ('小明','北京','6'),('小红','上海','5'),('小刚','广州','4')

SELECT * FROM Student


打印:
SCode	SName		SAddress	SGrade	SEmail			SSex
1	张青才    	上海		6	123456@hpe.com		1
2	张爱国    	NULL		NULL	NULL			NULL
3	张发财    	NULL		NULL	NULL			NULL
4	张飞      	NULL		NULL	NULL			NULL
5	赵云      	NULL		NULL	NULL			NULL
6	马超      	NULL		NULL	NULL			NULL
7	小明      	北京		6	NULL			NULL
8	小红      	上海		5	NULL			NULL
9	小刚      	广州		4	NULL			NULL


--删除数据行
DELETE FROM Student WHERE SName='张飞'

SELECT * FROM Student

打印:
SCode	SName		SAddress	SGrade	SEmail			SSex
1	张青才    	上海		6	123456@hpe.com		1
2	张爱国    	NULL		NULL	NULL			NULL
3	张发财    	NULL		NULL	NULL			NULL
5	赵云      	NULL		NULL	NULL			NULL
6	马超      	NULL		NULL	NULL			NULL
7	小明      	北京		6	NULL			NULL
8	小红      	上海		5	NULL			NULL
9	小刚      	广州		4	NULL			NULL


DELETE FROM Student WHERE SCode>7

SELECT * FROM Student

打印:
SCode	SName		SAddress	SGrade	SEmail			SSex
1	张青才    	上海		6	123456@hpe.com		1
2	张爱国    	NULL		NULL	NULL			NULL
3	张发财    	NULL		NULL	NULL			NULL
5	赵云      	NULL		NULL	NULL			NULL
6	马超      	NULL		NULL	NULL			NULL
7	小明      	北京		6	NULL			NULL

--更新数据行
UPDATE Student SET SSex=0 WHERE SSex=1

SELECT * FROM Student

打印:
SCode	SName		SAddress	SGrade	SEmail			SSex
1	张青才    	上海		6	123456@hpe.com		0
2	张爱国    	NULL		NULL	NULL			NULL
3	张发财    	NULL		NULL	NULL			NULL
5	赵云      	NULL		NULL	NULL			NULL
6	马超      	NULL		NULL	NULL			NULL
7	小明      	北京		6	NULL			NULL

UPDATE Student SET SAddress='长沙' WHERE SAddress='上海'

SELECT * FROM Student

打印:
SCode	SName		SAddress	SGrade	SEmail			SSex
1	张青才    	长沙		6	123456@hpe.com		0
2	张爱国    	NULL		NULL	NULL			NULL
3	张发财    	NULL		NULL	NULL			NULL
5	赵云      	NULL		NULL	NULL			NULL
6	马超      	NULL		NULL	NULL			NULL
7	小明      	北京		6	NULL			NULL

CREATE TABLE Scores(
Name NVARCHAR(20) NOT NULL,
Scores INT NOT NULL
)

INSERT INTO Scores(Name,Scores)
VALUES ('张三',90),('李四',95),('王五',96)

SELECT * FROM Scores

打印:
Name	Scores
张三	90
李四	95
王五	96

UPDATE Scores SET Scores=Scores-5 WHERE Scores>90

SELECT * FROM Scores

打印:
Name	Scores
张三	90
李四	90
王五	91

再执行一次:
打印:
Name	Scores
张三	90
李四	90
王五	86




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值