【若泽大数据实战第七天】MySQL在DBeaver上的使用

一、创建一张表:

 create table 数据库名.表名(字段 类型,……)
    例如:
         create table ruozedata(
          id int, 
          name varchar(100),
          age int,
          createtime timestamp, 
          createuser varchar(100),
          updatetime varchar(100), 
          updateuser varchar(100)
          );
注意:在创建表的时候,必须有createtime和updatetime  

在DBeaver表示如下:


点击表 ruozedata 我们能查看相关信息:


二、删除一张表:

 drop table ruozedata;

执行删除操作:


点左边的表刷新后,发现表ruozedata已经删除:

三、插入一条数据:

 insert into ruozedata(id,name,age) values(1,'jepson',16);

点击ruozedata右边的数据,就会显示我们刚刚插入的一条数据:

四、更新一条数据:

update ruozedata set age=22 where name='jepson';


右边有个刷新,点击刷新后,年龄从16岁就更新到22岁:

五、删除一条数据:

delete from ruozedata where name='jepson'


删除数据执行后,刷新完,发现数据确实删除了:


插入三条语句测试:

当插入三条语句的时候,我们要点击右边的,执行脚本,这样三条语句就都执行了。


查看结果:


六、查询数据:

select * from ruozedata;


七、插入的内容没有指定列,就需要补全所需的列:

insert into  ruozedata 
values(4,'ZX1',119,'2017-10-10 00:00:00','xxx','2017-12-10 00:00:00','xxx1');


查看结果:


八、update insert等操作后面的where条件要加好,如果不加好会导致更新整个列:

原表信息:


更新不加where条件信息提示:


生产中禁止不加where条件的操作!!!


八、MySQL默认不区分大小写测试:

select * from ruozedata where name ='ly';  


九、创建一张表让 id自增长测试:

create table ruozedata(
id int
AUTO_INCREMENT primary key, (再这里设为主键加了自增长)
name varchar(100),
age int,
createtime timestamp,
creuser varchar(100),
updatetime timestamp,
updateuser varchar(100)


然后往表里面插入一些数据,不带id这列:

insert into  ruozedata(name,age) values('jepson',16);
insert into  ruozedata(name,age) values('LY',18);
insert into  ruozedata(name,age) values('ZX',19);
insert into  ruozedata(name,age) values('ZX1',119);


查看结果,自动增长ID这一列:


十、在生产环境创建一张表需要注意哪些事项:

create table ruozedata(
id int
AUTO_INCREMENT primary key,(再这里设为主键加了自增长)
(这里会写一下根据建表的需求写一些其他的列的值和内容)
name varchar(100),
age int,

createtime timestamp
DEFAULT CURRENT_TIMESTAMP, (创建时间用的是默认的当前时间)
creuser varchar(100),
updatetime timestamp  
DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,(更新的时间要从创建的时间加更新当前时间)
updateuser varchar(100)
)


插入一条信息测试:

本条数据不带ID列:

insert into  ruozedata(name,age) values('jepson',16);


注意创建表和更新表的时间都有了,都是一样的,因为我们这张测试表没有做过更新的操作,

所以createtimieupdatetime的时间是一样的:


做一次更新操作,让更新的时间不同于创建的时间:

update ruozedata set age=22 where name='jepson';


查看更新后的表,updatetime时间更新了:


通过DDL查看创建表的信息:

最后一行我标记了1、2、3

1:MySQL引擎从5.7以后都使用的是innoDB,默认的也是使用innoDB引擎

2:关于自增长,如果是delete table停留在之前的,并不会初始化为0

新的数据导入进来,自增长会有问题,不是从1开始,要考虑当场的业务场景,

如果是 drop 表的话,从新创建,表的自增长是从1开始的。

create table ruozedata(
id int AUTO_INCREMENT primary key,
name varchar(100),
age int,
createtime timestamp DEFAULT CURRENT_TIMESTAMP,
creuser varchar(100),
updatetime timestamp  DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
updateuser varchar(100)

) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=Latin1;

1 2 3


3:字符集:

当前我们可以看数据库字符集,拉丁字符集

Server拉丁字符集


查看创建数据库时的字符集,创建的时候默认没有选字符集:


字符集不是utf8测试:

insert into  ruozedata(name,age) values('若泽',16);

测试下来发现不是utf8不支持中文


我们删除表从新创建表的最后改成字符集utf8:

create table ruozedata(
id int AUTO_INCREMENT primary key,
name varchar(100),
age int,
createtime timestamp DEFAULT CURRENT_TIMESTAMP,
creuser varchar(100),
updatetime timestamp  DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
updateuser varchar(100)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT
CHARSET=utf8;


查看创建后的字符集:


插入一条中文试试看结果如何:

insert into  ruozedata(name,age) values('若泽',16);


显示中文成功:


查看MySQL表ruozedata字符集:


十一、创建复制一张表:

create table test select id,name from ruozedata;


查看结果:


十二、复制一张表的表结构:

create table test1 select id,name from ruozedata where 1<>1;


复制表结构信息:


查看是否和创建的时候一样只复制了ID和name:


十三、查看ruozedata的表结构:

show colums in ruozedata;

十四、修改表的名字:

rename table test to apple;

查看修改后结果:


十五、更改表结构:

alter table ruozedata add address varchar(512);


更改表结构后发现加入了address字段:


十六、删除某一列

alter table ruozedata drop address ;


查看删除结果:


十七、指定某一列,插入到指定列的后面:

alter table ruozedata add address varchar(512) after age;


查看结果:

address再age之后

大数据课程推荐:


猜你喜欢

转载自blog.csdn.net/qq_24073707/article/details/80329395
今日推荐