一、增加
1、向原表的字段中插入多条记录的方法
# mysql中常用的三种插入数据的语句:
# insert into表示插入数据,数据库会检查主键,如果出现重复会报错;
# replace into表示插入替换数据,需求表中有PrimaryKey,
# 或者unique索引,如果数据库已经存在数据,则用新数据替换,如果没有数据效果则和insert into一样;
# insert ignore表示,如果中已经存在相同的记录,则忽略当前新数据;
insert ignore into actor values("3","ED","CHASE","2006-02-15 12:34:33");
向原表的字段中插入多条记录的方法
语法:
insert into 表名(表中的字段,,)values(字段所对应的记录,,) , (字段所对应的记录);INSERT INTO table_name VALUES (value1,value2,value3,…),(value1,value2,value3,…);用逗号隔开,括号括起来,加多少行数据就写多少个。
2、MySQL 插入日期和时间
在 MySQL中,可以使用以下数据类型来存储日期和时间数据:
-
DATE: 存储日期数据,格式为’YYYY-MM-DD’
-
TIME: 存储时间数据,格式为’HH:MM:SS’
-
DATETIME: 存储日期和时间数据,格式为’YYYY-MM-DD HH:MM:SS’
-
TIMESTAMP: 存储日期和时间数据,格式为’YYYY-MM-DD HH:MM:SS’
要在 MySQL中插入日期和时间数据,可以使用INSERT INTO语句,其语法如下:
INSERT INTO table_name (column1, column2, ..., columnN)
VALUES (value1, value2, ..., valueN);
其中,table_name是表名,column1至columnN是要插入的列名,value1至valueN是对应列的值
3、插入当前日期和时间
有时候,我们需要将当前日期和时间插入到数据库中。
要插入当前日期和时间,可以使用NOW()函数。该函数返回当前日期和时间的值。
INSERT INTO orders (order_date, order_time) VALUES (NOW(), NOW());
向orders表中的order_date和order_time列插入当前日期和时间值。
4、插入当前日期
要插入当前日期,可以使用CURDATE()函数。该函数返回当前日期的值。
INSERT INTO orders (order_date) VALUES (CURDATE());
向orders表中的order_date列插入当前日期值。
5、插入当前时间
要插入当前时间,可以使用CURTIME()函数。该函数返回当前时间的值。
INSERT INTO orders (order_time) VALUES (CURTIME());
向orders表中的order_time列插入当前时间值。
二、删除
1、删除单行数据
SQL语句delete的语法如下:
DELETE FROM 表名称 WHERE 列名称 = 值
例如:
delete from student where sno = '0001
删除1987年入职的员工的信息
delete from myemp where TO_CHAR(hiredate,'yyyy')=1987;
注意:如果删除的时候没有相应匹配条件的时候,则更新记录为0,更新操作也一样。
2、仅删除数据,不删除表结构
方法一:在不删除表的情况下删除所有的行,即表的结构、属性和索引都是完整的,仅改变表中数据内容:
delete from table_name 或者 delete * from table_name
方法二:如果我们仅仅需要除去表内的数据,但并不删除表本身,那么我们该使用
TRUNCATE TABLE命令(仅仅删除表格中的数据):
TRUNCATE TABLE 表名称
3、删除表中索引
使用DROP INDEX命令删除表格中的索引
DROP INDEX table_name.index_name
4、删除表(包括表结构、索引等)
使用DROP TABLE 语句用于删除表(表的结构、属性以及索引也会被删除):
DROP TABLE 表名称
5、删除数据库
使用DROP DATABASE 语句用于删除数据库:
DROP DATABASE 数据库名称
三、修改
语法:
UPDATE 表名称 SET 更新字段1=更新值1,更新字段2=更新值2,...[WHERE 更新条件(s)];
举例+演示:
-
更新员工编号为7369的员工的工资为5000,奖金为2000,职位升级为'MANAGER',职位更新时间为当前时间
update myemp set sal=2000,job='MANAGER',hiredate=sysdate where empno=7369;
-
所有员工的工资统一改为20000
update myemp set sal=20000;
不添加限定条件,即就是对所有的数据项进行修改
修改表名
alter table <原来的表名> rename to <新表名>;
四、替换
REPLACE(String,from_str,to_str) --即:将String中所有出现的from_str替换为to_str。
1、查询替换
总结:联想到前面有讲过 使用IF(expr1,expr2,expr3) 及 CASE...WHEN...THEN...END 可以实现查询结果的别名显示(这俩我还不清楚!!!)
但区别是:这两者是将查询结果值做整体的别名显示,而replace则可以对查询结果的局部字符串做替换显示(输出)。
2、更新替换
将address字段里的 “东” 替换为 “西” ,如下:
update test_tb set address=replace(address,'东','西') where id=2
总结:对字段中局部字符串做更新替换。
3、插入替换
将id=6的name字段值改为wokou
replace into test_tb VALUES(6,'wokou','新九州岛','日本')
总结:向表中“替换插入”一条数据,如果原表中没有id=6这条数据就作为新数据插入(相当于insert into作用);如果原表中有id=6这条数据就做替换(相当于update作用)。对于没有指定的字段以默认值插入。