SQL数据库--一些基本的操作
发布时间:2022-09-27 13:17:07 所属栏目:MySql教程 来源:
导读: 1.SQL 指的是?
Structured Query Language
2.用于从数据库中提取数据?
SELECT
3.用于更新数据库中的数据?
UPDATE UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 =
Structured Query Language
2.用于从数据库中提取数据?
SELECT
3.用于更新数据库中的数据?
UPDATE UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 =
|
1.SQL 指的是? Structured Query Language 2.用于从数据库中提取数据? SELECT 3.用于更新数据库中的数据? UPDATE UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值 4.用于删除数据库中的数据? DELETE 可以在不删除表的情况下删除所有的行。这意味着表的结构、属性和索引都是完整的: DELETE FROM table_name 或者 DELETE * FROM table_name 5.用于在数据库中插入新的数据? INSERT INTO INSERT INTO 表名称 VALUES (值1, 值2,....) INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....) 6.从 "Persons" 表中选取 "FirstName" 列? SELECT FirstName FROM Persons 7.从 "Persons" 表中选取所有的列?SELECT * FROM Persons 提示:星号(*)是选取所有列的快捷方式。8.从 "Persons" 表中选取 "FirstName" 列的值等于"Peter" 的所有记录? SELECT * FROM Persons WHERE FirstName='Peter' 9.从 "Persons" 表中选取 "FirstName" 列的值以 "a" 开头的所有记录? SELECT * FROM Persons WHERE FirstName LIKE 'a%'LIKE 用于在 WHERE 子句中搜索列中的指定模式。NOT LIKE 不包含 SQL 通配符必须与 LIKE 运算符一起使用。在 SQL 中数据库插入操作,可使用以下通配符: 通配符描述 % 替代一个或多个字符 _ 仅替代一个字符 [charlist] 字符列中的任何单一字符 [^charlist] 或者 [!charlist] 不在字符列中的任何单一字符 选取居住的城市以 "A" 或 "L" 或 "N" 开头的人: SELECT * FROM Persons WHERE City LIKE '[ALN]%' 10.请判断下列说法是否正确:当所列出的某个条件为 true 时,OR 运算符会显示记录。当列出的所有条件为 true 时,AND 运算符会显示记录。 正确 11.在表 Persons 中选择 FirstName 等于 Thomas 而 LastName 等于 Carter 的所有记录? SELECT * FROM Persons WHERE FirstName='Thomas' AND LastName='Carter' 12.按字母顺序选取 Persons 表中 LastName 介于 Adams 和 Carter 的所有记录? SELECT * FROM Persons WHERE LastName BETWEEN 'Adams' AND 'Carter' BETWEEN ... AND 选取两个值之间的数据范围。这些值可以是数值、文本或者日期。NOT BETWEEN ... AND 13.返回唯一不同的值?SELECT DISTINCT14.用于对结果集进行排序? ORDER BY 语句默认按照升序对记录进行排序。如果您希望按照降序对记录进行排序,可以使用 DESC 关键字。 15.根据 "FirstName" 列降序地从 "Persons" 表返回所有记录? SELECT * FROM Persons ORDER BY FirstName DESC 升序位ASC 默认降序 16.向 "Persons" 表插入新的记录? INSERT INTO Persons VALUES ('Jimmy', 'Jackson')SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。如果是数值,请不要使用引号。 17.向 "Persons" 表中的 "LastName" 列插入 "Wilson" ? INSERT INTO Persons (LastName) VALUES ('Wilson') 18.把 "Persons" 表中 "LastName" 列的 "Gates" 改为 "Wilson" ? UPDATE Persons SET LastName='Wilson' WHERE LastName='Gates' 更新某一行中的若干列UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing'WHERE LastName = 'Wilson' 19.在 "Persons" 表中删除 "FirstName" 等于 "Fred" 的纪录? DELETE FROM Persons WHERE FirstName = 'Fred' 20.返回 "Persons" 表中记录的数目? SELECT COUNT(*) FROM Persons SQL 中最重要的 DDL 语句: 1.TOP 子句用于规定要返回的记录的数目。 SELECT TOP number|percent column_name(s) FROM table_name SELECT column_name(s) FROM table_name LIMIT number 2.IN 操作符允许我们在 WHERE 子句中规定多个值。 SELECT column_name(s) FROM table_name WHERE column_name IN (value1,value2,...) 3.可以为列名称和表名称指定别名(Alias)。 SELECT column_name(s) 表 FROM table_name AS alias_name SELECT column_name AS alias_name 列 FROM table_name 假设我们有两个表分别是:"Persons" 和 "Product_Orders"。我们分别为它们指定别名 "p" 和 "po"。现在,我们希望列出 "John Adams" 的所有定单。 我们可以使用下面的 SELECT 语句: SELECT po.OrderID, p.LastName, p.FirstName FROM Persons AS p, Product_Orders AS po WHERE p.LastName='Adams' AND p.FirstName='John' 不使用别名的 SELECT 语句: SELECT Product_Orders.OrderID, Persons.LastName, Persons.FirstName FROM Persons, Product_Orders WHERE Persons.LastName='Adams' AND Persons.FirstName='John' 从上面两条 SELECT 语句您可以看到,别名使查询程序更易阅读和书写。 4.join 用于根据两个或多个表中的列之间的关系,从这些表中查询数据。 数据库中的表可通过键将彼此联系起来。主键(Primary Key)是一个列,在这个列中的每一行的值都是唯一的。在表中,每个主键的值都是唯一的。这样做的目的是在不重复每个表中的所有数据的情况下,把表间的数据交叉捆绑在一起。 SELECT column_name(s) FROM table_name1 INNER JOIN table_name2 ON table_name1.column_name=table_name2.column_name 我们可以通过引用两个表的方式,从两个表中获取数据:谁订购了产品,并且他们订购了什么产品? SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons, Orders WHERE Persons.Id_P = Orders.Id_P 除了上面的方法,我们也可以使用关键词 JOIN 来从两个表中获取数据。 如果我们希望列出所有人的定购,可以使用下面的 SELECT 语句: SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons INNER JOIN Orders ON Persons.Id_P = Orders.Id_P ORDER BY Persons.LastName 5.内连接与外连接。INNER JOIN(内连接)6.UNION 操作符用于合并两个或多个 SELECT 语句的结果集。 SELECT column_name(s) FROM table_name1 UNION SELECT column_name(s) FROM table_name2 注释:默认地,UNION 操作符选取不同的值,去重。如果允许重复的值,请使用 UNION ALL。 SELECT column_name(s) FROM table_name1 UNION ALL SELECT column_name(s) FROM table_name2 另外,UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名。 7.ALTER TABLE 语句用于在已有的表中添加、修改或删除列。 如需在表中添加列,请使用下列语法: ALTER TABLE table_name ADD column_name datatype 要删除表中的列,请使用下列语法: ALTER TABLE table_name DROP COLUMN column_name 注释:某些数据库系统不允许这种在数据库表中删除列的方式 (DROP COLUMN column_name)。 要改变表中列的数据类型,请使用下列语法:mysql ALTER TABLE table_name ALTER COLUMN column_name datatype 8.CREATE TABLE 语句用于创建数据库中的表。 CREATE TABLE 表名称 ( 列名称1 数据类型, 列名称2 数据类型, 列名称3 数据类型, .... ) 数据类型(data_type)规定了列可容纳何种数据类型。下面的表格包含了SQL中最常用的数据类型: 数据类型描述 仅容纳整数。在括号内规定数字的最大位数。 容纳带有小数的数字。 "size" 规定数字的最大位数。"d" 规定小数点右侧的最大位数。 char(size) 容纳固定长度的字符串(可容纳字母、数字以及特殊字符)。 在括号中规定字符串的长度。 varchar(size) 容纳可变长度的字符串(可容纳字母、数字以及特殊的字符)。 在括号中规定字符串的最大长度。 date(yyyymmdd) 容纳日期。 9.索引 您可以在表中创建索引,以便更加快速高效地查询数据。 用户无法看到索引,它们只能被用来加速搜索/查询。 注释:更新一个包含索引的表需要比更新一个没有索引的表更多的时间,这是由于索引本身也需要更新。因此,理想的做法是仅仅在常常被搜索的列(以及表)上面创建索引。 CREATE INDEX 语法 在表上创建一个简单的索引。允许使用重复的值: CREATE INDEX index_name ON table_name (column_name) 注释:"column_name" 规定需要索引的列。 CREATE UNIQUE INDEX 语法 在表上创建一个唯一的索引。唯一的索引意味着两个行不能拥有相同的索引值。 CREATE UNIQUE INDEX index_name ON table_name (column_name) 10.通过使用 DROP 语句,可以轻松地删除索引、表和数据库。 ALTER TABLE table_name DROP INDEX index_name mysql DROP TABLE 表名称 sql DROP DATABASE 数据库名称 sql TRUNCATE TABLE 语句:如果我们仅仅需要除去表内的数据,但并不删除表本身,那么我们该如何做呢? 请使用 TRUNCATE TABLE 命令(仅仅删除表格中的数据): TRUNCATE TABLE 表名称 11.一些函数。 希望找到 OrderPrice 值高于 OrderPrice 平均值的客户。 SELECT Customer FROM Orders WHERE OrderPrice>(SELECT AVG(OrderPrice) FROM Orders) COUNT(column_name) 函数返回指定列的值的数目(NULL 不计入): SELECT COUNT(column_name) FROM table_name COUNT(*) 函数返回表中的记录数: SELECT COUNT(*) FROM table_name COUNT(DISTINCT column_name) 函数返回指定列的不同值的数目: SELECT COUNT(DISTINCT column_name) FROM table_name 注释:COUNT(DISTINCT) 适用于 ORACLE 和 Microsoft SQL Server,但是无法用于 Microsoft Access。 我们希望查找 "OrderPrice" 列的最后一个值。 SELECT LAST(OrderPrice) AS LastOrderPrice FROM Orders 合计函数 (比如 SUM) 常常需要添加 GROUP BY 语句。 GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组。 SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name 我们也可以对一个以上的列应用 GROUP BY 语句,就像这样: SELECT Customer,OrderDate,SUM(OrderPrice) FROM Orders GROUP BY Customer,OrderDate 在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数如sum等一起使用。 SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name HAVING aggregate_function(column_name) operator value 希望查找订单总金额少于 2000 的客户。 SELECT Customer,SUM(OrderPrice) FROM Orders GROUP BY Customer HAVING SUM(OrderPrice)<2000 希望查找客户 "Bush" 或 "Adams" 拥有超过 1500 的订单总金额。 SELECT Customer,SUM(OrderPrice) FROM Orders WHERE Customer='Bush' OR Customer='Adams' GROUP BY Customer HAVING SUM(OrderPrice)>1500 (编辑:天瑞地安资讯网_保定站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐

