
Sqlserver 学习笔记
-----------------------接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