Mysql常用基础操作命令及数据操作命令一览

举报
Java小叮当 发表于 2022/04/12 23:27:07 2022/04/12
【摘要】 一、MySQL关于表基础命令 1.1 表的创建 语法: create table if not exists 表名 ( 字段名 数据类型(null | not null,default | auto_...

一、MySQL关于表基础命令

1.1 表的创建

语法: create table if not exists 表名 ( 字段名 数据类型(null | not null,default | auto_increment,primary key,comment,varchar,), 字段名 数据类型 … ) engine=存储引擎 charset=字符编码

数据类型 含义
null,not null 是否为空
default 默认值
auto_increment 自动增长,默认1开始,每次递增1
primary key 主键
comment 备注
varchar 字符串
engine 引擎,有myisam、innodb

如果表名和字段名用了关键字,特殊符号,要用反引号括起来。 例:




小结:

  • 如果不指定引擎,默认是myisam
  • 如果不知道字符编码,默认和数据库的编码一致

1.2 表的文件

一个数据库对应一个文件夹,一个表对应两个个或多个文件,主要取决与引擎,引擎是innodb,生成一个文件。引擎是myisam生成3个文件:


innodb和myisam的区别:

  • myisam查询速度快,容易产生碎片,不能约束数据
  • innodb以前没有myisam查询速度快,现在已经提速了,不产生碎片

1.3 显示创建表的语句

语法: show create table stu2;


还可以 show create table stu2\G 查询:

1.4 查看表结构

语法: describle 表名;


可以简写为: desc 表名;

1.5 删除表

语法: drop table if exists 表1,表2,…;

1.6 复制表

语法一: create table 新表 select 字段 | * from 旧表; 特点:不能复制父表的键,能够复制父表的数据。不写字段,写*号代表复制所有字段。



但是注意主键没有复制。

语法二: create table 新表 like 旧表; 特点: 只能复制表结构,不能复制表数据。

1.7 修改表

语法: alter table 表名;



我们以stu1为例,进行修改:

  • 添加字段,语法:alter table 表名 add [column] 字段名 数据类型 [位置];






就两个位置关键字,after ,first。

  • 删除字段:alter table 表 drop [column] 字段名;

  • 修改字段(改名): alter table 表 change [column] 原字段名 新字段名 数据类型…;
  • 修改字段(不改字段名只能改属性),语法: alter table 表 modify 字段名 字段属性…
  • 修改引擎,语法:alter table 表名 engine=引擎名;


现在stu5的引擎为myisam,现在给他修改为innodb。


  • 修改表名,语法: alter table 表名 rename to 新表名;


    [外链图片转存失败,源站可能有防盗](https:
    ![]!链机制,建议将(https://imgblog.csnimg.cn/img_conHert/aed2203523Bp661292e1dbd0c4f7a1ca.png1)(https://img-blog.csdnimg.cn/img_convert/d128620903d6716d62817819dbd61c58.png)
    ]

二、MySQL关于数据操作命令

2.1 插入数据

语法: insert into 表名(字段名,字段名,…) values(值1,值2,…);


字段名可以省略,代表全有字段有需要插入,不过在values值那里,必须要与字段关系一一对应:


当字段为空值时,写null,为默认值时写default:


插入多个数据:

2.2 查询数据

语法:select 列命 | * from 表名;

2.3 更新数据

语法: update 表名 set 字段=值 [where 条件]


更新多个:

2.4 删除数据

语法:delete from 表名 [where 条件];

删除表中所有数据:delete from 表名 ; 或者 truncate table 表名;

两者区别:delete from 表:遍历表记录,一条一条的删除,truncate table:将原表销毁,在创建一个同结构的新表,就情空表而言,这种方法效率高。

我们再插入几条数据:

2.5 数据传输使用字符集

在插入数据的时候,如果插入中文,如果报错了,或者中文无法插入。 查看客户端发送的编码:


当前默认是gbk。

查看服务器接收返回的编码: show variables like ‘character_set_%’;



更改接收客户端指令编码: set character_set_client=编码格式; :


接着我们去存入中文:

会发现已经乱码了,因为客户端发送的编码和服务端接收的编码不一致。如果将来有发现这个问题的话,就要注意编码要一致。

可以使用命令 set names gbk; 将服务端,所有编码全部都以gbk的编码形式。



最后mysql资料获取方式:下方二维码,备注:csdn

文章来源: blog.csdn.net,作者:Java小叮当,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/m0_48795607/article/details/124099112

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。