Mysql Navicate 基础操作与SQL语句 版本5.7.29
SQL数据的增删改查:此部分所有SQL语句在navicat中与mysql命令行执行效果一样,只是mysql服务端在命令行执行,而navicat只是在客户端的图形化打开操作。
一、进入数据库
.连接数据库:mysql -uroot -p
.查看数据库:show databases;
.进入指定数据库:use test;
.查看表:show tables;
.查看当前用户名:select user();

.查看当前所在数据库:select database();

.修改字符集:set names 'gbk';
.查看设计表:desc students;
.修改普通用户密码:update user set authentication_string=password('123456') where user='wzx';
flush privileges;

.忘记root用户密码:进入mysql的配置文件,找到my.ini的配置文件:

再[mysqld]下加入:skip-grant-tables后再重新启动mysql服务:

再进行连接测试:

.登录后记得删除配置文件并重新设置root密码:update user set authentication_string=password('123456') where user='wzx';
flush privileges;
.修改命令结束符:delimiter //?;

.查看设计表语句:show create table students;

.给表字段添加索引:create index name_index on students(name(255));
.开启运行时间监控:set profiling=1;
.查看监控结果:show profiles;

.查看表索引:show index from students;

注:主键、unique唯一值约束时默认会创建索引。一个表中的一个字段理论上可以有多个索引。
.删除表索引:drop index name_index on students;

.创建表数据时直接设置索引:
create table students(
id int primary key auto_increment ,
name varchar(10) not Null,
sex varchar(4) default "男",
age tinyint unsigned,
height decimal(5,2),
registration_time datetime
key (name)
);
二、创建数据库以及数据恢复与备份
.创建数据库:create database test0412 charset='utf8';
.删除数据库:drop database test0412;
windows下备份与恢复数据库:
.备份数据库:需要以管理员身份运行sql:mysqldump -uroot -p test > e:\test_back.sql;

.恢复数据:需要先创建数据库再导入数据库:
1:创建数据库:testback:create database testback charset='utf8';
2:导入数据库:mysql -uroot -p testback < e:\test_back.sql
linux下备份与恢复数据库:
备份数据库:mysqldump -h127.0.0.1 -uroot -proot test>/home/testback .sql
恢复数据库:mysql -h127.0.0.1 -uroot -proot -f test<testback .sql --default-character-set=gbk
三、创建表
1.1:直接创建新表
create table students(
id int primary key auto_increment ,
name varchar(10) not Null,
sex varchar(4) default "男",
age tinyint unsigned,
height decimal(5,2),
registration_time datetime
);
1.2:将需要备份数据表到新表
create table good_back select * from goods;
1.3:查询表数据后添加到新表
create table good_cate(
id int primary key auto_increment ,
goods_name varchar(30)
) select distinct good as goods_name from goods;
1.4:添加外键关系到已有数据表:
#### alter table 从表 add foreign key (从表字段) references 主表(主表字段);
alter table goods add foreign key (brand_id) references goods_brand(brand_id);
1.5:删除外键:
#### alter table 从表 drop foreign key (从表字段);
alter table goods drop foreign key (brand_id);
1.6:数据表时添加外键:
create table goods(
id int primary key auto_increment ,
goods_id int,
foreign key(goods_id) references goods_brand(goods_id)
) ;
四、增加值
2.1:按照数据库中字段顺序插入
INSERT into students value(0,"aa","女",21,3,"2019-02-12");
2.2:按照自己指定指定字段顺序插入
INSERT into students(sex,name,height,registration_time,age) value("保密","wqww",123,"2017-02-2",21);
2.3:在设计表中添加字段并给予说明
alter table students add new varchar(20) COMMENT '用户名';
2.4:一次性插入多个记录
insert into students values (0,'老夫3',20),(0,'老夫4',20),(0,'老夫5',20);
2.5:将查询结果插入:
insert into goos_cate(cate_name) select distinct cate from goods;
五、修改记录
3.1:静态数据修改
update students set name="明天会更高" where id=1;
3.2:动态数据修改
update students set age=age+20 where id=2;
3.3:表数据修改
update goods g inner join goods_cate c on g.cate=c.cate_name set g.cate=c.cate_id;
六、删除记录
delete from students where id=2;
七、删除表
drop table students1;
drop table if exists sutdents1;
八、查询
6.1:给字段起别名:select name as 姓名,age as 年龄 from students;
6.2:给表起别名:select s.name as 姓名,s.age as 年龄 from students as s;
6.3:去重:select distinct age,class from students;
6.4:逻辑运算:select * from students where not name='王昭君';
6.5:模糊查询所有字符:select * from students where name like '王%';
6.6:模糊查询指定字符个数:select * from students where name like '王__';
6.7:范围查询:select * from students where age between 18 and 20;
6.8:为空:select * from students where sex is null;

6.9:为空字符:select * from students where sex=' ';
6.10:多字段排序:select * from students order by age desc,studentNo asc;
6.11:聚合函数:select count(*) as 学生总数 from students;
6.12:分组:select sex,count(*) from students group by sex;
6.13:分组后过滤having:select sex,count(*) from students group by sex having sex='男';
十、连接查询
1、等值连接,默认会形成笛卡尔积,需要条件过滤
select * from courses,scores where courses.courseno=scores.courseno;
2、内连接
select sc.score,cs.name from scores sc inner join courses cs on sc.courseno=cs.courseno
3、左连接
select stu.name,sc.score from students stu left join scores sc on stu.studentno=sc.studentno;
4、右链接
select sc.score,cs.name from scores sc right join courses cs on sc.studentno=cs.courseno
5、自关联
select * from areas p,areas c where p.aid=c.pid and p.atitle='河南省';
十一、子查询
6、标量子查询(一行一列的数据,一般是聚合函数)
select * from students where age > (select avg(age) from students);
7、列级子查询(一列多行的数据)
select * from students where name in (select name from students where hometown like '北京%');
8、行级子查询(一行多列的数据)
select * from students where (sex,age)=(select sex,age from students where sex='男' order by age desc limit 1);
9、表级子查询(多行多列)
十二、navicat操作
.表清空:删除所有数据,不删表结构,自动递增的值继续累加
.表截断:删除所有数据,不删表结构,自动递增的值从1开始
.备份:右键点击数据库-->存储sql文件
.恢复:右键点击数据库-->运行sql文件
.注释 ctrl + /
.取消注释 ctrl + shift + /
。查询mysql日志功能是否开启:show variables like'general%';

。开启mysql日志功能:set global general_log=1;
.关闭mysql日志功能:set global general_log=0;
Mysql Navicate 基础操作与SQL语句 版本5.7.29的更多相关文章
- oracle 基础SQL语句 版本5.7.29
一.表与用户介绍 oracle安装完成后默认会有很多用户,大致分为2类用户:一类是必需的帐户,一类是存储各种应用的帐户,默认密码如下: oracle自带的也会有很多默认表存在: 二.创建用户.创建表空 ...
- 优化、分析Mysql表读写、索引等操作的sql语句效率优化问题
为什么要优化: 随着实际项目的启动,数据库经过一段时间的运行,最初的数据库设置,会与实际数据库运行性能会有一些差异,这时我们 就需要做一个优化调整. 数据库优化这个课题较大,可分为四大类: >主 ...
- MySQL的EXPLAIN命令用于SQL语句的查询执行计划
MySQL的EXPLAIN命令用于SQL语句的查询执行计划(QEP).这条命令的输出结果能够让我们了解MySQL 优化器是如何执行SQL 语句的.这条命令并没有提供任何调整建议,但它能够提供重要的信息 ...
- [php入门] 3、WAMP中的集成MySQL相关基础操作
前言:本文以小白视角了解WAMP集成开发环境中的MYSQL,涉及的面广而浅,算是导读性质. 1.启动运行熟悉WAMP中的MySQL 先有库.再有表.数据最终以记录的形式插入表中.其中对数据进行操作使用 ...
- 如何查找MySQL中查询慢的SQL语句
如何查找MySQL中查询慢的SQL语句 更多 如何在mysql查找效率慢的SQL语句呢?这可能是困然很多人的一个问题,MySQL通过慢查询日志定位那些执行效率较低的SQL 语句,用--log-slow ...
- 如何查找MySQL中查询慢的SQL语句(转载)
转载自https://www.cnblogs.com/qmfsun/p/4844472.html 如何在mysql查找效率慢的SQL语句呢?这可能是困然很多人的一个问题,MySQL通过慢查询日志定位那 ...
- 何在mysql查找效率慢的SQL语句?
如何在mysql查找效率慢的SQL语句呢?这可能是困然很多人的一个问题,MySQL通过慢查询日志定位那些执行效率较低的SQL 语句,用--log-slow-queries[=file_name]选项启 ...
- Mysql性能优化一:SQL语句性能优化
这里总结了52条对sql的查询优化,下面详细来看看,希望能帮助到你 1, 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2,应尽量避免在 w ...
- [MySQL数据库之数据库相关概念、MySQL下载安装、MySQL软件基本管理、SQL语句]
[MySQL数据库之数据库相关概念.MySQL下载安装.MySQL软件基本管理.SQL语句] 数据库相关概念 数据库管理软件的由来 数据库管理软件:本质就是个C/S架构的套接字程序. 我们在编写任何程 ...
随机推荐
- .net core api 对于FromBody的参数验证
前言 在framework的mvc中,经常会使用 Model.State . ModelState.IsValid 配合着特性进行参数验证,通过这种方式可以降低controller的复杂度,使用方便. ...
- Servlet、ServletContext与ServletConfig的详解及区别
Servlet.ServletContext与ServletConfig的详解及区别 一.Servlet详解 Servlet是一个interface,全局限定名:javax.servlet.Servl ...
- 关于servlet中doGet和doPost乱码再一次理解
今天系统的整理了在web项目下,出现的编码问题,下面就做一些总结: 首先对HTTP协议中对GET和POST的定义: GET POST 后退按钮/刷新 无害 数据会被重新提交(浏览器应该告知用户数据 ...
- Docker安装MySQL集群【读写分离】
Centos7系统Docker安装 目录 Centos7系统Docker安装 目录 Centos7系统Docker安装 1.下载mysql镜像 2.创建Master实例并启动 参数说明 3.创建Sla ...
- Python面向对象编程及内置方法
在程序开发中,要设计一个类,通常需要满足以下三个要求: [1]类名 这类事物的名字,满足大驼峰命名法 [2]属性 这类事物具有什么样的特征 [3]方法 这类事物具有什么样的行为 定义简单的类: 定义只 ...
- CodeReview杂谈
豆皮粉儿们,大家好,又见面啦,今天由字节跳动的"躬冯"带来一个 code review 的故事. 作者:躬冯 2020年元旦假期到来的时候,孙总攒了个局,又把当年一起创造过屎山的咱 ...
- RabbitMQ从零到集群高可用(.NetCore5.0) -高可用集群构建落地
系列文章: RabbitMQ从零到集群高可用(.NetCore5.0) - RabbitMQ简介和六种工作模式详解 RabbitMQ从零到集群高可用(.NetCore5.0) - 死信队列,延时队列 ...
- Spring系列.Environment接口
Environment 接口介绍 在 Spring 中,Environment 接口主要管理应用程序两个方面的内容:profile 和 properties. profile 可以简单的等同于环境,比 ...
- Spring Cloud Zuul 学习+实践
首先有必要了解一下什么是Zuul,它和Spring Cloud有什么关系. Zuul在Spring Cloud中承担着网关的职责,可以理解为客户端和服务端交互中的唯一通道.所有的客户端请求都会首先发送 ...
- 网络协议之TCP和UDP
TCP/IP协议: 传输控制协议/因特网互联协议( Transmission Control Protocol/Internet Protocol),是Internet最基本.最广泛的协议.它定义了计 ...