-
Notifications
You must be signed in to change notification settings - Fork 0
/
15插入数据.sql
130 lines (129 loc) · 2.39 KB
/
15插入数据.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
/*插入数据*/
/*
插入有三种方式:
插入完整的行
插入行的一部分
插入某些查询的结果
*/
# 用INSERT将一行数据插入到表中
# INTO是可选的
# 每一列都要有值,如果没有,用NULL代替
# 不允许插入主键相同的值
INSERT INTO Customers
VALUES(
1000000006,
'Toy Land',
'123 Any Street',
'New York',
'NY',
'1111',
'USA',
NULL,
NULL);
# 按顺序指定列名并插入
INSERT INTO Customers(
cust_id,
cust_name,
cust_address,
cust_city,
cust_state,
cust_zip,
cust_country,
cust_contact,
cust_email)
VALUES(
1000000006,
'Toy Land',
'123 Any Street',
'New York',
'NY',
'1111',
'USA',
NULL,
NULL);
# 以其他顺序指定列名并插入
# 未指定的列为NULL
INSERT INTO Customers(
cust_id,
cust_contact,
cust_email,
cust_name,
cust_address,
cust_city,
cust_state,
cust_zip
)
VALUES(
1000000006,
NULL,
NULL,
'Toy Land',
'123 Any Street',
'New York',
'NY',
'1111'
);
# 插入行的一部分(即部分列)
# 被省略的列需要满足允许NULL或者有默认值
INSERT INTO Customers(
cust_id,
cust_name,
cust_address,
cust_city,
cust_state,
cust_zip,
cust_country
)
VALUES(
1000000006,
'Toy Land',
'123 Any Street',
'New York',
'NY',
'1111',
'USA'
);
# 插入检索出来的数据
# 用列的位置来匹配,而不是列名
INSERT INTO Customers(
cust_id,
cust_name,
cust_address,
cust_city,
cust_state,
cust_zip,
cust_country,
cust_contact,
cust_email)
SELECT cust_id,
cust_name,
cust_address,
cust_city,
cust_state,
cust_zip,
cust_country,
cust_contact,
cust_email
FROM CustNew;
# 用CREATE TABLE配合SELECT将一个表的内容复制到另一个表中
CREATE TABLE CustCopy AS SELECT * FROM Customers;
# SQL Server的写法
SELECT * INTO CustCopy FROM Customers;
/*挑战题*/
# 1
INSERT INTO Customers(
cust_id,
cust_name,
cust_email)
VALUES(
1000000007,
'Tjg',
);
# 2
-- MySQL, MariaDB, Oracle, PostgreSQL, SQLite
CREATE TABLE OrdersBackup AS SELECT * FROM Orders;
CREATE TABLE OrderItemsBackup AS SELECT * FROM OrderItems;
-- SQL Server
SELECT * INTO OrdersBackup FROM Orders;
SELECT * INTO OrderItemsBackup FROM OrderItems;