阿里云轻量应用服务器Linux-Centos7下MySQL8.0.19的使用

轻量应用服务器,基于LAMP+CentOS(Linux),前端小白服务器部署+网络部署全过程 过程很详细,希望对一些迷茫的同学有帮助,耐心读完就可以用自己的电脑操作服务器了。 一、介绍环境 1.首先进入操控台找到轻量应用服务器(若找不到可以在下方)产品与服务里面搜。 2.进入轻量应用服务器,找到重置系统,应用镜像选择LAMP,系统镜像选择CentOS,点击确认更换 3.在远程管理里面可以查看到你的IP地址和账号,并设置密码,假设此密码是密码A(下面还有地方需要用到密码) ... 阅读详情

初始环境:阿里云轻量应用服务器已经安装MySQL8.0.19
具体目标:使用MySQL 8.0.19

第一步:初始化

1.进入数据库,然后输入密码123456

mysql -u root -p

2.创建数据库

create database test;

3.使用数据库

use test;

第二步:创建一些表

1.创建表Customers

CREATE TABLE Customers
(
  cust_id      char(10)  NOT NULL ,
  cust_name    char(50)  NOT NULL ,
  cust_address char(50)  NULL ,
  cust_city    char(50)  NULL ,
  cust_state   char(5)   NULL ,
  cust_zip     char(10)  NULL ,
  cust_country char(50)  NULL ,
  cust_contact char(50)  NULL ,
  cust_email   char(255) NULL 
);

2.创建表OrderItems

CREATE TABLE OrderItems
(
  order_num  int          NOT NULL ,
  order_item int          NOT NULL ,
  prod_id    char(10)     NOT NULL ,
  quantity   int          NOT NULL ,
  item_price decimal(8,2) NOT NULL 
);

3.创建表Orders

CREATE TABLE Orders
(
  order_num  int      NOT NULL ,
  order_date datetime NOT NULL ,
  cust_id    char(10) NOT NULL 
);

4.创建表Products

CREATE TABLE Products
(
  prod_id    char(10)      NOT NULL ,
  vend_id    char(10)      NOT NULL ,
  prod_name  char(255)     NOT NULL ,
  prod_price decimal(8,2)  NOT NULL ,
  prod_desc  text          NULL 
);

5.创建表Vendors

CREATE TABLE Vendors
(
  vend_id      char(10) NOT NULL ,
  vend_name    char(50) NOT NULL ,
  vend_address char(50) NULL ,
  vend_city    char(50) NULL ,
  vend_state   char(5)  NULL ,
  vend_zip     char(10) NULL ,
  vend_country char(50) NULL 
);

6.定义主键

ALTER TABLE Customers ADD PRIMARY KEY (cust_id);
ALTER TABLE OrderItems ADD PRIMARY KEY (order_num, order_item);
ALTER TABLE Orders ADD PRIMARY KEY (order_num);
ALTER TABLE Products ADD PRIMARY KEY (prod_id);
ALTER TABLE Vendors ADD PRIMARY KEY (vend_id);

7.定义外键

ALTER TABLE OrderItems ADD CONSTRAINT FK_OrderItems_Orders FOREIGN KEY (order_num) REFERENCES Orders (order_num);
ALTER TABLE OrderItems ADD CONSTRAINT FK_OrderItems_Products FOREIGN KEY (prod_id) REFERENCES Products (prod_id);
ALTER TABLE Orders ADD CONSTRAINT FK_Orders_Customers FOREIGN KEY (cust_id) REFERENCES Customers (cust_id);
ALTER TABLE Products ADD CONSTRAINT FK_Products_Vendors FOREIGN KEY (vend_id) REFERENCES Vendors (vend_id);

第三步:添加一些数据

1.给表Customers添加数据

INSERT INTO Customers(cust_id, cust_name, cust_address, cust_city, cust_state, cust_zip, cust_country, cust_contact, cust_email)
VALUES('1000000001', 'Village Toys', '200 Maple Lane', 'Detroit', 'MI', '44444', 'USA', 'John Smith', 'sales@villagetoys.com');
INSERT INTO Customers(cust_id, cust_name, cust_address, cust_city, cust_state, cust_zip, cust_country, cust_contact)
VALUES('1000000002', 'Kids Place', '333 South Lake Drive', 'Columbus', 'OH', '43333', 'USA', 'Michelle Green');
INSERT INTO Customers(cust_id, cust_name, cust_address, cust_city, cust_state, cust_zip, cust_country, cust_contact, cust_email)
VALUES('1000000003', 'Fun4All', '1 Sunny Place', 'Muncie', 'IN', '42222', 'USA', 'Jim Jones', 'jjones@fun4all.com');
INSERT INTO Customers(cust_id, cust_name, cust_address, cust_city, cust_state, cust_zip, cust_country, cust_contact, cust_email)
VALUES('1000000004', 'Fun4All', '829 Riverside Drive', 'Phoenix', 'AZ', '88888', 'USA', 'Denise L. Stephens', 'dstephens@fun4all.com');
INSERT INTO Customers(cust_id, cust_name, cust_address, cust_city, cust_state, cust_zip, cust_country, cust_contact)
VALUES('1000000005', 'The Toy Store', '4545 53rd Street', 'Chicago', 'IL', '54545', 'USA', 'Kim Howard');

2.给表Vendors添加数据

INSERT INTO Vendors(vend_id, vend_name, vend_address, vend_city, vend_state, vend_zip, vend_country)
VALUES('BRS01','Bears R Us','123 Main Street','Bear Town','MI','44444', 'USA');
INSERT INTO Vendors(vend_id, vend_name, vend_address, vend_city, vend_state, vend_zip, vend_country)
VALUES('BRE02','Bear Emporium','500 Park Street','Anytown','OH','44333', 'USA');
INSERT INTO Vendors(vend_id, vend_name, vend_address, vend_city, vend_state, vend_zip, vend_country)
VALUES('DLL01','Doll House Inc.','555 High Street','Dollsville','CA','99999', 'USA');
INSERT INTO Vendors(vend_id, vend_name, vend_address, vend_city, vend_state, vend_zip, vend_country)
VALUES('FRB01','Furball Inc.','1000 5th Avenue','New York','NY','11111', 'USA');
INSERT INTO Vendors(vend_id, vend_name, vend_address, vend_city, vend_state, vend_zip, vend_country)
VALUES('FNG01','Fun and Games','42 Galaxy Road','London', NULL,'N16 6PS', 'England');
INSERT INTO Vendors(vend_id, vend_name, vend_address, vend_city, vend_state, vend_zip, vend_country)
VALUES('JTS01','Jouets et ours','1 Rue Amusement','Paris', NULL,'45678', 'France');

3.给表Products添加数据

INSERT INTO Products(prod_id, vend_id, prod_name, prod_price, prod_desc)
VALUES('BR01', 'BRS01', '8 inch teddy bear', 5.99, '8 inch teddy bear, comes with cap and jacket');
INSERT INTO Products(prod_id, vend_id, prod_name, prod_price, prod_desc)
VALUES('BR02', 'BRS01', '12 inch teddy bear', 8.99, '12 inch teddy bear, comes with cap and jacket');
INSERT INTO Products(prod_id, vend_id, prod_name, prod_price, prod_desc)
VALUES('BR03', 'BRS01', '18 inch teddy bear', 11.99, '18 inch teddy bear, comes with cap and jacket');
INSERT INTO Products(prod_id, vend_id, prod_name, prod_price, prod_desc)
VALUES('BNBG01', 'DLL01', 'Fish bean bag toy', 3.49, 'Fish bean bag toy, complete with bean bag worms with which to feed it');
INSERT INTO Products(prod_id, vend_id, prod_name, prod_price, prod_desc)
VALUES('BNBG02', 'DLL01', 'Bird bean bag toy', 3.49, 'Bird bean bag toy, eggs are not included');
INSERT INTO Products(prod_id, vend_id, prod_name, prod_price, prod_desc)
VALUES('BNBG03', 'DLL01', 'Rabbit bean bag toy', 3.49, 'Rabbit bean bag toy, comes with bean bag carrots');
INSERT INTO Products(prod_id, vend_id, prod_name, prod_price, prod_desc)
VALUES('RGAN01', 'DLL01', 'Raggedy Ann', 4.99, '18 inch Raggedy Ann doll');
INSERT INTO Products(prod_id, vend_id, prod_name, prod_price, prod_desc)
VALUES('RYL01', 'FNG01', 'King doll', 9.49, '12 inch king doll with royal garments and crown');
INSERT INTO Products(prod_id, vend_id, prod_name, prod_price, prod_desc)
VALUES('RYL02', 'FNG01', 'Queen doll', 9.49, '12 inch queen doll with royal garments and crown');

4.给表Orders添加数据

INSERT INTO Orders(order_num, order_date, cust_id)
VALUES(20005, '2012-05-01', '1000000001');
INSERT INTO Orders(order_num, order_date, cust_id)
VALUES(20006, '2012-01-12', '1000000003');
INSERT INTO Orders(order_num, order_date, cust_id)
VALUES(20007, '2012-01-30', '1000000004');
INSERT INTO Orders(order_num, order_date, cust_id)
VALUES(20008, '2012-02-03', '1000000005');
INSERT INTO Orders(order_num, order_date, cust_id)
VALUES(20009, '2012-02-08', '1000000001');

5.给表OrderItems添加数据

INSERT INTO OrderItems(order_num, order_item, prod_id, quantity, item_price)
VALUES(20005, 1, 'BR01', 100, 5.49);
INSERT INTO OrderItems(order_num, order_item, prod_id, quantity, item_price)
VALUES(20005, 2, 'BR03', 100, 10.99);
INSERT INTO OrderItems(order_num, order_item, prod_id, quantity, item_price)
VALUES(20006, 1, 'BR01', 20, 5.99);
INSERT INTO OrderItems(order_num, order_item, prod_id, quantity, item_price)
VALUES(20006, 2, 'BR02', 10, 8.99);
INSERT INTO OrderItems(order_num, order_item, prod_id, quantity, item_price)
VALUES(20006, 3, 'BR03', 10, 11.99);
INSERT INTO OrderItems(order_num, order_item, prod_id, quantity, item_price)
VALUES(20007, 1, 'BR03', 50, 11.49);
INSERT INTO OrderItems(order_num, order_item, prod_id, quantity, item_price)
VALUES(20007, 2, 'BNBG01', 100, 2.99);
INSERT INTO OrderItems(order_num, order_item, prod_id, quantity, item_price)
VALUES(20007, 3, 'BNBG02', 100, 2.99);
INSERT INTO OrderItems(order_num, order_item, prod_id, quantity, item_price)
VALUES(20007, 4, 'BNBG03', 100, 2.99);
INSERT INTO OrderItems(order_num, order_item, prod_id, quantity, item_price)
VALUES(20007, 5, 'RGAN01', 50, 4.49);
INSERT INTO OrderItems(order_num, order_item, prod_id, quantity, item_price)
VALUES(20008, 1, 'RGAN01', 5, 4.99);
INSERT INTO OrderItems(order_num, order_item, prod_id, quantity, item_price)
VALUES(20008, 2, 'BR03', 5, 11.99);
INSERT INTO OrderItems(order_num, order_item, prod_id, quantity, item_price)
VALUES(20008, 3, 'BNBG01', 10, 3.49);
INSERT INTO OrderItems(order_num, order_item, prod_id, quantity, item_price)
VALUES(20008, 4, 'BNBG02', 10, 3.49);
INSERT INTO OrderItems(order_num, order_item, prod_id, quantity, item_price)
VALUES(20008, 5, 'BNBG03', 10, 3.49);
INSERT INTO OrderItems(order_num, order_item, prod_id, quantity, item_price)
VALUES(20009, 1, 'BNBG01', 250, 2.49);
INSERT INTO OrderItems(order_num, order_item, prod_id, quantity, item_price)
VALUES(20009, 2, 'BNBG02', 250, 2.49);
INSERT INTO OrderItems(order_num, order_item, prod_id, quantity, item_price)
VALUES(20009, 3, 'BNBG03', 250, 2.49);

6.提交操作

commit;

第四步:详情一览

Customers 表:
在这里插入图片描述
Vendors 表:
在这里插入图片描述
Products 表:
在这里插入图片描述
Orders 表:
在这里插入图片描述
OrderItems 表:
在这里插入图片描述

第五步:检索数据

1.检索单个列:

SELECT prod_name 
FROM Products;

2.检索多个列:

SELECT prod_id, prod_name, prod_price 
FROM Products;

3.检索所有列:

SELECT * 
FROM Products;

4.检索不同的值:

SELECT vend_id 
FROM Products;
SELECT DISTINCT vend_id 
FROM Products;

5.限制结果:

SELECT prod_name 
FROM Products 
LIMIT 5;
SELECT prod_name 
FROM Products 
LIMIT 5 OFFSET 5;

6.使用注释:

SELECT prod_name -- 这是一条注释 
FROM Products;
# 这是一条注释
SELECT prod_name 
FROM Products;
/* SELECT prod_name, vend_id
FROM Products; */
SELECT prod_name 
FROM Products;

第六步:排序检索数据

1.排序数据

SELECT prod_name 
FROM Products;
SELECT prod_name 
FROM Products 
ORDER BY prod_name;

2.按多个列排序

SELECT prod_id, prod_price, prod_name 
FROM Products
ORDER BY prod_price, prod_name;

3.按列位置排序

SELECT prod_id, prod_price, prod_name 
FROM Products 
ORDER BY 2, 3;

4.指定排序方向

SELECT prod_id, prod_price, prod_name 
FROM Products 
ORDER BY prod_price DESC;
SELECT prod_id, prod_price, prod_name 
FROM Products 
ORDER BY prod_price DESC, prod_name;

第七步:过滤数据

1.使用 WHERE 子句

SELECT prod_name, prod_price 
FROM Products 
WHERE prod_price = 3.49;

2.检查单个值:

SELECT prod_name, prod_price 
FROM Products 
WHERE prod_price < 10;
SELECT prod_name, prod_price 
FROM Products 
WHERE prod_price <= 10;

3.不匹配检查:

SELECT vend_id, prod_name 
FROM Products 
WHERE vend_id <> 'DLL01';
SELECT vend_id, prod_name 
FROM Products 
WHERE vend_id != 'DLL01';

4.范围值检查:

SELECT prod_name, prod_price 
FROM Products 
WHERE prod_price BETWEEN 5 AND 10;

5.空值检查:

SELECT prod_name 
FROM Products 
WHERE prod_price IS NULL;
SELECT cust_name 
FROM Customers 
WHERE cust_email IS NULL;

第八步:高级数据过滤

1.AND 操作符

SELECT prod_id, prod_price, prod_name 
FROM Products 
WHERE vend_id = 'DLL01' AND prod_price <= 4;

2.OR 操作符

SELECT prod_name, prod_price 
FROM Products 
WHERE vend_id = 'DLL01' OR vend_id = 'BRS01';

3.求值顺序

SELECT prod_name, prod_price 
FROM Products 
WHERE vend_id = 'DLL01' OR vend_id = 'BRS01' AND prod_price >= 10;
SELECT prod_name, prod_price 
FROM Products 
WHERE (vend_id = 'DLL01' OR vend_id = 'BRS01') AND prod_price >= 10;

4.IN 操作符

SELECT prod_name, prod_price 
FROM Products 
WHERE vend_id IN ( 'DLL01', 'BRS01' ) ORDER BY prod_name;
SELECT prod_name, prod_price 
FROM Products 
WHERE vend_id = 'DLL01' OR vend_id = 'BRS01' ORDER BY prod_name;

5.NOT 操作符

SELECT prod_name 
FROM Products 
WHERE NOT vend_id = 'DLL01' 
ORDER BY prod_name;
SELECT prod_name 
FROM Products 
WHERE vend_id <> 'DLL01' 
ORDER BY prod_name;

第九步:用通配符进行过滤

1.百分号(%)通配符

SELECT prod_id, prod_name 
FROM Products 
WHERE prod_name LIKE 'Fish%';
SELECT prod_id, prod_name 
FROM Products 
WHERE prod_name LIKE '%bean bag%';
SELECT prod_name 
FROM Products 
WHERE prod_name LIKE 'F%y';

2.下划线(_)通配符

SELECT prod_id, prod_name 
FROM Products 
WHERE prod_name LIKE '__ inch teddy bear';
SELECT prod_id, prod_name 
FROM Products 
WHERE prod_name LIKE '% inch teddy bear';

第十步:创建计算字段

1.拼接字段

SELECT Concat(vend_name, ' (', vend_country, ')') 
FROM Vendors 
ORDER BY vend_name;
SELECT Concat(RTRIM(vend_name) ,' (' ,RTRIM(vend_country) ,')') 
FROM Vendors 
ORDER BY vend_name;

2.使用别名:

SELECT Concat(vend_name, ' (', vend_country, ')') AS vend_title 
FROM Vendors 
ORDER BY vend_name;

3.执行算术计算:

SELECT prod_id, quantity, item_price 
FROM OrderItems 
WHERE order_num = 20008;
SELECT prod_id, quantity, item_price, quantity*item_price AS expanded_price 
FROM OrderItems 
WHERE order_num = 20008;

第十一步:使用函数处理数据

1.文本处理函数:

SELECT vend_name, UPPER(vend_name) AS vend_name_upcase 
FROM Vendors 
ORDER BY vend_name;
SELECT cust_name, cust_contact 
FROM Customers 
WHERE cust_contact = 'Michael Green';
SELECT cust_name, cust_contact 
FROM Customers 
WHERE SOUNDEX(cust_contact) = SOUNDEX('Michael Green');

2.日期和时间处理函数:

SELECT order_num 
FROM Orders 
WHERE YEAR(order_date) = 2012;

第十二步:汇总数据

1.AVG() 函数

SELECT AVG(prod_price) AS avg_price 
FROM Products;
SELECT AVG(prod_price) AS avg_price 
FROM Products 
WHERE vend_id = 'DLL01';

2.COUNT() 函数

SELECT COUNT(*) AS num_cust 
FROM Customers;
SELECT COUNT(cust_email) AS num_cust 
FROM Customers;

3.MAX() 函数

SELECT MAX(prod_price) AS max_price 
FROM Products;

4.MIN() 函数

SELECT MIN(prod_price) AS min_price 
FROM Products;

5.SUM() 函数

SELECT SUM(quantity) AS items_ordered 
FROM OrderItems 
WHERE order_num = 20005;
SELECT SUM(item_price*quantity) AS total_price 
FROM OrderItems 
WHERE order_num = 20005;

6.聚集不同值

SELECT AVG(DISTINCT prod_price) AS avg_price 
FROM Products 
WHERE vend_id = 'DLL01';

7.组合聚集函数

SELECT COUNT(*) AS num_items, MIN(prod_price) AS price_min, MAX(prod_price) AS price_max, AVG(prod_price) AS price_avg 
FROM Products;

第十三步:分组数据

1.数据分组

SELECT COUNT(*) AS num_prods 
FROM Products 
WHERE vend_id = 'DLL01';

2.创建分组

SELECT vend_id, COUNT(*) AS num_prods 
FROM Products 
GROUP BY vend_id;

3.过滤分组

SELECT cust_id, COUNT(*) AS orders 
FROM Orders 
GROUP BY cust_id 
HAVING COUNT(*) >= 2;
SELECT vend_id, COUNT(*) AS num_prods 
FROM Products 
WHERE prod_price >= 4 
GROUP BY vend_id 
HAVING COUNT(*) >= 2;
SELECT vend_id, COUNT(*) AS num_prods 
FROM Products 
GROUP BY vend_id 
HAVING COUNT(*) >= 2;

4.分组和排序

SELECT order_num, COUNT(*) AS items
FROM OrderItems
GROUP BY order_num
HAVING COUNT(*) >= 3;
SELECT order_num, COUNT(*) AS items
FROM OrderItems
GROUP BY order_num
HAVING COUNT(*) >= 3
ORDER BY items, order_num;

第十四步:使用子查询

1.利用子查询进行过滤

SELECT order_num
FROM OrderItems
WHERE prod_id = 'RGAN01';
SELECT cust_id
FROM Orders
WHERE order_num IN (20007,20008);
SELECT cust_id
FROM Orders
WHERE order_num IN (SELECT order_num
FROM OrderItems
WHERE prod_id = 'RGAN01');
SELECT cust_name, cust_contact
FROM Customers
WHERE cust_id IN ('1000000004','1000000005');
SELECT cust_name, cust_contact
FROM Customers
WHERE cust_id IN (SELECT cust_id
FROM Orders
WHERE order_num IN (SELECT order_num
FROM OrderItems
WHERE prod_id = 'RGAN01'));

2.作为计算字段使用子查询

SELECT COUNT(*) AS orders
FROM Orders
WHERE cust_id = '1000000001';
SELECT cust_name,
cust_state,
(SELECT COUNT(*)
FROM Orders
WHERE Orders.cust_id = Customers.cust_id) AS orders
FROM Customers
ORDER BY cust_name;
SELECT cust_name,
cust_state,
(SELECT COUNT(*)
FROM Orders
WHERE cust_id = cust_id) AS orders
FROM Customers
ORDER BY cust_name;

第十五步:创建联结

1.创建联结

SELECT vend_name, prod_name, prod_price
FROM Vendors, Products
WHERE Vendors.vend_id = Products.vend_id;

2.WHERE 子句的重要性

SELECT vend_name, prod_name, prod_price
FROM Vendors, Products;

3.内联结

SELECT vend_name, prod_name, prod_price
FROM Vendors INNER JOIN Products
ON Vendors.vend_id = Products.vend_id;

4.联结多个表

SELECT prod_name, vend_name, prod_price, quantity
FROM OrderItems, Products, Vendors
WHERE Products.vend_id = Vendors.vend_id
AND OrderItems.prod_id = Products.prod_id
AND order_num = 20007;
SELECT cust_name, cust_contact
FROM Customers
WHERE cust_id IN (SELECT cust_id
FROM Orders
WHERE order_num IN (SELECT order_num
FROM OrderItems
WHERE prod_id = 'RGAN01'));
SELECT cust_name, cust_contact
FROM Customers, Orders, OrderItems
WHERE Customers.cust_id = Orders.cust_id
AND OrderItems.order_num = Orders.order_num
AND prod_id = 'RGAN01';

第十六步:创建高级联结

1.使用表别名

SELECT Concat(RTRIM(vend_name), ' (', RTRIM(vend_country), ')')
AS vend_title
FROM Vendors
ORDER BY vend_name;
SELECT cust_name, cust_contact
FROM Customers AS C, Orders AS O, OrderItems AS OI
WHERE C.cust_id = O.cust_id
AND OI.order_num = O.order_num
AND prod_id = 'RGAN01';

2.自联结

SELECT cust_id, cust_name, cust_contact
FROM Customers
WHERE cust_name = (SELECT cust_name
FROM Customers
WHERE cust_contact = 'Jim Jones');
SELECT c1.cust_id, c1.cust_name, c1.cust_contact
FROM Customers AS c1, Customers AS c2
WHERE c1.cust_name = c2.cust_name
AND c2.cust_contact = 'Jim Jones';

3.自然联结

SELECT C.*, O.order_num, O.order_date,
OI.prod_id, OI.quantity, OI.item_price
FROM Customers AS C, Orders AS O, OrderItems AS OI
WHERE C.cust_id = O.cust_id
AND OI.order_num = O.order_num
AND prod_id = 'RGAN01';

4.外联结

SELECT Customers.cust_id, Orders.order_num
FROM Customers INNER JOIN Orders
ON Customers.cust_id = Orders.cust_id;
SELECT Customers.cust_id, Orders.order_num
FROM Customers LEFT OUTER JOIN Orders
ON Customers.cust_id = Orders.cust_id;
SELECT Customers.cust_id, Orders.order_num
FROM Customers RIGHT OUTER JOIN Orders
ON Orders.cust_id = Customers.cust_id;

5.使用带聚集函数的联结

SELECT Customers.cust_id,
COUNT(Orders.order_num) AS num_ord
FROM Customers INNER JOIN Orders
ON Customers.cust_id = Orders.cust_id
GROUP BY Customers.cust_id;
SELECT Customers.cust_id,
COUNT(Orders.order_num) AS num_ord
FROM Customers LEFT OUTER JOIN Orders
ON Customers.cust_id = Orders.cust_id
GROUP BY Customers.cust_id;

第十七步:组合查询

1.使用 UNION

SELECT cust_name, cust_contact, cust_email
FROM Customers
WHERE cust_state IN ('IL','IN','MI');
SELECT cust_name, cust_contact, cust_email
FROM Customers
WHERE cust_name = 'Fun4All';
SELECT cust_name, cust_contact, cust_email
FROM Customers
WHERE cust_state IN ('IL','IN','MI')
UNION
SELECT cust_name, cust_contact, cust_email
FROM Customers
WHERE cust_name = 'Fun4All';
SELECT cust_name, cust_contact, cust_email
FROM Customers
WHERE cust_state IN ('IL','IN','MI')
OR cust_name = 'Fun4All';

2.包含或取消重复的行

SELECT cust_name, cust_contact, cust_email
FROM Customers
WHERE cust_state IN ('IL','IN','MI')
UNION ALL
SELECT cust_name, cust_contact, cust_email
FROM Customers
WHERE cust_name = 'Fun4All';

3.对组合查询结果排序

SELECT cust_name, cust_contact, cust_email
FROM Customers
WHERE cust_state IN ('IL','IN','MI')
UNION
SELECT cust_name, cust_contact, cust_email
FROM Customers
WHERE cust_name = 'Fun4All'
ORDER BY cust_name, cust_contact;

第十八步:插入数据

1.插入完整的行

INSERT INTO Customers
VALUES('1000000006',
'Toy Land',
'123 Any Street',
'New York',
'NY',
'11111',
'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',
'11111',
'USA',
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',
'11111');

2.插入部分行

INSERT INTO Customers(cust_id,
cust_name,
cust_address,
cust_city,
cust_state,
cust_zip,
cust_country)
VALUES('1000000007',
'Toy Land',
'123 Any Street',
'New York',
'NY',
'11111',
'USA');

3.从一个表复制到另一个表

CREATE TABLE CustCopy AS
SELECT * FROM Customers;

4.插入检索出的数据

DELETE FROM CustCopy; 
INSERT INTO Customers(cust_id,
cust_contact,
cust_email,
cust_name,
cust_address,
cust_city,
cust_state,
cust_zip,
cust_country)
SELECT cust_id,
cust_contact,
cust_email,
cust_name,
cust_address,
cust_city,
cust_state,
cust_zip,
cust_country
FROM CustCopy;

第十九步:更新和删除数据

1.更新数据

UPDATE Customers
SET cust_email = 'kim@thetoystore.com'
WHERE cust_id = '1000000005';
UPDATE Customers
SET cust_contact = 'Sam Roberts',
cust_email = 'sam@toyland.com'
WHERE cust_id = '1000000006';
UPDATE Customers
SET cust_email = NULL
WHERE cust_id = '1000000005';

2.删除数据

DELETE FROM Customers
WHERE cust_id = '1000000007';

第二十步:创建和操纵表

1.表创建基础

CREATE TABLE ProductsNew
(
prod_id CHAR(10) NOT NULL,
vend_id CHAR(10) NOT NULL,
prod_name CHAR(254) NOT NULL,
prod_price DECIMAL(8,2) NOT NULL,
prod_desc VARCHAR(1000) NULL
);

2.使用 NULL 值

CREATE TABLE OrdersNew
(
order_num INTEGER NOT NULL,
order_date DATETIME NOT NULL,
cust_id CHAR(10) NOT NULL
);
CREATE TABLE VendorsNew
(
vend_id CHAR(10) NOT NULL,
vend_name CHAR(50) NOT NULL,
vend_address CHAR(50) ,
vend_city CHAR(50) ,
vend_state CHAR(5) ,
vend_zip CHAR(10) ,
vend_country CHAR(50)
);

3.指定默认值

CREATE TABLE OrderItemsNew
(
order_num INTEGER NOT NULL,
order_item INTEGER NOT NULL,
prod_id CHAR(10) NOT NULL,
quantity INTEGER NOT NULL DEFAULT 1,
item_price DECIMAL(8,2) NOT NULL
);

4.更新表

ALTER TABLE Vendors
ADD vend_phone CHAR(20);
ALTER TABLE Vendors
DROP COLUMN vend_phone;

5.删除表

DROP TABLE CustCopy;

第二十一步:使用视图

1.利用视图简化复杂的联结

SELECT cust_name, cust_contact
FROM Customers, Orders, OrderItems
WHERE Customers.cust_id = Orders.cust_id
AND OrderItems.order_num = Orders.order_num
AND prod_id = 'RGAN01';
CREATE VIEW ProductCustomers AS
SELECT cust_name, cust_contact, prod_id
FROM Customers, Orders, OrderItems
WHERE Customers.cust_id = Orders.cust_id
AND OrderItems.order_num = Orders.order_num;
SELECT cust_name, cust_contact
FROM ProductCustomers
WHERE prod_id = 'RGAN01';

2.用视图重新格式化检索出的数据

SELECT Concat(RTRIM(vend_name) , ' (' , RTRIM(vend_country) , ')')
AS vend_title
FROM Vendors
ORDER BY vend_name;
CREATE VIEW VendorLocations AS
SELECT Concat(RTRIM(vend_name) , ' (' , RTRIM(vend_country) , ')')
AS vend_title
FROM Vendors;
SELECT *
FROM VendorLocations;

3.用视图过滤不想要的数据

CREATE VIEW CustomerEMailList AS
SELECT cust_id, cust_name, cust_email
FROM Customers
WHERE cust_email IS NOT NULL;
SELECT *
FROM CustomerEMailList;

4.使用视图与计算字段

SELECT prod_id,
quantity,
item_price,
quantity*item_price AS expanded_price
FROM OrderItems
WHERE order_num = 20008;
CREATE VIEW OrderItemsExpanded AS
SELECT order_num,
prod_id,
quantity,
item_price,
quantity*item_price AS expanded_price
FROM OrderItems;
SELECT *
FROM OrderItemsExpanded
WHERE order_num = 20008;

免责声明:
1.编写此文是为了更好地学习MySQL的使用,如果损害了有关人的利益,请联系删除;
2.如果文中描述欠妥,请在评论中进行指正;
3.文字编写不易,若感觉有用,点赞收藏关注会让博主很开心哦;
4.此外,本文支持任何形式的转载,转载请注明出处,非常感谢!!!
本文源自:https://blog.youkuaiyun.com/testleaf/article/details/110095404
博客园cnblogs同号。

阿里云轻量应用服务器从入门到精通:部署、安全与运维实战指南 在云计算领域,云服务器是承载应用的核心基础设施,其核心原理是通过虚拟化技术将物理服务器资源池化,按需分配给用户。这种模式的技术价值在于提供了弹性、可扩展且成本可控的计算能力,尤其适合个人开发者、初创团队及中小型应用场景。对于希望快速上云、简化运维的用户而言,轻量应用服务器作为一种“开箱即用”的套餐式产品,集成了计算、网络、应用环境与基础安全策略,大幅降低了云服务的使用门槛。它通过预置应用镜像(如WordPress、LAMP)和简化的管理控制台,让用户能够聚焦于应用开发与业务本身,而非底层环境配置。本文将围绕 阅读详情

相关推荐

Debian 11 之使用hostapd与dnsmasq进行AP设置

本文介绍debian 11 系统下,使用hostapd 和 dnsmasq配置无线热点的方法。

xinghaitao2005的博客 1695

阿里云轻量应用服务器 配置mysql详解

1.服务器规格 1.地域选择 考虑个人地址因素因此选择了华南。 2.选择应用镜像/系统镜像 这个应该看个人需求,因为我只是想用来放数据库的,所以就随便选了个WordPress。 选好之后购买就完事了,然后你就已经拥有了自己的服务器,接下来是配置过程。 2.服务器配置 购买之后的环境都帮你搭配好的,剩下的就是自己配置数据库和HTML等文件上传了,虽然很方便,但是在部署的过程中还是有许多...

Kim_ 1万+

告别轮询!用STM32CubeMX给STM32F030配置ADC多通道+DMA,实测代码分享

本文详细介绍了如何使用STM32CubeMX为STM32F030配置ADC多通道采集与DMA传输,显著提升采集效率。通过实测对比轮询与DMA模式的性能差异,提供完整的代码实现和优化技巧,帮助开发者快速掌握这一高效采集方案。

weixin_42570296的博客 409

MySQL | 阿里云轻量应用服务器如何配置mysql

我的博客:https://justlovesmile.top 在购买阿里云轻量应用服务器之后的环境是都帮你搭配好的,但是数据库就需要自己操作配置了,比如说如何使用阿里云数据管理DMS远程操纵数据库,其在部署的过程中还是有许多坑 参考自阿里云轻量应用服务器 配置mysql详解 在购买了阿里云轻量应用服务器后,我结合自身的能力选择了建站相对简单的wordpress,毕竟对于阿里云学生机而言,每个月9.5元确实很便宜????,最初的配置很简单,只需要参考阿里提供的步骤就能完成(除了升级php版本的时候踩了

Justlovesmile的博客 1973

(三) Debian 安装linuxcnc-ethercat中间件

1.在这里同样的也是需要下载一下依赖包 sudo apt install linuxcnc-uspace-dev 2.依赖包安装完成, 接着执行下面命令 sudo git clone https://github.com/sittner/linuxcnc-ethercat 还是可能出现下载网络错误下载不成功,可以直接下载我已上传百度云linuxcnc目录下 注意一下,后面make可能会出现头文件(xxx.h)的报错提示,在这里给大家一个处理办法 用aptitude 工具可以搞定 sudo apt-get

qq_30065813的博客 828

Linux内核支持串口屏,linux串口触摸屏设计总结

Linux serial touch 设计总结概述:最近在做嵌入式linux下串口触摸屏设计,遇到一些问题,经过查找资料和请教同事,总算把问题解决了,事后有把linux相关的内核代码仔细看了一遍,为了有点成果,特别写了个总结。如有任何问题请联系yxj_5421@http://www.doczj.com/doc/87b94b1e227916888486d76d.html,转载请标明出处。系统资源:L...

weixin_39935903的博客 1296

阿里云轻量应用服务器mysql开启远程访问

进入防火墙设置   添加规则   添加mysql   登录mysql mysql -u root -p mysql   设置root用户远程连接的密码为123456 grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option; ...

心中有侠 3146

X光安检模型训练第一步:手把手教你处理OPIXray和HIXray这两个小众数据集

本文详细解析了X光安检AI模型训练的关键步骤,重点介绍如何处理OPIXray和HIXray这两个专业数据集。从数据格式转换到YOLO标准,再到数据增强和质量验证,手把手指导开发者高效利用这些数据集进行目标检测模型训练,提升安检场景下的危险物品识别准确率。

weixin_32629853的博客 316

阿里云轻量级应用服务怎么完成tomcat+mysql的安装直到运行

首先由于本人是个穷人,所以就买了阿里云的轻量级应用服务,虽说官方说和ESC没有差别,但是我感觉还是遇到很多坑,这里总结一下,方便以后查阅首先你得和我的应用是一样的,就是他自带的那个LAMP①tomcat的安装还是很得心应手的:yum install tomcat  这样就可以傻瓜式的安装一个tomcat,我们需要将war包放在这个位置,我感觉我用tomcat也只需要知道webapps在哪里就行了②...

qq_36005199的博客 2039

最强解析!CWRU轴承数据集Python实战:从数据加载到模型部署全流程

本文提供了一份完整的CWRU轴承数据集Python实战指南,涵盖从数据加载、预处理、特征工程到模型构建与训练的全流程。详细解析了如何利用1D-CNN、Transformer等深度学习模型进行轴承故障诊断,并介绍了模型评估、可解释性分析以及通过FastAPI部署模型的实用方法,为工业设备智能运维提供了一套可复用的解决方案。

time3的博客 365

华为OD机试 - 开源项目热度榜单(Java 2025 C卷 100分)

H = Wwatch X#watch + Wstar X#star +Wfork X#fork +Wissue X#issue +Wmr X#mr H表示热度值,Wwatch、Wstar、Wfork、Wissue、Wmr分别表示5个统计维度的权重,#watch、#star、#fork、#issue、#mr分别表示5个统计维度的统计值。

学Java,找哪吒 1755

【MySQL】MySQL学习笔记

【MySQL】MySQL学习笔记学习笔记前言目录概览笔记MySQL 的特性、安装MySQL 的特性MySQL 安装MySQL 基本操作0. 几种操作MySQL 的方式workbenchNavicat for MySQL命令行操作python 学习笔记 前言 在完成python-socket-GNSS&PIC 融合传输后,现在需要将服务端假设到阿里云服务器上,并完成数据库的存储。 目录概览 在学习一门新技术前,通常会先浏览它的目录,以此先掌握技术的大概结构,这样有助于安排学习规划、侧重重点等,可以更快

synjoker的博客 398

SAP SEGW 事物码里的 Function Import

开放数据协议(OData)包括标准的 CRUD (创建、检索、更新和删除)操作,这些操作映射到 HTTP 方法的 POST、GET、PUT/MERGE 和 Delete 几类。此外,OData还支持进一步的服务操作:,这些操作可以由HTTP方法GET或POST调用,用于处理不能映射到标准 CRUD 操作的任何内容。通过在数据模型中创建 ,可以在 service Builder 中实现此类额外的服务操作。例如,您可以为以下自定义操作创建函数导入:Work Item confirmation检查航班的可用性虽然

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 991

阿里云轻量应用服务器Linux-Centos7下MySQL8.0.19的安装

服务器Linux-Centos7下MySQL8.0.19的安装 检查Linux系统版本 mysql-8.0.19-1.el7.x86_64.rpm-bundle.tar MySQL的卸载 Navicat连接MySQL数据库

testleaf.cn 3836

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

轻量应用服务器安装mysql_阿里云轻量应用服务器Linux-Centos7下MySQL8.0.19的安装

初始环境:阿里云轻量应用服务器已经重置系统为CentOS7.3-64位具体目标:安装MySQL 8.0.19第一步:检查Linux系统版本1.执行命令 lsb_release -a 查看系统版本可以看到,目前我的系统版本为CentOS7.3-64位。2.为了确保一切正常,我准备升级自己的系统到当前最新。3.用yum更新升级执行命令 yum -y clean all执行命令 yum -y updat...

weixin_34640844的博客 793

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

(阿里云笔记)贝勾置阿里云轻量应用服务器CentOS7.6镜像——Linux系统

目录 前言 2.注册阿里云账户 3.购买轻量级服务器 1.引入库 2.读入数据 总结 前言 提示:这里可以添加本文要记录的大概内容: 2.注册阿里云账户 打开阿里云官网:https://www.aliyun.com/ 右上角——立即注册 填入个人注册信息——扫码注册+账号密码注册,按步骤注册OK。 3.购买轻量级服务器 1.引入库 代码如下(示例): import numpy as np impo...

张松的博客 1137

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Linux运维:阿里云轻量应用服务器搭建配置

简单说一下阿里云轻量应用服务器的搭建 一:在阿里云官网上购买轻量应用服务器.(选择系统镜像CentOS) 二:安装Xshell6和Xftp6社区版(免费) Xshell6用于连接服务器(与SSH一样);Xftp6用于上传文件到服务器; 三:在服务器上安装jdk1.8 1.下载jdk到服务器上 2.备份系统配置文件 执行命令: cp /etc/profile /ho...

大誌的博客 4276

(Linux笔记)CentOS7.3镜像+MySQL8.0.26安装部署——Linux系统

目录 1.前言 2.官网下载MySQL 3.上传MySQL安装包到服务器(xftp) 4.解压MySQL安装包 总结 前言 2.官网下载MySQL 官网下载地址:https://dev.mysql.com/downloads/mysql/ 点击——No thanks, just start my download.——开始下载 3.上传MySQL安装包到服务器(xftp) 使用xftp工具,下载有点麻烦,分享...

张松的博客 1080

【学习笔记 - Linux】CentOS7下安装jdk1.8、tomcat8.5、mysql5.7——搭建java web开发环境

【学习笔记 - Linux】CentOS7下安装jdk1.8、tomcat8.5、mysql5.7 目录 1. 安装jdk 2. 安装tomcat 3. 安装mysql 最近买了阿里云的轻量应用服务器,想在服务器上部署自己的应用,学习记录一下。我是用XShell连接的服务器。下面的操作时在XShell远程操作下完成的。 1. 安装jdk yum方式安装 创建一个目录 mkdir /usr/...

AlanLee97的博客 400

阿里云服务器部署vue+jar+mysql+redis环境LINUX安装jdk1.8

ps -aux |grep redis

xuehen86的博客 359

(Linux笔记)CentOS7.3镜像+Tomcat8.5.69安装部署——Linux系统

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 系列文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基

张松的博客 788

(Linux笔记)CentOS7.3镜像+JDK1.8安装配置——Linux系统

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 系列文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基

张松的博客 562

阿里云轻量应用服务器重置为Linux系统,从0搭建node+mysql+nginx部署环境

1、首先重置系统为官方的Linux系统,方便起见选择应用镜像-LAMP镜像。 为什么直接选择node.js镜像呢?原因是我习惯使用mysql数据库,安装node镜像的话之后还需要手动安装mysql也会比较麻烦,另外我偶尔也会使用到apache的服务,所以选择lamp对我来说比较合适。 2、根据官方提示首先完成最基础的设置。 这一步要复制mysql初始随机密码完成mysql的初始化操作,我...

wudandong的博客 801

在阿里轻量应用服务器上使用swoole搭建tcp server

搭建环境: 阿里轻量应用服务器,基于基于CentOS 7.3 64位操作系统,LAMP 6.1.0,LAMP镜像预装了Apache,MySQL和PHP及相关组件支持。 一、安装swoole 使用pecl安装即可: pecl install swoole 提示pecl/swoole require (php7.0.1),则安装swoole特定版本即可,如下: pecl ins...

wwwlyj123321的博客 725

部署MySQL数据库到服务器

阿里云服务器 Linux CentOS+宝塔面板+MySQL 1、阿里云学生机 注册好阿里云账号后,进入下列网址:开发者成长计划 一般购买便宜的轻量应用服务器,下面两个都是一样的。 地区尽量选离自己近的,镜像类型选系统镜像,然后选择一个系统,这里选择CentOS7.6(一定要选Linux的系统,后面好配合),数据盘不需要额外添加。 进入控制台并选中服务器 设置自己密码 在防火墙中打开下列端口 2、宝塔面板 官网网址:https://www.bt.cn/bbs/.

zcy的博客 1万+
上一篇: Oralce Client11和PL/SQL12安装
下一篇: 阿里云轻量应用服务器Linux-Centos7下Oracle19c的配置
testleaf
博客等级 码龄7年 3514粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

testleaf

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值