SQLServer 学习笔记之超详细基础SQL语句 Part 2

时间:2023-03-09 20:09:10
SQLServer 学习笔记之超详细基础SQL语句 Part 2

Sqlserver 学习笔记

by:授客 QQ1033553122

-----------------------接Part 1-------------------


建立如下数据表

CREATE
TABLE std_table1

(

学号   
   
INT PRIMARY KEY
IDENTITY,

姓名       
CHAR(20)
NOT NULL,

专业方向    
VARCHAR(10)
NOT NULL,

系部代码    
CHAR(2)
NOT NULL,

备注       
VARCHAR(50)

)

CREATE
TABLE
系部

(

系部代码
CHAR(6)
NOT NULL PRIMARY
KEY,

系部名称
VARCHAR(20)
NOT NULL,

系主任     
CHAR(8)

)

CREATE
TABLE
专业

(

专业代码
CHAR(4)
NOT NULL PRIMARY
KEY,

专业名称
VARCHAR(20)
NOT NULL,

系部名称
CHAR(6)
CONSTRAINT fk_wj1 REFERENCES
系部(系部代码)

)

CREATE
TABLE
班级

(

班级代码
CHAR(9)
NOT NULL PRIMARY
KEY,

班级名称
VARCHAR(20),

专业代码
CHAR(4)
CONSTRAINT fk_wj2 REFERENCES
专业(专业代码),

系部代码
CHAR(6)
CONSTRAINT fk_wj3 REFERENCES
系部(系部代码),

备注   
CHAR(50)

)

CREATE
TABLE
学生

(

学号   
CHAR(12)
NOT NULL PRIMARY
KEY,

姓名   
CHAR(8)
NOT NULL,

出生年月
datetime,--注意这里只能用小写

入学日期
datetime,

班级代码
CHAR(9)
CONSTRAINT fk_wj4 REFERENCES
班级(班级代码),

系部代码
CHAR(6)
CONSTRAINT fk_wj5 REFERENCES
系部(系部代码),

专业代码
CHAR(4)
CONSTRAINT fk_wj6 REFERENCES
专业(专业代码)

)

SQLServer 学习笔记之超详细基础SQL语句 Part 2
SQLServer 学习笔记之超详细基础SQL语句 Part 2

注意以上表的删除顺序:先学生

再班级
再专业
再系部,,,

9.数据的添加

格式:

INSERT [INTO]

表名 (列名1,列名2,……)

VALUES(value1,value2,……)

9.1有vavlues的插入

示例:

前提:“学号”列为标识增量

SQLServer 学习笔记之超详细基础SQL语句 Part 2SQLServer 学习笔记之超详细基础SQL语句 Part 2

SQLServer 学习笔记之超详细基础SQL语句 Part 2

1--往表std_table中添加一条数据[注意:学号设为了增量标识]

INSERT
INTO std_TABLE VALUES('zs',
'计算机',

'01', '没有')

2--往表std_table中的某些列插入一条数据

INSERT
INTO 
std_TABLE(名称,

专业方向,

系部代码)

VALUES('张三',

'数学',

'04')

9.1.2无values的插入

--往表std_table中插入一批数据

INSERT
std_TABLE(姓名,

专业方向,

系部代码)

SELECT
姓名,

专业方向,

系部代码

FROM
std_TABLE

10
数据查询

10.1--查询表std_table中前10行记录

SELECT
TOP 10
系部代码,

专业方向

FROM
std_table

10.2--查询表std_table前面P的记录结果

SELECT
TOP 50 PERCENT
系部代码,

专业方向

FROM
std_table

10.3--查询表std_table中姓名为k,或者j开头的的所有记录

SELECT
* FROM std_table

WHERE
姓名
LIKE '[kj]%'

10.4--查询表std_table中姓名不为k,或者j开头的的所有记录

SELECT
* FROM std_table

--WHERE
姓名
NOT LIKE '[kj]%'

WHERE
姓名
LIKE '![kj]%'


11
.用查询结果新生新表【类比插入INSERT就好理解了】

格式:SELECT
* INTO
新表表名
from
表名

示例:

SELECT
* INTO new_table FROM std_table

SELECT
* FROM new_table

SELECT
* INTO new_table2 FROM std_table

WHERE
姓名
= 'zs'

SELECT
* FROM new_table2

SELECT
学号,

姓名
INTO new_table1 FROM std_table

SELECT
* FROM new_table1

SELECT
学号,

姓名,

专业方向,

系部代码,

备注

FROM
std_table

下面的例子会创建一个名为"Persons_Order_Backup"

的新表,其中包含了从
Persons

Orders
两个表中取得的信息

SELECT Persons.LastName,Orders.OrderNo

INTO Persons_Order_Backup

FROM Persons

INNER JOIN Orders

ON Persons.Id_P=Orders.Id_P

12.把查询结果新生新表,且把新表为临时表(下面#new_table变成了系统数据库下的临时表)

SELECT
* INTO #new_table FROM std_table

SELECT
* FROM #new_table