05 SQL的增删改

05 SQL的增删改

标签:数据库、SQL

1.INSERT——增加数据

①INSERT的基本用法

INSERT INTO Customers
VALUES('1000000006',
		'Toy Land',
        '123 Any Street',
        'New York', 
        'NY', 
        '11111', 
        'USA', 
        NULL,
        NULL);

  在VALUES子句中,必须给每一列提供一 个值。如果某列没有值,如上面
的cust_contact和cust_email列,则应该 使用NULL值(假定表允许对该列指定空值)。注意,VALUES的数 目都必须正确。
  上面的SQL语句高度依赖于表 中列的定义次序,还依赖于其容易获得的次序信息。
  编写INSERT语句的更安全(不过更烦琐)的 方法如下:

INSERT INTO Customers(cust_id, 
					cust_name,
                    cust_address,
                    cust_city, 
                    cust_state, 
                    cust_zip, 
                    cust_country,
                    cust_contact, 
                    cust_email)
VALUES('1000000006', 
		'Toy Land', 
		'123 Any Street', 
		'New York',
        'NY', 
        '11111',
        'USA',
        NULL, 
        NULL);

②INSERT SELECT——插入检索出的数据

INSERT INTO Customers(cust_id,
					cust_contact, 
					cust_email,
                    cust_name,
                    cust_address, 
                    cust_city, 
                    cust_state, 
                    cust_zip, 
                    cust_country) 
SELECT cust_id, 
	cust_contact, 
	cust_email, 
	cust_name, 
	cust_address, 
	cust_city,
    cust_state,
    cust_zip, 
    cust_country 
FROM CustNew;

  这个句子的基本组合是 INSERT SELECT。

插入多行的提示:INSERT通常只插入一行。要插入多行,必 须执行多个INSERT语句。INSERT SELECT是个例外,它可以用一 条INSERT插入多行,不管SELECT语句返 回多少行,都将被INSERT插入。

③SELECT INTO——从一个表复制到另一个表

说明:INSERT SELECT与 与SELECT INTO 它们之间的一个重要差别是前者导出数据,而后者导入数据。

SELECT * 
INTO CustCopy 
FROM Customers;

  而在Oracle、MySQL中,语法稍有不同。

CREATE TABLE CustCopy AS 
SELECT * 
FROM Customers;

2.UPDATE——更新数据

警告:不要省略WHERE子句,在使用UPDATE时一定要细心。因为稍不注 意,就会更新表中的所有行。

UPDATE Customers 
SET cust_email = 'kim@thetoystore.com' ,
	cust_email = 'sam@toyland.com'
WHERE cust_id = '1000000005';

3.DELETE——删除数据

警告:不要省略WHERE子句 子句 在使用DELETE时一定要细心。因为稍不注意,就会错误地删除表中所有行。

DELETE FROM Customers 
WHERE cust_id = '1000000006';

4.CREATE TABLE——创建表

CREATE TABLE Products ( prod_id       CHAR(10)          NOT NULL, 
						vend_id       CHAR(10)          NOT NULL, 
						prod_name     CHAR(254)         NOT NULL, 
						prod_price    DECIMAL(8,2)      NOT NULL, 
						prod_desc     VARCHAR(1000)     NULL,
                        quantity      INTEGER      NOT NULL   DEFAULT 1)

注意这里创建表所使用的格式,还有最后一句使用了DEFAULT 1,这样就有了默认值。

5.DROP TABLE——删除表

DROP TABLE CustCopy;

6.获取系统日期

  这里列出不同的DBMS的不同的获得系统日期的函数。

DBMS函数/变量
OracleSYSDATE
AccessNOW()
DB2CURRENT_DATE
MySQLCURRENT_DATE()
PostgreSQLCURRENT_DATE
SQL ServerGETDATE()
SQLitedate(‘now’)

7.ALTER——更改表的结构

①添加新的列

ALTER TABLE Vendors 
ADD vend_phone CHAR(20);

②删去一个列

ALTER TABLE Vendors 
DROP COLUMN vend_phone;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值