怎么实现MySQL语句分析
更新:HHH   时间:2023-1-7


怎么实现MySQL语句分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

查看数据库有三种方式:
第一种,直接进入数据库查看
mysql> show databases;

1.intformation_schema数据库保存了MySQL服务器所有的信息。如数据库名,数据库表,标蓝的数据类型,访问权限等。
2.performance_schemaMySQL5.5版本新增的新性能优化的引擎,主要用于收集数据库服务器的性能参数。MySQL用户不能创建存储引擎为performance_schema的表。
3.mysql是数据库,保存俩账号信息,权限信息等。
4.sysmysql5.7增加了sys系统数据库,可以快速了解系统的元数据,元数据是关于数据信息的数据。如数据库名或表名,列的数据类型,或访问权限等。

第二种,以行的方式显示:
mysql> show databases\G;

第三种,在shell中查看:
[root@localhost ~]# mysql -e 'show databases' -uroot -p123456

创建数据库:
语法: create database 数据库名;
创建数据库主义事项:mysql数据存储区以目录方式表示mysql数据库。因此数据库名,必须以系统约束的目录名字一致,不允许文件和目录名中有特殊符号,在mysql数据库名中字母会被自动删除。
[root@localhost ~]# ls /data/mysql/data/

遵从目录约束,数据库名不能超过64个字符,包含特殊字符或者全部由数字或保留字组成的名必须要用反引号`括起来(反引号括起来,在查看数据库时反引号不显示)。数据库不能重名。
有特殊符号的数据库名,用反引号括起来,可以创建。

有特殊符号的数据库名不用反引号括起来,不可以创建

在查看数据库时不显示反引号。

新创建的数据库会存放在数据库目录当中。(使用特殊符号的数据库在目录中根据当前系统默认算法显示)

查看数据库目录:
进入到要操作的数据库当中
mysql> use HA-test

查看当前所在数据库的位置
mysql> select database()

在命令行进入数据库:
[root@localhost ~]# mysql -uroot -p HA-test
查看登录的时间,登录的用户,登录到的数据库,
mysql> select now(),usr(),database();
删除数据库:
mysql> drop database HA-test;

查看数据库
msyql>show databases;

在生产环境下,在命令行使用 mv命令把数据库目录下的库移动到别的目录下,即从mysql数据库中删除了库又做了备份。
想要恢复HA数据库在从/tmp把HA库移动到数据库目录下

使用if exists字句避免删除不存在的数据出现错误信息(一般使用在shell脚本中,

如果不使用if exists就会报错):
mysql> drop database if exists HA-test;   #如果存在则删除

也可以在创建数据库时使用
mysql> create database if not exists HA;    #如果不存在则创建

关于表的操作:
创建表create:
语法:create table 表名 (字段名 类型)
mysql> use HA;
mysql> create table se(id int(20),name char(40),age int);

如果不进入数据库,创建表:
语法:create table 数据库名.表名 (字段名 类型)
msyql> create table HA.se(id int(20),name char(40),age int);

查看表相关信息:
mysql> use HA;
mysql> show tables;

查看表结构:
使用desc命令来查看表结构(desc 表名)。可以不进入数据库查看  则输入 desc 数据库名.表名。
mysql> use HA;                                                          
mysql> desc se;

不进入库查看表:mysql> desc HA.se;

还可以用以下命令查看表结构,会一种就可以。
mysql> explain mysql.user;
mysql> show columns from mysql.user;
mysql> show fields from mysql.user;
mysql> show columns from mysql.user like '%user';

查看创建表执行了哪些命令:
mysql> show create table se\G

指定默认存储引擎和字符集:
如果不指定存储引擎和字符集,默认使用安装mysql时的存储引擎和字符集。
mysql> create table student2(id int(20),name char(40),age int) ENGINE=InnoDB(或其他存储引擎) DEFAULT CHARSET=utf8(或其他字符集);

删除表:
mysql> drop table 表名。

禁止预读表信息:
没有禁止前装换数据库会有提示信息(禁不禁止都没不影响操作)

解决这个问题可以再登录mysql时添加参数-A
[root@localhost ~]# mysql -uroot -p -A

修改表名称alter:
语法:alter table 表名 rename 新表名;

修改表中的字段类型:
语法:alter table 表名 modify 修改字段名修改类型
查看students表结构
mysql> desc students;

mysql> alter table studens modify id int(10);

修改表中的字段类型和字段名称:
语法:alter table 表名 change 源字段名 新字段名 新字段类型;
mysql> alter table studens change name gname char(20);

注意:change和modify的区别:
change即可以列重命名又可以更改列类型。modify只能更改列类型,不可以给列重命名。

在表中添加字段:
语法:alter table 表名 add 字段 字段类型。
在表中添加字段但并不是说可以随意添加字段的值,例如enum是枚举类型,他只能输入管理员定义的值。

查看表结构

在sex行中输入其它,而不是m或w就会报错:


输入m或w就不会报错:

同时插入多条记录:mysql> insert into studens values(1,'lisi',24,'m'),(2,'zhangsan',25,'w');

查询表中记录select:
语法:select  (或查询的字段名) from 表名称;  #号表示查询表中所有记录
查询表中所有记录

当表中记录比较多时可以使用\G查看


只查询表中某个字段的内容
mysql> select gname from studens;

查看别的库的表或不在本数据库上查看表
语法:select 字段 from 数据库名.表名;  #等同于先进入use数据库,然后再看表内容

删除表中记录:
删除指定的行:语法 delete from 表名 where 要删除的条件
例如:删除studens表中的id为1的行
mysql> select id from studens;


mysql> delete from studens where id=1;
mysql> select id from studens;

删除为空的行:语法 delete from 表名 where 条件 is null;
例如:删除age为空的行

mysql> delete from studens where age is null;

更新记录:
语法:update 表名 set 条件 where 条件;
例如:把表中id为2的记录age更新为30
mysql> update studens set age='30' where id=2;

更新表中所有列的值都更新
例如:把表中所有gname都更新为zhangliu;
mysql> update studens set gname='zhangliu';

看完上述内容,你们掌握怎么实现MySQL语句分析的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注天达云行业资讯频道,感谢各位的阅读!

返回云计算教程...