1.数据插入
1、插入完整或部分的行
INSERT INTO table
VALUES ('001','china','111',NULL);
上面这种方式需要数据按照列在表中的顺序添加,没有值要用NULL填充。
但是我们最好不要采用这种方式,因为这高度依赖表中列的次序,即使次序知道也不能保证次序不会修改。
我们最好用下面的方式
INSERT INTO table (id, add, num, price)
VALUES (‘001’,‘china’,‘111’,NULL);
在表名字后面指定列名,顺序和value一一对应,这样就不会产生错误。
同时,我们可以插入部分列,省略某些列。但要注意,省略的列是允许有NULL值或者有默认值的,不然省略它们会产生错误。
2.插入检索的数据
INSERT还可以用来将SELECT语句的结果插入表中,比如我们想将table2的数据插入到table1中,前提是这两个表的列结构要相同。且主键不能有相同的值,不然会出现错误。
INSERT INTO table1(lie1,lie2,lie3)
SELECT lie1,lie2,lie3
FROM table2
where .....;
2.更新删除数据(UPDATE,DELETE)
举个例子,将id为001的顾客的电子邮件改为1111,名字改为wang;
UPDATE table
SET email='1111',name='wang'
where id='001';
注意where子句使用要谨慎,没有where子句会导致表中所有邮件都会被改成1111。当然,可以修改多处,只要加lie=xxx就可以,SET只需要一个;
DELETE不需要指定列名或通配符,因为它是删除指定行或者所有行。比如
DELETE FROM table
where id='001';
这将删除id是001的顾客这一行信息。如果没有where过滤,将删除所有行,所以谨慎使用delete。
删除所有行指的是删除数据,表结构本身并没有删除。
如果想要删除所有信息,用truncate table 表名更快,因为它不扫描表,不记录数据变动。
如果想要这个表结构也删除,使用drop table 表名;
4、表的创建更新和删除
例子
创建表关键字CREATE
CREATE TABLE table1
(
id char(10) NOT NULL,
name char (200) ,
price decimal(8,2) NOT NULL default 0;
);
创建表时用圆括号指定列名,数据类型,是否允许空值,默认值。NULL是默认的,如果要把一个列当主键,那么必须指定这列NOT NULL,主键不允许有空值。
更新表关键字ALTER
表的更新和UPDATE更新不同,ALTER更新的是表的结构,比如增加删除列,增加删除约束,键等。
ALTER TABLE table
ADD phone char(20);
ALTER TABLE table
DROP COLUMN phone;
使用ALTER应小心,表的修改是不能撤销的,比如数据丢失等情况会发生。最好提前备份原表。
删除表很简单: DROP TABLE 表名;