sql之插入、更新、删除记录,创建、修改以及删除表

来源:互联网 发布:编程语言难度排行 编辑:程序博客网 时间:2024/06/05 16:41

插入

基础

        关键字:INSERT INTO VALUES基本语法为:

INSERT INTO table(column1,column2) VALUES(value1,value2)
        表名后跟的是要插入的行中的列名,它不一定是所有的列,VALUES后跟的是对应的列的值,可以为NULL。如:
INSERT INTO Customers(cust_name,cust_id) VALUES('test','102')
        向Customers表中插入一行记录,该记录的cust_name列与cust_id列的值分别为test,102。其余未指定的列的值默认都是NULL。

        要注意:1,前面给出多少个列名,VALUES中就必须给出多个值,即使值为NULL。2,INSERT INTO通常只插入一行,如果要插入多行,需要执行多个INSERT INTO语句。

与SELECT结合

        INSERT INTO可以与SELECT结合,表示将SELECT中查询到的数据插入到INSERT INTO指定的表中,此时省略VALUES关键字,无论SELECT查询到多少条。

        两者结合使用时,并不要求INSERT INTO指定的列名与SELECT返回的列名一致,DBMS只会将SELECT返回的第一列用来填充INSERT INTO指定的第一列,第二列填充INSERT INTO的第二列,其余类推。如:

INSERT INTO Customers(cust_id,cust_name) SELECT prod_id,prod_name FROM Products WHERE vend_id='FNG01'

        从中可以看出,SELECT返回的列名完全与INSERT INTO指定的列名毫无关系,但一样可以插入——因为DBMS不关心两者的列名是否相同,只关系插入的数据个数是不是相同。

        另外,在SELECT之前,是没有VALUES关键字的。并且在SELECT中还可以使用WHERE语句来过滤要插入的数据。

复制

        将一个表中指定的列复制到一个新表中,这个新表会在运行中创建,并且不能是已经存在的。如下:

CREATE TABLE Cxxx1 AS SELECT cust_id,cust_name FROM Customers
        将Customers表中的cust_id,cust_name两列复制到指定的Cxxx1表中,在运行过程中会自动创建该表。

更新

        使用UPDATE与SET关键字。要注意:更新时一定要使用WHERE子句,否则会更新所有行。如:

UPDATE Cxxx1 SET cust_name='xxxxx' WHERE cust_id='1000000001'

        如果更新多列,则在SET后跟多个列=值即可,不同的列之间用逗号隔开。

        可以将某列的值设置为NULL,相当于删除该行中指定列的值。

删除

        使用DELETE FROM关键字,也要指定WHERE子句用于标明删除行,如果没有WHERE子句,会将表中所有行都删除。如:

DELETE FROM Cxxx1 WHERE cust_id='1000000001'

        DELETE FROM可以删除表中所有的行,但不会删除表。

创建表

        关键字:CREATE TABLE。如:

CREATE TABLE T (id varchar(20) NOT NULL,name varchar(20) NULL);

        CREATE TABLE后跟的是表名,()中是列名,列的数据类型,以及是否可以为NULL,不同的列之间用逗号隔开。

        NOT NULL:指定该列值不能为NULL。

        NULL:指定该列值可以为NULL。

        DEFAULT:可以在NOT NULL或NULL后跟DEFAULT关键字,用于指定该列在未指定值时的默认值。如下:

CREATE TABLE d (id NOT NULL DEFAULT 1,name)INSERT INTO d(name) VALUES('1')
        第一句用于创建一个表,并为id列指定了一个默认值;第二句向该表中插入数据,只插入了name列的数据,而id列就会使用DEFAULT指定的默认值。

修改表

        关键字:ALTER TABLE。sqlite功能中只有向表中新添加列,重命名表名两个功能。

增加列

        使用ADD关键字,如下:

ALTER TABLE d ADD phone varchar(20) NULL
        向d表中新添加了一个phone列。

重命名表名

        关键字:RENAME TO。如下:

ALTER TABLE d RENAME TO D2
        将表d的表名重命名为D2。

        如果需要别的功能,就需要重新创建一个临时表,将本表中的数据复制到该表中,再删除原表,同时将临时表重命名为原来的名字。在此过程中可以对表中的列等重命名。

删除表

        关键字:DROP TABLE。如下:

DROP TABLE D2
        将表D2给删除,注意:它并不是删除某一记录,而是删除整个表,不管其内部有多少记录。




0 0