-----------------------接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