加入收藏 | 设为首页 | 会员中心 | 我要投稿 天瑞地安资讯网_保定站长网 (https://www.52baoding.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

SQL数据库--一些基本的操作

发布时间:2022-09-27 13:17:07 所属栏目:MySql教程 来源:
导读:  1.SQL 指的是?

  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
 

(编辑:天瑞地安资讯网_保定站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!