MySQL之DML

INSERT语句

针对数据的插入
语法:

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;

REPLACE语句

也是新增数据。
主要有三种语法:
语法格式1:

REPLACE INTO 表名 [(字段列表)] VALUES (值列表);

语法格式2:

REPLACE [INTO] 目标表名[(字段列表1)] SELECT (字段列表2) FROM 源表 [WHERE 条件表达式];

语法格式3:

REPLACE [INTO] 表名 SET 字段1=值1,字段2=值2;

REPLACE和INSERT语句的区别

REPLACE语句的功能和INSERT语句的功能基本相同,不同之处在于:使用REPLACE语句向表中插入新纪录时,如果新纪录的主键值或者唯一性约束的字段值与已有记录相同,则已有记录先被删除(注意:已有记录删除时也不能违背外键约束条件),然后再插入新记录。
使用REPLACE的最大好处就是可以将DELETE和INSERT语句合二为一(效果相当于更新),形成一个原子操作,这样就无需将DELETE操作与INSERT操作置于事务中了。

DELETE语句

语法:

DELETE FROM 表名 [WHERE 条件];

注意:如果没有WHERE 条件则整表记录删除

例如:

DELETE FROM newstudent WHERE StudentNo=1111;

TRUNCATE语句

语法:

TRUNCATE FROM 表名 [WHERE 条件];

例如:

TRUNCATE FROM newstudent StudentNo=1111;

DROP、TRUNCATE、DELETE的区别

DROP: 删除数据和表结构,删除速度最快。
**TRUNCATE:**删除所有数据,保留表结构,不可以回滚,一次全部删除所有数据,速度相对很快。
**DELETE:**删除数据,保留表结构,可以回滚,如果数据量大,很慢。

UPDATE语句

语法:

UPDATE 表名 
SET 列名1=值1,[列名2=值2...]
[WHERE 条件];

例如:修改李文才的名字为李四

UPDATE newstudent
SET StudentName="李四"
WHERE StudentName="李文才";

你可能感兴趣的:(数据库,mysql,数据库)