针对数据的插入
语法:
INSERT INTO 表名 [(列名,[列名....])] VALUES (值,[值]), (值,[值]), (值,[值])....;
如果为每列都指定值,则表名后不需要列出插入的列名。
如果不想在表名后列出列名,可以为那些无法指定的值插入NULL。
一次性插入多条记录
INSERT INTO 表名 [列名,[列名....]] VALUES (值,[值]), (值,[值]), (值,[值])....;
例如:新建一个表并插入记录
新建表:
CREATE TABLE newstudent(
StudentNo int(10),
StudentName varchar(20),
Address varchar(100)
);
插入记录:
①单条插入
INSERT INTO newstudent (StudentNo, StudentName, Address) VALUES (10, '张三', '陕西省延安市');
②多条插入
INSERT INTO newstudent (StudentNo, StudentName, Address) VALUES (11, '李四', '陕西省延安市'),(12,'王五','陕西省西安市');
③使用SELECT插入
INSERT INTO newstudent
SELECT StudentNo,StudentName,Address FROM student;
也是新增数据。
主要有三种语法:
语法格式1:
REPLACE INTO 表名 [(字段列表)] VALUES (值列表);
语法格式2:
REPLACE [INTO] 目标表名[(字段列表1)] SELECT (字段列表2) FROM 源表 [WHERE 条件表达式];
语法格式3:
REPLACE [INTO] 表名 SET 字段1=值1,字段2=值2;
REPLACE语句的功能和INSERT语句的功能基本相同,不同之处在于:使用REPLACE语句向表中插入新纪录时,如果新纪录的主键值或者唯一性约束的字段值与已有记录相同,则已有记录先被删除(注意:已有记录删除时也不能违背外键约束条件),然后再插入新记录。
使用REPLACE的最大好处就是可以将DELETE和INSERT语句合二为一(效果相当于更新),形成一个原子操作,这样就无需将DELETE操作与INSERT操作置于事务中了。
语法:
DELETE FROM 表名 [WHERE 条件];
注意:如果没有WHERE 条件则整表记录删除
例如:
DELETE FROM newstudent WHERE StudentNo=1111;
语法:
TRUNCATE FROM 表名 [WHERE 条件];
例如:
TRUNCATE FROM newstudent StudentNo=1111;
DROP: 删除数据和表结构,删除速度最快。
**TRUNCATE:**删除所有数据,保留表结构,不可以回滚,一次全部删除所有数据,速度相对很快。
**DELETE:**删除数据,保留表结构,可以回滚,如果数据量大,很慢。
语法:
UPDATE 表名
SET 列名1=值1,[列名2=值2...]
[WHERE 条件];
例如:修改李文才的名字为李四
UPDATE newstudent
SET StudentName="李四"
WHERE StudentName="李文才";