SQL教程:理解您的数据库语言
大多数数据库使用结构化查询语言(SQL)。您与数据库表之间的此语言接口。即使您知道另一种基于Web的脚本语言(C#,PHP或VB.NET),您也需要知道如何从数据库查询数据。MySQL,Microsoft SQL Server和Oracle使用类似的语言结构。虽然它们类似,但它们有一些差异,但学习一种语言将帮助您了解其余的。
检索数据的基本查询
“选择”语句是检索数据的主语。没有更改或删除数据。它刚刚检索您的使用。您可以在网页上显示数据或使用它以更新程序稍后更新数据。以下代码是SELECT语句的示例:
选择*来自用户
以上声明可能是您可以编写的最基本的SQL语句。该声明基本上说:“从用户表中选择所有记录。”星号告诉数据库返回所有列。例如,“用户”表可以具有名字和姓氏,地址和注册日期列。通过上述声明,您会看到它们。
显然,您想要过滤记录。您通常希望只检索某个记录集。例如,客户登录您的网站。然后,您可以根据客户的ID检索客户的信息(在此示例中为用户ID)。以下代码检索具有id为3的用户:
Select * from users where userid=3
除了检索经过筛选的记录集之外,您还应该限制返回的列的数量。星号返回所有列。这包括注册日期,修改日期,外键和其他无用的信息前端网页。您可以指定返回的列。您应该只返回需要在前端处理的列。下面的语句只选择第一列和最后一列:
选择first_name,来自userid = 3的用户的last_name
有几种其他类型的SELECT语句。要了解更多关于SQL语言的知识,可以在Udemy.com上学习。
更新语句
更新语句是用于编辑记录的语句。大多数桌子不会静止不动。您需要更改数据。update语句就是这样做的。下面的代码是一个基本的更新语句的示例:
update users set first_name= ' Jane ' where userid=3
该陈述的一个重要部分是Where子句。如果您忘记了,您将将用户表中的每个记录更新为“Jane”。除非您想要更改每个记录(以及通常不会),否则您必须确保在更新语句中包含一个where子句。您也可以一次更改多个列。以下代码更改了用户的名字和姓氏,其中id为3:
update users set first_name= ' Jane ', last_name= ' Smith ' where userid=3
删除语句
SQL delete语句从表中删除记录。同样,where子句在这个语句中也很重要。如果没有where子句,您将删除表中的所有记录。与更新语句一样,这种类型的错误是灾难性的,它意味着您需要从备份中恢复数据。
以下代码是DELETE语句的示例:
删除userid=3的用户
上面的代码只删除了一个记录,但您可以使用Where子句一次删除多个记录。您可能可能会限制您执行的删除语句的数量。它标准将记录设置为活动或非活动而不是仅删除它们。您将“位”列添加到表中并在必要时停用,但您仍然有帐户,订单或其他类型的记录记录。
大多数SQL数据库是关系数据库。这意味着使用主键和外键将表链接在一起。例如,将客户ID存储到每个订单记录中,以便将客户与订单联系起来。这意味着您需要在删除客户之前删除订单。如果不这样做,就会留下所谓的“孤立记录”。除了删除记录的问题之外,孤立的记录可能会导致系统出现bug。
Insert语句
插入语句是向数据库表添加记录的方式。insert语句的长度取决于创建记录所需的数据和表的列声明中设置的任何默认值。例如,如果不允许用户的名和姓为空,则必须在插入语句中包含名和姓语句。替代此限制的方法是在表定义中设置默认值。您将在定义表时设置这些值。
下面的代码是一个插入语句的示例:
插入用户(first_name,last_name)值('简','smith')
上述声明添加了一个记录。值“简”和“史密斯”用于第一个和姓氏。
如果没有包含所有必要的数据,该语句将抛出一个错误。例如,大多数用户表都有一个ID列。您不必计算这个惟一ID,但是可以将数据库设置为每次插入新记录时自动增加1列。如果列不递增,则返回错误。一些数据库管理员还将这些列设置为主键。主键必须唯一且不能为空,因此在插入新数据时必须考虑这个问题。
您还可以插入一些默认数据。例如,在数据库中应该有一个“创建日期”。在MSSQL中,你可以使用下面的语句使用getDate()函数插入一个带有默认系统日期的记录:
插入用户(first_name,last_name,create_date)值('简','smith',getdate())
这些是您使用SQL数据库时所需的四个基本SQL语句。存在更复杂的语句,但您不会为大多数操作需要它们。