当前位置: 首页 > news >正文

metro 网站模板网站开发教程网

metro 网站模板,网站开发教程网,绵阳住房和城乡建设厅网站,舜江建设集团官方网站目录 前言 MySQL 命令提示符相关操作 MYSQL 最重要的命令 SELECT选择语句 SELECT DISTINCT 选择不同语句 WHERE 查询定位 子句 AND、OR 和 NOT 运算符 ORDER BY 关键字 INSERT INTO 插入语句 NULL 空值 UPDATE更新语句 DELETE删除语句 TOP、LIMIT、FETCH FIRST 或…目录 前言 MySQL 命令提示符相关操作 MYSQL 最重要的命令 SELECT选择语句 SELECT DISTINCT 选择不同语句 WHERE 查询定位 子句 AND、OR 和 NOT 运算符 ORDER BY 关键字 INSERT INTO 插入语句 NULL 空值 UPDATE更新语句 DELETE删除语句 TOP、LIMIT、FETCH FIRST 或 ROWNUM限制子句 MIN() 和 MAX()函数求最大最小值 COUNT()、AVG() 和 SUM()函数 LIKE运算符 通配符*等 IN运算符 BETWEEN 之间运算符 AS 别名使用 JOIN连接 INNER JOIN内连接关键字 LEFT JOIN 左连接 关键字 RIGHT JOIN右连接 关键字 FULL OUTER JOIN 关键字 Self Join自连接 关键字 GROUP BY语句 HAVING 子句 EXISTS 运算符 注释 运算符 前言 我们之前介绍了python的数据库相关简单知识 一、MySQL和python MySQL安装教程 教程点击跳转查看传送门 二、Python MySQL入门连接 教程点击跳转查看Python MySQL入门连接 三、Python MySQL创建表 教程点击跳转查看Python MySQL创建表 四、Python MySQL插入表 教程点击跳转查看Python MySQL插入表 五、Python MySQL选择 教程点击跳转查看 Python MySQL选择 六、Python MySQL查询在哪里where 教程点击跳转查看Python MySQL查询在哪里where 七、python MySQL排序 教程点击跳转查看​​​​​​​python MySQL排序 八、Python MySQL删除 教程点击跳转查看 Python MySQL删除 九、Python MySQL合并 更多教程点击跳转查看​​​​​​​Python MySQL合并 十、Python MySQL更新表 教程点击跳转查看Python MySQL更新表 十一、Python MySQL限制 教程点击跳转查看​​​​​​​Python MySQL限制 十二、Python MySQL删除表 教程点击跳转查看 Python MySQL删除表 MySQL 命令提示符相关操作 教程点击跳转查看传送门 MYSQL 最重要的命令 SELECT 从数据库中提取数据 UPDATE 更新数据库中的数据 DELETE 从数据库中删除数据 INSERT INTO 将新数据插入数据库 CREATE DATABASE 创建一个新的数据库 ALTER DATABASE 修改数据库 CREATE TABLE 创建一个新表 ALTER TABLE 修改表 DROP TABLE 删除表 CREATE INDEX 创建索引搜索键 DROP INDEX 删除索引SELECT选择语句 该SELECT语句用于从数据库中选择数据。返回的数据存储在一个结果表中称为结果集。 SELECT 语法 SELECT column1, column2, ...此处column1、column2、… 是要从中选择数据的表的字段名称。如果要选择表中的所有可用字段请使用以下语法 SELECT * FROM table_name;假设我们已经有一个数据库Customers如下​SELECT 列示例 以下 SQL 语句从“Customers”表中选择“CustomerName”和“City”列 SELECT CustomerName, City FROM Customers;SELECT * 示例 以下 SQL 语句从“Customers”表中选择所有列 SELECT * FROM Customers;练习题 1-获取Customers表中的所有列。 SELECT * FROM Customers;2-编写一条语句City从Customers表中选择列。 SELECT City FROM Customers;3-从Customers表中的Country列中选择所有不同的值。下面会讲不懂没关系 SELECT DISTINCT Country FROM Customers;SELECT DISTINCT 选择不同语句 该SELECT DISTINCT语句仅用于返回不同不同的值。在表中一列通常包含许多重复值有时您只想列出不同的不同的值。SELECT DISTINCT 语法 SELECT DISTINCT column1, column2, ... FROM table_name;我们还是假设有这样一个Customers数据库​没有 DISTINCT 的 SELECT 示例 以下 SQL 语句从“Customers”表的“Country”列中选择所有包括重复的值 SELECT Country FROM Customers;SELECT DISTINCT 示例 SELECT DISTINCT Country FROM Customers;以下 SQL 语句列出了不同不同客户国家/地区的数量 SELECT COUNT(DISTINCT Country) FROM Customers;练习 1-从表中的Country列中选择所有不同的值Customers。 SELECT DISTINC Country FROM Customers;WHERE 查询定位 子句 该WHERE子句用于过滤记录。它用于仅提取满足指定条件的记录。WHERE 语法 SELECT column1, column2, ... FROM table_name WHERE condition;注 该WHERE条款不仅在使用 SELECT的语句它也被用在UPDATE DELETE等 我们假设还是有Customers这样一个数据库如下​WHERE 子句示例 以下 SQL 语句在“Customers”表中选择来自国家“Mexico”的所有客户 SELECT * FROM Customers WHERE CountryMexico;文本字段与数字字段 SQL 需要在文本值周围使用单引号大多数数据库系统也允许双引号。但是数字字段不应包含在引号中 SELECT * FROM Customers WHERE CustomerID1;WHERE 子句中的运算符 可以在WHERE子句中使用以下运算符​ 我们可以一一演示这些符号的使用耐心学 假设我们有一下数据库叫做Product:​ 选取价格为18的所有产品 SELECT * FROM Products WHERE Price 18; 选取所有价格大于30的产品 SELECT * FROM Products WHERE Price 30;选取所有价格小于30的产品 SELECT * FROM Products WHERE Price 30;选取所有价格大于等于30的产品 SELECT * FROM Products WHERE Price 30;选取所有价格小于等于30的产品 SELECT * FROM Products WHERE Price 30;选取所有价格不等于18的产品相当于 SELECT * FROM Products WHERE Price 18;选取所有价格处于50和60之间的产品 SELECT * FROM Products WHERE Price BETWEEN 50 AND 60;从上面的Customers数据库搜索所有字母s开头的城市 SELECT * FROM Customers WHERE City LIKE s%;从Customers数据库中查找所有在Paris和London的用户 SELECT * FROM Customers WHERE City IN (Paris,London);以上便是对所有符号的演示。 我们再来一些练习加以巩固(我们用到的是上面的customers) 1-选择City列值为“Berlin”的所有记录。 SELECT * FROM Customers WHERE CityBerlin;2-使用NOT关键字选择City不是Berlin的所有记录。 SELECT * FROM Customers WHERE NOT City Berlin;3-选择CustomerID列值为 32 的所有记录。 SELECT * FROM Customers WHERE CustomerID 12;AND、OR 和 NOT 运算符 该WHERE子句可以结合 ANDOR和 NOT操作。在AND与OR操作用于基于多个条件筛选记录 该AND操作显示一个记录如果所有条件满足 AND 为真。 所述OR操作显示一个记录如果任何一个条件满足OR为真。 该NOT操作显示如果条件S是不正确的记录。AND 语法 SELECT column1, column2, ... FROM table_name WHERE condition1 AND condition2 AND condition3 ...;OR语法 SELECT column1, column2, ... FROM table_name WHERE condition1 OR condition2 OR condition3 ...;NOT语法 SELECT column1, column2, ... FROM table_name WHERE NOT condition;我们还是假设有如下“Customers”表​AND 示例 以下 SQL 语句从Customers中选择国家为Germany且city为Berlin的所有字段 SELECT * FROM Customers WHERE CountryGermany AND CityBerlin;OR 示例 选取所有Customers 中city为Berlin OR “München”: SELECT * FROM Customers WHERE CityBerlin OR CityMünchen;NOT 示例 从 “Customers” 选取country不是 Germany的字段 SELECT * FROM Customers WHERE NOT CountryGermany;结合AND, OR and NOT 从Customers 中选择国家为Germany”且城市必须为Berlin OR München的所有字段使用括号形成复杂的表达式 SELECT * FROM Customers WHERE CountryGermany AND (CityBerlin OR CityMünchen);从 “Customers中选择国家不是“Germany” 也不是USA:的所有字段 SELECT * FROM Customers WHERE NOT CountryGermany AND NOT CountryUSA;练习 选择 City 列值为 ‘Berlin’ 且 PostalCode 列值为 12209 的所有记录。 SELECT * FROM Customers WHERE City Berlin AND PostalCode 12209;ORDER BY 关键字 该ORDER BY关键字用于按升序或降序对结果集进行排序。ORDER BY默认情况下关键字按升序对记录进行排序。要按降序对记录进行排序请使用 DESC关键字。ORDER BY 语法 SELECT column1, column2, ... FROM table_name ORDER BY column1, column2, ... ASC|DESC;我们还是假设有这个“Customers”表如下​ORDER BY 示例 从“Customers”表中选择所有客户按“Country”列排序 SELECT * FROM Customers ORDER BY Country;ORDER BY DESC 示例 从“Customers”表中选择所有客户按“Country”列按 DESCENDING 排序 SELECT * FROM Customers ORDER BY Country DESC;ORDER BY 多列示例 从“Customers”表中选择所有客户按“Country”和“CustomerName”列排序。这意味着它按国家/地区排序但如果某些行具有相同的国家/地区则按 CustomerName 排序 SELECT * FROM Customers ORDER BY Country, CustomerName;从“Customers”表中选择所有客户按“Country”升序和“CustomerName”列降序排序 SELECT * FROM Customers ORDER BY Country ASC, CustomerName DESC;练习 从Customers表中选择所有记录按城市列的字母顺序对结果进行排序。 SELECT * FROM Customers ORDER BY City;INSERT INTO 插入语句 该INSERT INTO语句用于在表中插入新记录。INSERT语法 可以INSERT INTO 用两种方式编写语句 1- 指定要插入的列名和值 INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...);2-如果要为表的所有列添加值则无需在 SQL 查询中指定列名。但是请确保值的顺序与表中的列顺序相同。在这里 INSERT INTO语法如下 INSERT INTO table_name VALUES (value1, value2, value3, ...);我们假设还是有着样一个Customers表​INSERT示例 以下 SQL 语句在“Customers”表中插入一条新记录 INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country) VALUES (Cardinal, Tom B. Erichsen, Skagen 21, Stavanger, 4006, Norway);运行显示如下​ 您是否注意到我们没有在 CustomerID 字段中插入任​​何数字CustomerID 列是一个自动递增字段将在新记录插入表中时自动生成。仅在指定列中插入数据 下面的 SQL 语句将插入一条新记录但只在“CustomerName”、“City”和“Country”列中插入数据CustomerID 会自动更新 INSERT INTO Customers (CustomerName, City, Country) VALUES (Cardinal, Stavanger, Norway);运行后将会显示如下​练习 表中插入一条新记录。 INSERT INTO Customers (CustomerName, Address, City, PostalCode, Country )VALUES(Hekkan Burger, Gateveien 15, Sandnes, 4306, Norway ) ;NULL 空值 具有 NULL 值的字段是没有值的字段。如果表中的字段是可选的则可以在不向该字段添加值的情况下插入新记录或更新记录。然后该字段将保存为 NULL 值。注意 NULL 值不同于零值或包含空格的字段。具有 NULL 值的字段是在创建记录期间留空的字段如何测试 NULL 值 无法使用比较运算符例如 、 或 测试 NULL 值。我们将不得不改用IS NULL和 IS NOT NULL运算符。IS NULL 语法 SELECT column_names FROM table_name WHERE column_name IS NULL;IS NOT NULL 语法 SELECT column_names FROM table_name WHERE column_name IS NOT NULL;我们还是以”Customers”表为例子​ IS NULL 运算符 列出了 Address字段中具有 NULL 值的所有客户 SELECT CustomerName, ContactName, Address FROM Customers WHERE Address IS NULL;提示始终使用 IS NULL 来查找 NULL 值。IS NOT NULL 运算符 该IS NOT NULL运算符用于测试非空值NOT NULL 值。 列出了在 Address”字段中具有值的所有客户 SELECT CustomerName, ContactName, Address FROM Customers WHERE Address IS NOT NULL;练习 从列为空的Customers位置选择所有记录PostalCode。 SELECT * FROM Customers WHERE PostalCode IS NULL;UPDATE更新语句 UPDATE语句用于修改表中的现有记录。 UPDATE 语法 UPDATE table_name SET column1 value1, column2 value2, ... WHERE condition;注意 更新表中的记录时要小心注意 WHERE语句中的子句UPDATE。该WHERE子句指定应该更新哪些记录。如果省略该WHERE子句表中的所有记录都将被更新 我们还是以“Customers”表为例​更新表 更新CustomerID 1的用户名字和城市数据 UPDATE Customers SET ContactName Alfred Schmidt, City Frankfurt WHERE CustomerID 1;更新过后将会如下​更新多条记录 该WHERE子句确定将更新多少条记录。 将国家为Mexico的所有记录的 ContactName 更新为“Juan” UPDATE Customers SET ContactNameJuan WHERE CountryMexico;更新后将会变成​更新警告 更新记录时要小心。如果省略该 WHERE子句则所有记录都将被更新 例如 UPDATE Customers SET ContactNameJuan;则会导致如下结果​练习 更新表City中所有记录的Customers列。 UPDATE Customers SET City Oslo;DELETE删除语句 该DELETE语句用于删除表中的现有记录。删除语法 DELETE FROM table_name WHERE condition;注意 删除表中的记录时要小心注意 WHERE语句中的子句 DELETE。该WHERE条款指定应删除哪些记录。如果省略该WHERE子句表中的所有记录都将被删除 哈哈哈哈我们还是以“Customers”表为例子如下​删除示例 从“Customers”表中删除客户“Alfreds Futterkiste” DELETE FROM Customers WHERE CustomerNameAlfreds Futterkiste;于是就变成这样​删除所有记录 可以在不删除表的情况下删除表中的所有行。这意味着表结构、属性和索引将保持不变 DELETE FROM table_name;例如删除“Customers”表中的所有行但不删除该表 DELETE FROM Customers;练习从Customers表中删除Country值为“挪威”的所有记录。 DELETE FROM Customers WHERE Country Norway;TOP、LIMIT、FETCH FIRST 或 ROWNUM限制子句 SELECT TOP 子句 SELECT TOP子句用于指定要返回的记录数。SELECT TOP子句在具有数千条记录的大表上很有用。返回大量记录会影响性能。注意 并非所有数据库系统都支持该 SELECT TOP子句。MySQL 支持LIMIT子句选择有限数量的记录而 Oracle 使用FETCH FIRST n ROWSONLYROWNUMServer / MS 访问语法 SELECT TOP number|percent column_name(s) FROM table_name WHERE condition;MySQL 语法 SELECT column_name(s) FROM table_name WHERE condition LIMIT number;Oracle 12 语法 SELECT column_name(s) FROM table_name ORDER BY column_name(s) FETCH FIRST number ROWS ONLY;比如还是“Customers”表如下​TOP、LIMIT 和 FETCH FIRST示例 从 Customers表中选择前三个记录用于 SQL Server/MS Access SELECT TOP 3 * FROM Customers;MySQL 的等效示例 SELECT * FROM Customers LIMIT 3;Oracle 的等效示例 SELECT * FROM Customers FETCH FIRST 3 ROWS ONLY;TOP PERCENT 示例 从Customers“表中选择前 50% 的记录用于 SQL Server/MS Access SELECT TOP 50 PERCENT * FROM Customers;Oracle 的等效示例 SELECT * FROM Customers FETCH FIRST 50 PERCENT ROWS ONLY;添加 WHERE 条款 从“Customers”表中选择前三个记录其中国家是“Germany”对于 SQL Server/MS Access SELECT TOP 3 * FROM Customers WHERE CountryGermany;MySQL 的等效示例 SELECT * FROM Customers WHERE CountryGermany LIMIT 3;Oracle 的等效示例 SELECT * FROM Customers WHERE CountryGermany FETCH FIRST 3 ROWS ONLY;MIN() 和 MAX()函数求最大最小值 MIN()函数返回所选列的最小值。MAX()函数返回所选列的最大值。MIN() 语法 SELECT MIN(column_name) FROM table_name WHERE condition;MAX() 语法 SELECT MAX(column_name) FROM table_name WHERE condition;现在我们换一个新的表Product如下​MIN() 示例 查找最便宜产品的价格 SELECT MIN(Price) AS SmallestPrice FROM Products;显示如下​MAX() 示例 查找最贵产品的价格 SELECT MAX(Price) AS LargestPrice FROM Products;返回如下​练习 使用该MIN函数选择Price列的最小值的记录。 SELECT MIN(Price) FROM Products;COUNT()、AVG() 和 SUM()函数 该COUNT()函数返回与指定条件匹配的行数。COUNT() 语法 SELECT COUNT(column_name) FROM table_name WHERE condition;该AVG()函数返回数字列的平均值。AVG() 语法 SELECT AVG(column_name) FROM table_name WHERE condition;该SUM()函数返回数字列的总和。SUM() 语法 SELECT SUM(column_name) FROM table_name WHERE condition;我们还是用表product​COUNT() 示例 查找产品数量 SELECT COUNT(ProductID) FROM Products;注意 NULL 值不计算在内。AVG() 示例 查找所有产品的平均价格 SELECT AVG(Price) FROM Products;注意 NULL 值被忽略。 假设我现在有“OrderDetails”表如下​SUM() 示例 查找“OrderDetails”表中“Quantity”字段的总和 SELECT SUM(Quantity) FROM OrderDetails;返回如下​ 注意 NULL 值被忽略。练习 返回Price值设置为18的记录数 SELECT COUNT(*) FROM Products WHERE Price 18;LIKE运算符 该LIKE运算符在 WHERE子句中用于搜索列中的指定模式。有两个通配符经常与 LIKE运算符结合使用 百分号 (%) 代表零、一个或多个字符 下划线 () 代表一个单个字符 但是呢注意 MS Access 使用星号 (*) 代替百分号 (%)使用问号 (?) 代替下划线 () 当然百分号和下划线也可以组合使用LIKE 语法 SELECT column1, column2, ... FROM table_name WHERE columnN LIKE pattern;提示您还可以使用 AND或OR运算符组合任意数量的条件。 以下是一些示例显示了LIKE带有“%”和“_”通配符的不同运算符​ 所对应意思为 第一行匹配任何以a开头的字段 第二行匹配任何以a结尾的字段 第三行匹配任何具有“or”的字段 第四行查找第二个位置有“r”的任何值 第五行查找任何以“a”开头且长度至少为 2 个字符的值 第六行查找任何以“a”开头且长度至少为 3 个字符的值 第七行查看以“a”开头并以“o”结尾的任何值 比如我们还是有如下Customers”表​ LIKE 示例 选择 CustomerName 以“a”开头的所有客户 SELECT * FROM Customers WHERE CustomerName LIKE a%;选择 CustomerName 以“a”结尾的所有客户 SELECT * FROM Customers WHERE CustomerName LIKE %a;选择 CustomerName 中任何位置都有“或”的所有客户 SELECT * FROM Customers WHERE CustomerName LIKE %or%;选择 CustomerName 中第二个位置为“r”的所有客户 SELECT * FROM Customers WHERE CustomerName LIKE _r%;选择 CustomerName 以“a”开头且长度至少为 3 个字符的所有客户 SELECT * FROM Customers WHERE CustomerName LIKE a__%;选择 ContactName 以“a”开头并以“o”结尾的所有客户 SELECT * FROM Customers WHERE ContactName LIKE a%o;选择 CustomerName 不以“a”开头的所有客户 SELECT * FROM Customers WHERE CustomerName NOT LIKE a%;通配符*等 这是英文文档所有通配符描述实在不想翻译大家自己看看​​ 假设我们还是有如下“Customers”表​使用 % 通配符 选择 City 以“ber”开头的所有客户 SELECT * FROM Customers WHERE City LIKE ber%;选择 City 包含“es”的所有客户 SELECT * FROM Customers WHERE City LIKE %es%;返回如下​使用 _ 通配符 选择 City 以任何字符开头后跟“ondon”的所有客户 SELECT * FROM Customers WHERE City LIKE _ondon;选择 City 以“L”开头、后跟任意字符、“n”、任意字符、“on”的所有客户 SELECT * FROM Customers WHERE City LIKE L_n_on; 使用 [charlist] 通配符 选择 City 以“b”、“s”或“p”开头的所有客户 SELECT * FROM Customers WHERE City LIKE [bsp]%;选择 City 以“a”、“b”或“c”开头的所有客户 SELECT * FROM Customers WHERE City LIKE [a-c]%;使用 [!charlist] 通配符 选择 City 不是以“b”、“s”或“p”开头的所有客户 SELECT * FROM Customers WHERE City LIKE [!bsp]%;或者 SELECT * FROM Customers WHERE City NOT LIKE [bsp]%;IN运算符 IN运算符允许您在 WHERE子句中指定多个值。 IN操作是针对多个速记 OR条件。IN 语法 SELECT column_name(s) FROM table_name WHERE column_name IN (value1, value2, ...);我们还是以“Customers”表为例子​IN 运算符示例 选择位于’Germany’, ‘France’, UK’的所有客户 SELECT * FROM Customers WHERE Country IN (Germany, France, UK);选择不在选择位于’Germany’, ‘France’, UK’的所有客户 SELECT * FROM Customers WHERE Country NOT IN (Germany, France, UK);选择与 Suppliers来自相同国家的所有客户 SELECT * FROM Customers WHERE Country IN (SELECT Country FROM Suppliers);返回如下​ BETWEEN 之间运算符 在BETWEEN操作者选择一个给定的范围内的值。值可以是数字、文本或日期。BETWEEN 语法 SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2;我们有用到如下的product表:​between示例 选择价格在 10 到 20 之间的所有产品 SELECT * FROM Products WHERE Price BETWEEN 10 AND 20;要显示上一个示例范围之外的产品请使用 NOT BETWEEN SELECT * FROM Products WHERE Price NOT BETWEEN 10 AND 20;数字之间 选择价格在 10 到 20 之间的所有产品。此外不要显示 CategoryID 为 1,2 或 3 的产品 SELECT * FROM Products WHERE Price BETWEEN 10 AND 20 AND CategoryID NOT IN (1,2,3);文本值之间 语句选择 Carnarvon Tigers 和 Mozzarella di Giovanni 之间具有 ProductName 的所有产品 SELECT * FROM Products WHERE ProductName BETWEEN Carnarvon Tigers AND Mozzarella di Giovanni ORDER BY ProductName;选择产品名称介于 Carnarvon Tigers 和 Chef Anton’s Cajun Seasoning 之间的所有产品 SELECT * FROM Products WHERE ProductName BETWEEN Carnarvon Tigers AND Chef Antons Cajun Seasoning ORDER BY ProductName;NOT BETWEEN 文本值 选择 ProductName 不在 Carnarvon Tigers 和 Mozzarella di Giovanni 之间的所有产品 SELECT * FROM Products WHERE ProductName NOT BETWEEN Carnarvon Tigers AND Mozzarella di Giovanni ORDER BY ProductName;我们现在假设有如下Orders 表​日期之间示例 选择 OrderDate 介于 ‘01-July-1996’ 和 ‘31-July-1996’ 之间的所有订单 SELECT * FROM Orders WHERE OrderDate BETWEEN #07/01/1996# AND #07/31/1996#;或者使用 SELECT * FROM Orders WHERE OrderDate BETWEEN 1996-07-01 AND 1996-07-31;AS 别名使用 别名列语法 SELECT column_name AS alias_name FROM table_name;别名表语法 SELECT column_name(s) FROM table_name AS alias_name;现在我们还是假设有custorm表如下​ 还有一个oeder表​列的别名示例 创建两个别名一个用于 CustomerID 列另一个用于 CustomerName 列 SELECT CustomerID AS ID, CustomerName AS Customer FROM Customers;创建两个别名一个用于 CustomerName 列另一个用于 ContactName 列。注意如果别名包含空格则需要双引号或方括号 SELECT CustomerName AS Customer, ContactName AS [Contact Person] FROM Customers;创建一个名为“Address”的别名该别名组合了四列Address、PostalCode、 City 和Country SELECT CustomerName, Address , PostalCode City , Country AS Address FROM Customers;注意要使上面的 SQL 语句在 MySQL 中工作请使用以下命令 SELECT CustomerName, CONCAT(Address,, ,PostalCode,, ,City,, ,Country) AS Address FROM Customers;表别名示例 选择来自 CustomerID4Around the Horn的客户的所有订单。我们使用“Customers”和“Orders”表分别给它们表别名“c”和“o”这里我们使用别名来缩短SQL SELECT o.OrderID, o.OrderDate, c.CustomerName FROM Customers AS c, Orders AS o WHERE c.CustomerNameAround the Horn AND c.CustomerIDo.CustomerID;以下 SQL 语句与上面相同但没有别名 SELECT Orders.OrderID, Orders.OrderDate, Customers.CustomerName FROM Customers, Orders WHERE Customers.CustomerNameAround the Horn AND Customers.CustomerIDOrders.CustomerID;别名在以下情况下很有用 1.一个查询涉及多个表 2.一个查询涉及多个表 3.查询中使用的函数 4.列名很大或不太可读 5.两列或更多列组合在一起 JOIN连接 JOIN子句用于行从两个或更多表根据它们之间的相关列结合。 假设我们现在有Orders 表如下​ 同时还有表 “Customers” 如下​ 请注意“Orders”表中的“CustomerID”列指的是“Customers”表中的“CustomerID”。上面两个表之间的关系是“CustomerID”列。示例 使用INNER JOIN选择在两个表中具有匹配值的记录 SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate FROM Orders INNER JOIN Customers ON Orders.CustomerIDCustomers.CustomerID;返回如下​不同类型的 SQL JOIN​ INNER JOIN内连接关键字 INNER JOIN关键字选择在两个表中具有匹配值的记录。 语法 SELECT column_name(s) FROM table1 INNER JOIN table2 ON table1.column_name table2.column_name;画个图理解​ 假设我们还是有order表​ customer表​INNER JOIN 示例 选择所有包含客户信息的订单 SELECT Orders.OrderID, Customers.CustomerName FROM Orders INNER JOIN Customers ON Orders.CustomerID Customers.CustomerID;返回​JOIN 三张表 选择包含客户和发货人信息的所有订单 SELECT Orders.OrderID, Customers.CustomerName, Shippers.ShipperName FROM ((Orders INNER JOIN Customers ON Orders.CustomerID Customers.CustomerID) INNER JOIN Shippers ON Orders.ShipperID Shippers.ShipperID);返回如下​ LEFT JOIN 左连接 关键字 LEFT JOIN关键字返回左表 (table1) 中的所有记录以及右表 (table2) 中的匹配记录。如果没有匹配项则结果是右侧的 0 条记录。左连接语法 SELECT column_name(s) FROM table1 LEFT JOIN table2 ON table1.column_name table2.column_name;来个图就懂了​ 我们还是用customer表​ order表​LEFT JOIN 示例 选择所有客户以及他们可能拥有的任何订单 SELECT Customers.CustomerName, Orders.OrderID FROM Customers LEFT JOIN Orders ON Customers.CustomerID Orders.CustomerID ORDER BY Customers.CustomerName;返回如下​ RIGHT JOIN右连接 关键字 语法 SELECT column_name(s) FROM table1 RIGHT JOIN table2 ON table1.column_name table2.column_name;上图就懂了​ 现在我们用到order表如下​ 还有个employee表​ 返回所有员工以及他们可能下过的任何订单 SELECT Orders.OrderID, Employees.LastName, Employees.FirstName FROM Orders RIGHT JOIN Employees ON Orders.EmployeeID Employees.EmployeeID ORDER BY Orders.OrderID;FULL OUTER JOIN 关键字 FULL OUTER JOIN和 FULL JOIN是一样的。 语法为 SELECT column_name(s) FROM table1 FULL OUTER JOIN table2 ON table1.column_name table2.column_name WHERE condition;来个图就懂了​ 我们假设还是以customer表​ 还有个order表​ 选择所有客户和所有订单 SELECT Customers.CustomerName, Orders.OrderID FROM Customers FULL OUTER JOIN Orders ON Customers.CustomerIDOrders.CustomerID ORDER BY Customers.CustomerName;返回如下​ Self Join自连接 关键字 语法 SELECT column_name(s) FROM table1 T1, table1 T2 WHERE condition;我们假设有custormer表​ 匹配来自同一城市的客户 SELECT A.CustomerName AS CustomerName1, B.CustomerName AS CustomerName2, A.City FROM Customers A, Customers B WHERE A.CustomerID B.CustomerID AND A.City B.City ORDER BY A.City;返回如下​ GROUP BY语句 该GROUP BY语句将具有相同值的行分组为汇总行例如“查找每个国家/地区的客户数量”。 该GROUP BY语句通常与聚合函数 ( COUNT(), MAX(), MIN(), SUM(), AVG()) 一起使用 以按一列或多列对结果集进行分组。 语法 SELECT column_name(s) FROM table_name WHERE condition GROUP BY column_name(s) ORDER BY column_name(s);假设我们还是有customer这个表​ 列出了每个国家/地区的客户数量 SELECT COUNT(CustomerID), Country FROM Customers GROUP BY Country;列出了每个国家的客户数量从高到低排序 SELECT COUNT(CustomerID), Country FROM Customers GROUP BY Country ORDER BY COUNT(CustomerID) DESC;HAVING 子句 语法 SELECT column_name(s) FROM table_name WHERE condition GROUP BY column_name(s) HAVING condition ORDER BY column_name(s);假设还是有custorm表如下​ 列出了每个国家/地区的客户数量。仅包括拥有超过 5 个客户的国家/地区 SELECT COUNT(CustomerID), Country FROM Customers GROUP BY Country HAVING COUNT(CustomerID) 5;列出了每个国家的客户数量从高到低排序仅包括客户超过 5 个的国家 SELECT COUNT(CustomerID), Country FROM Customers GROUP BY Country HAVING COUNT(CustomerID) 5 ORDER BY COUNT(CustomerID) DESC;EXISTS 运算符 EXISTS运算符用于测试子查询中是否存在任何记录。 EXISTS运算符返回true如果子查询返回一个或多个记录。语法 SELECT column_name(s) FROM table_name WHERE EXISTS (SELECT column_name FROM table_name WHERE condition);假设我们还是用到product表​ suppiler表​ 例如 返回 TRUE 并列出产品价格小于 20 的供应商 SELECT SupplierName FROM Suppliers WHERE EXISTS (SELECT ProductName FROM Products WHERE Products.SupplierID Suppliers.supplierID AND Price 20);返回如下​ 返回 TRUE 并列出产品价格等于 22 的供应商 SELECT SupplierName FROM Suppliers WHERE EXISTS (SELECT ProductName FROM Products WHERE Products.SupplierID Suppliers.supplierID AND Price 22);返回为​ 注释 单行注释以–. – 和行尾之间的任何文本都将被忽略不会被执行 例如 --Select all: SELECT * FROM Customers;又例如 SELECT * FROM Customers -- WHERE CityBerlin;多行注释/*以 /. / 和 */ 之间的任何文本都将被忽略。 例如 /*Select all the columns of all the records in the Customers table:*/ SELECT * FROM Customers;又例如 /*SELECT * FROM Customers; SELECT * FROM Products; SELECT * FROM Orders; SELECT * FROM Categories;*/ SELECT * FROM Suppliers;忽略语句的一部分 例如 SELECT CustomerName, /*City,*/ Country FROM Customers;又例如 SELECT * FROM Customers WHERE (CustomerName LIKE L% OR CustomerName LIKE R% /*OR CustomerName LIKE S% OR CustomerName LIKE T%*/ OR CustomerName LIKE W%) AND CountryUSA ORDER BY CustomerName;运算符 其实这一节内容我已经在前面的运算符都演示过了。再说一下呗。算术运算符有​ 演示一部分 比如求2030 SELECT 30 20;除法返回3 SELECT 30 / 10;取余数返回2 SELECT 17 % 5;比较运算符​ 演示一部分 大于 SELECT * FROM Products WHERE Price 18; 不等于 SELECT * FROM Products WHERE Price 18;大于等于 SELECT * FROM Products WHERE Price 30;
http://www.sadfv.cn/news/316121/

相关文章:

  • 好的提升设计师网站手机开发者选项怎么打开
  • 医疗网站制作双鸭山seo
  • 网站建设座谈会上的发言微信小游戏开发软件
  • 网站怎么做商桥wordpress 安装平台
  • 哪里建设网站不需要备案桂林两江四湖象山景区简介
  • 软件外包平台的服务商专业放心关键词优化参考价格
  • vps建设网站别人访问不了精兴装修公司怎么样
  • 色彩网站设计师正规的培训机构有哪些
  • 专业电商网站海外推广什么意思
  • 网站开发培训机构排名学校网站建设厂家
  • 网站开发vs2015是什么wordpress 按钮
  • 维护网站要做哪些工作淘宝式网站建设
  • 西安免费企业网站模板图片婚恋网站设计
  • 北京营销型网站建设培训html网页制作基础教程
  • 虚拟主机做多个网站wordpress跟新到5.0.1是英文
  • 高品质网站开发wordpress 3.2 漏洞
  • 如何在自己网站做直播网站免费建站
  • 花都网站推广天津广告设计公司排名
  • 搜索关键字搜索到网站怎样在外国网站开发客户
  • 米拓做网站图片在哪里删掉东光网站建设
  • 旅游攻略网站源码网站建设学校培训班
  • 甘州区住房和城乡建设局网站免费做商城网站
  • 前端旅游网站行程怎么做学网站开发需要学那些
  • 坪山手机网站建设加快实施创新驱动发展战略
  • 万网网站模板横岗网站建设公司
  • 搜狗网站提交网站企业备案
  • 商标免费查询官网seo现在还有前景吗
  • 如何做百度推广网站网站开发语
  • 食品网站建设规划书vi设计案例ppt
  • 高校保卫处网站建设工作网站建设后台怎么修改