insert插入日期

数字格式化format

格式化数字:format(数字,'格式');
MySQL笔记2_数据

str_to_date:将字符串varchar类型转换成date类型
date_format:将date类型抓换成具有一定格式的varchar字符串类型

语法格式:str_to_date('字符串日期','日期格式');

mysql的日期格式:
%y 年
%m 月
%d 日
%h 时
%i 分
%s 秒

数据库的命名规范

所有的标识符都是全部小写,单词和单词之间使用下划线进行衔接

select ename,sal from emp;

select ename,format(sal,'$999,999') from emp;

drop table if exists t_user;

create table t_user(
		id int,
		name varchar(20),
		birth char(10)
);
desc t_user;

insert into t_user(id,name,birth) values (1,'张三','1992-10-1');

insert into t_user(id,name,birth) values (2,'李四','02-02-2020');

#如果提供的日期字符串是这个格式,str_to_date函数就不需要了 %y-%m-%d
insert into t_user(id,name,birth) values (3,'王五','2020-03-05');

#查询的时候可以将日期转为特定格式的字符串
select id,name,date_format(birth,'%m/%d/%Y') as birth from t_user;

/*
date_format函数怎么用?
	date_format(日期类型数哭,'日期格式')
	这个函数通常使用在查询日期方面,设置展示的日期格式
*/

select id,name,birth as birth from t_user;
#以上的SQL语句实际上是进行了默认的日期格式化,自动将数据库中的date类型转换成varchar类型,并且采用的格式是mysql默认的日期格式:'%Y-%m-%d'

date和datetime区别

create table t_user(
	id int,
	name varchar(11),
	birth date, #短日期
	create_time datetime #这条记录的创建时间:长日期类型
);

#mysql短日期默认格式:%y-%m-%d
#mysql长日期默认格式: %y-%m-%d %h:%m:%s

insert into t_user(id,name,birth,create_time) values (1,'Jack','1990-02-05','2021-9-21 11:02:00');

select * from t_user;

在mysql当中怎么获取系统当前时间?

#now函数,并且获取的时间带有:时分秒信息  是datetime类型的
insert into t_user(id,name,birth,create_time) values (2,'Marry','2001-04-05',now());
select * from t_user;

修改update(DML)

语法格式:
update 表名 set 字段名1 = 值1,字段名2= 值2字段名3= 值3...where 条件;

注意:没有条件限制会导致所有数据全部更新

drop table if exists t_user;

create table t_user(
	id int,
	name varchar(11),
	birth date, #短日期
	create_time datetime #这条记录的创建时间:长日期类型
);

#mysql短日期默认格式:%y-%m-%d
#mysql长日期默认格式: %y-%m-%d %h:%m:%s

insert into t_user(id,name,birth,create_time) values (1,'Jack','1990-02-05','2021-9-21 11:02:00');

select * from t_user;

#now函数
insert into t_user(id,name,birth,create_time) values (2,'Marry','2001-04-05',now());
select * from t_user;

update
	t_user
set
	name='Cedric',
	birth='2020-03-02',
	create_time = now()
where
	id = 2;

select * from t_user;

#更新所有
update t_user set name = 'abc';

删除数据 delete(DML)

语法格式:
delete from 表名 where 条件;
注意:没有条件,整张表的数据会全部删除!

delete from t_user where  id = 2;

insert into t_user(id) values(2);
delete from t_user; #删除所有

insert可以一次插入多条记录

drop table if exists t_user;

create table t_user(
	id int,
	name varchar(11),
	birth date, #短日期
	create_time datetime #这条记录的创建时间:长日期类型
);

#mysql短日期默认格式:%y-%m-%d
#mysql长日期默认格式: %y-%m-%d %h:%m:%s

insert into t_user(id,name,birth,create_time) values (1,'Jack','1990-02-05','2021-9-21 11:02:00');

select * from t_user;

#now函数
insert into t_user(id,name,birth,create_time) values (2,'Marry','2001-04-05',now());
select * from t_user;

update
	t_user
set
	name='Cedric',
	birth='2020-03-02',
	create_time = now()
where
	id = 2;

select * from t_user;

#更新所有
update t_user set name = 'abc';


delete from t_user where  id = 2;

insert into t_user(id) values(2);
delete from t_user; #删除所有

/*
语法:insert into t_user(字段名1,字段名2,字段名3) values (), (),()
*/
insert into t_user(id,name,birth,create_time) values (1,'张三','1990-10-01',now()),(2,'李四','1991-10-01',now()),(3,'王五','1992-10-01',now());

/*
快速创建表

原理:
	将一个查询结果当做一张表新建
	这个可以完成表的快速复制
	表创建出来,同时表中的数据也存在了
*/
create table emp2 as select * from emp;
#复制一部分
create table mytable as select ename,EMPNO from emp where job='MANAGER';

#将查询结果插入到一张表中

create table dept_bak select * from dept;

insert into dept_bak select * from dept;

select * from dept_bak;


#快速删除表中的数据

#删除dept_bak表中的数据
delete from dept_bak; #这种删除
select * from dept_bak;
/*
delete语句删除数据的原理:(DML)
	表中的数据被删除了,但是这个数据在硬盘上的真实存储空间不会被释放
	这种删除的缺点是:删除效率较低
	这种删除的优点是:支持回滚,后悔了可以再恢复数据

truncate语句删除数据的原理:
	这种删除效率比较高,表被一次截断,物理删除
	这种删除的缺点是:不支持回滚
	这种删除的优点:快速

用法:truncate table dept_bak;(DDL)
*/

insert into dept_bak select * from dept;

truncate table dept_bak;
select * from dept_bak;
rollback; #回滚