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

2019-09-11 20:31:29 浏览数 (1)

-----------------------接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 专业(专业代码)

)

注意以上表的删除顺序:先学生 再班级 再专业 再系部,,,

9.数据的添加

格式:

INSERT [INTO] 表名 (列名1,列名2,……) VALUES(value1,value2,……)

9.1有vavlues的插入

示例:

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

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

0 人点赞