加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 电商 > 正文

sql的三个首要语句及一点能力

发布时间:2018-08-21 15:50:29 所属栏目:电商 来源:站长网
导读:1.插入数据 (insert) 向表中添加一个新记录,你要行使SQL INSERT 语句。这里有一个怎样行使这种语句的例子: INSERT mytable (mycolumn) VALUES (some data') 这个语句把字符串'some data'插入表mytable的mycolumn字段中。将要被插入数据的字段的名字在

1.插入数据 (insert)                                                                               向表中添加一个新记录,你要行使SQL INSERT 语句。这里有一个怎样行使这种语句的例子: INSERT mytable (mycolumn) VALUES (‘some data')   这个语句把字符串'some data'插入表mytable的mycolumn字段中。将要被插入数据的字段的名字在第一个括号中指定,现实的数据在第二个括号中给出。



INSERT 语句的完备句法如下:

INSERT [INTO] {table_name|view_name} [(column_list)] {DEFAULT VALUES |

Values_list | select_statement}


 


假如一个表有多个字段,通过把字段名和字段值用逗号离隔,你可以向全部的字段中插入数据。假设表mytable有三个字段first_column,second_column,和third_column。下面的INSERT语句添加了一条三个字段都有值的完备记录:

INSERT mytable (first_column,second_column,third_column)

VALUES (‘some data','some more data','yet more data')


 


留意



你可以行使INSERT语句向文本型字段中插入数据。可是,假如你必要输入很长的字符串,你应该行使WRITETEXT语句.

 

假如你在INSERT 语句中只指定两个字段和数据会怎么样呢?换句话说,你向一个表中插入一条新记录,但有一个字段没有提供数据。在这种环境下,有下面的四种也许:

假如该字段有一个缺省值,该值会被行使。譬喻,假设你插入新记录时没有给字段third_column提供数据,而这个字段有一个缺省值'some value'。在这种环境下,当新记录成立时会插入值'some value'。

假如该字段可以接管空值,并且没有缺省值,则会被插入空值。

假如该字段不能接管空值,并且没有缺省值,就会呈现错误。你会收到错误信息:

The column in table mytable may not be null.

最后,假如该字段是一个标识字段,那么它会自动发生一个新值。当你向一个有标识字段的表中插入新记录时,只要忽略该字段,标识字段会给本身赋一个新值。

留意 :向一个有标识字段的表中插入新记录后,你可以用SQL变量@@identity来会见新记录 的标识字段的值。思量如下的SQL语句:

INSERT mytable (first_column) VALUES(‘some value')

INSERT anothertable(another_first,another_second)

VALUES(@@identity,'some value')

假如表mytable有一个标识字段,该字段的值会被插入表anothertable的another_first字段。这是由于变量@@identity老是生涯最后一次插入标识字段的值。

字段another_first应该与字段first_column有沟通的数据范例。可是,字段another_first不能是应该标识字段。Another_first字段用来生涯字段first_column的值。


 


2.删除记录

要从表中删除一个或多个记录,必要行使SQL DELETE语句。你可以给DELETE 语句提供WHERE 子句。WHERE子句用来选摘要删除的记录。譬喻,下面的这个DELETE语句只删除字段first_column的值便是'Delete Me'的记录:

DELETE mytable WHERE first_column='Deltet Me'

DELETE 语句的完备句法如下:

DELETE [FROM] {table_name|view_name} [WHERE clause]

在SQL SELECT 语句中可以行使的任何前提都可以在DELECT 语句的WHERE子句 中行使。譬喻,下面的这个DELETE语句只删除那些first_column字段的值为'goodbye'或second_column字段的值为'so long'的记录:

DELETE mytable WHERE first_column='goodby' OR second_column='so long'

假如你不给DELETE 语句提供WHERE 子句,表中的全部记录都将被删除。你不该该有这种设法。假如你想删除应该表中的全部记录,应行使第十章所讲的TRUNCATE TABLE语句。

留意



为什么要用TRUNCATE TABLE 语句取代DELETE语句?当你行使TRUNCATE TABLE语句时,记录的删除是不作记录的。也就是说,这意味着TRUNCATE TABLE 要比DELETE快得多。


 


3.更新记录

要修改表中已经存在的一条或多笔记录,应行使SQL UPDATE语句。同DELETE语句一样,UPDATE语句可以行使WHERE子句来选择更新特定的记录。请看这个例子:

UPDATE mytable SET first_column='Updated!' WHERE second_column='Update Me!'

这个UPDATE 语句更新全部second_column字段的值为'Update Me!'的记录。对全部被选中的记录,字段first_column的值被置为'Updated!'。

下面是UPDATE语句的完备句法:

UPDATE {table_name|view_name} SET [{table_name|view_name}]

{column_list|variable_list|variable_and_column_list}

[,{column_list2|variable_list2|variable_and_column_list2}...

[,{column_listN|variable_listN|variable_and_column_listN}]]

[WHERE clause]

留意



你可以对文本型字段行使UPDATE语句。可是,假如你必要更新很长的字符串,应行使UPDATETEXT语句。这部门内容对本书来说太高级了,因此不加接头。要相识更多的信息,请参考Microsoft SQL Sever 的文档。

假如你不提供WHERE子句,表中的全部记录都将被更新。偶然这是有效的。譬喻,假如你想把表titles中的全部书的价值更加,你可以行使如下的UPDATE 语句:

你也可以同时更新多个字段。譬喻,下面的UPDATE语句同时更新first_column,second_column,和third_column这三个字段:

UPDATE mytable SET first_column='Updated!'

Second_column='Updated!'

Third_column='Updated!'

WHERE first_column='Update Me1'

能力



SQL忽略语句中多余的空格。你可以把SQL语句写成任何你最轻易读的名目。

用SELECT 建设记录和表

你大概已经留意到,INSERT 语句与DELETE语句和UPDATE语句有一点差异,它一次只操纵一个记录。然而,有一个要领可以使INSERT 语句一次添加多个记录。要作到这一点,你必要把INSERT 语句与SELECT 语句团结起来,象这样:

INSERT mytable (first_column,second_column)

SELECT another_first,another_second

FROM anothertable

WHERE another_first='Copy Me!'

这个语句从anothertable拷贝记录到mytable.只有表anothertable中字段another_first的值为'Copy Me!'的记录才被拷贝。

当为一个表中的记录成立备份时,这种情势的INSERT 语句长短常有效的。在删除一个表中的记录之前,你可以先用这种要领把它们拷贝到另一个表中。

假如你必要拷贝整个表,你可以行使SELECT INTO 语句。譬喻,下面的语句建设了一个名为newtable的新表,该表包括表mytable的全部数据:

SELECT * INTO newtable FROM mytable

你也可以指定只有特定的字段被用来建设这个新表。要做到这一点,只需在字段列表中指定你想要拷贝的字段。其它,你可以行使WHERE 子句来限定拷贝到新表中的记录。下面的例子只拷贝字段second_columnd的值便是'Copy Me!'的记录的first_column字段。

SELECT first_column INTO newtable

FROM mytable

WHERE second_column='Copy Me!'

行使SQL修改已经成立的表是很坚苦的。譬喻,假如你向一个表中添加了一个字段,没有轻易的步伐往复除它。其它,假如你不警惕把一个字段的数据范例给错了,你将没有步伐改变它。可是,行使本节中报告的SQL语句,你可以绕过这两个题目。



譬喻,假设你想从一个表中删除一个字段。行使SELECT INTO 语句,你可以建设该表的一个拷贝,但不包括要删除的字段。这使你既删除了该字段,又保存了不想删除的数据。



假如你想改变一个字段的数据范例,你可以建设一个包括正确数据范例字段的新表。建设好该表后,你就可以团结行使UPDATE语句和SELECT 语句,把原本表中的全部数据拷贝到新表中。通过这种要领,你既可以修改表的布局,又能生涯原有的数据。

(编辑:湖南网)

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

    热点阅读