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的更多相关文章

  1. oracle 基础SQL语句 版本5.7.29

    一.表与用户介绍 oracle安装完成后默认会有很多用户,大致分为2类用户:一类是必需的帐户,一类是存储各种应用的帐户,默认密码如下: oracle自带的也会有很多默认表存在: 二.创建用户.创建表空 ...

  2. 优化、分析Mysql表读写、索引等操作的sql语句效率优化问题

    为什么要优化: 随着实际项目的启动,数据库经过一段时间的运行,最初的数据库设置,会与实际数据库运行性能会有一些差异,这时我们 就需要做一个优化调整. 数据库优化这个课题较大,可分为四大类: >主 ...

  3. MySQL的EXPLAIN命令用于SQL语句的查询执行计划

    MySQL的EXPLAIN命令用于SQL语句的查询执行计划(QEP).这条命令的输出结果能够让我们了解MySQL 优化器是如何执行SQL 语句的.这条命令并没有提供任何调整建议,但它能够提供重要的信息 ...

  4. [php入门] 3、WAMP中的集成MySQL相关基础操作

    前言:本文以小白视角了解WAMP集成开发环境中的MYSQL,涉及的面广而浅,算是导读性质. 1.启动运行熟悉WAMP中的MySQL 先有库.再有表.数据最终以记录的形式插入表中.其中对数据进行操作使用 ...

  5. 如何查找MySQL中查询慢的SQL语句

    如何查找MySQL中查询慢的SQL语句 更多 如何在mysql查找效率慢的SQL语句呢?这可能是困然很多人的一个问题,MySQL通过慢查询日志定位那些执行效率较低的SQL 语句,用--log-slow ...

  6. 如何查找MySQL中查询慢的SQL语句(转载)

    转载自https://www.cnblogs.com/qmfsun/p/4844472.html 如何在mysql查找效率慢的SQL语句呢?这可能是困然很多人的一个问题,MySQL通过慢查询日志定位那 ...

  7. 何在mysql查找效率慢的SQL语句?

    如何在mysql查找效率慢的SQL语句呢?这可能是困然很多人的一个问题,MySQL通过慢查询日志定位那些执行效率较低的SQL 语句,用--log-slow-queries[=file_name]选项启 ...

  8. Mysql性能优化一:SQL语句性能优化

    这里总结了52条对sql的查询优化,下面详细来看看,希望能帮助到你 1, 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2,应尽量避免在 w ...

  9. [MySQL数据库之数据库相关概念、MySQL下载安装、MySQL软件基本管理、SQL语句]

    [MySQL数据库之数据库相关概念.MySQL下载安装.MySQL软件基本管理.SQL语句] 数据库相关概念 数据库管理软件的由来 数据库管理软件:本质就是个C/S架构的套接字程序. 我们在编写任何程 ...

随机推荐

  1. DLL劫持漏洞

    写文章的契机还是看沙雕群友挖了十多个DLL劫持的漏洞交CNVD上去了... 就想起来搜集整理一下这部分 0x01 前言 DLL(Dynamic Link Library)文件为动态链接库文件,又称&q ...

  2. 安全工具推荐之w13scan篇

    先上链接:https://github.com/w-digital-scanner/w13scan 这是一款漏洞发现工具,支持三大主流平台:windows.Linux.Mac 又一款完全免费开源的工具 ...

  3. 008 PHY(Physical Layer,PHY)

    一.PHY PHY((Physical Layer,PHY))是IEEE802.3中定义的一个标准模块,STA(station management entity,管理实体,一般为MAC或CPU)通过 ...

  4. 阿里云视频点播获取视频点播的video信息

    背景 因为在项目中需要使用阿里云的视频点播服务,需要获取视频点播的时长信息. 工具类 生成签名串Signature SignatureUtils.java package com.meeno.wzq. ...

  5. OAuth2 与OpenID的区别

    OAuth2 OpenId OpenId是在OAuth2基础之上实现的 比OAuth2更简便 OAuth2需要在认证后 额外的去再调用用户信息的接口 才能获取用户信息 而OpenId直接伴随token ...

  6. C# 串口开发

    在单片机项目开发中,上位机也是一个很重要的部分,主要用于数据显示(波形.温度等).用户控制(LED,继电器等),下位机(单片机)与 上位机之间要进行数据通信的两种方式都是基于串口的: USB转串口 - ...

  7. 存储系统管理(三)——磁盘配额及lvm逻辑卷管理

    Linux是一个多用户的操作系统,系统有很多用户,就必须限制每个用户的保存空间,配额就是来管理用户空间的,配额只是针对与设备而言. 1.新建一个分区 2.格式化分区为xfs文件系统 3.将其以配额的方 ...

  8. GUI容器之Frame

    Frame public class MyFrame { public static void main(String[] args) { //创建一个Frame对象 Frame frame = ne ...

  9. openresty lua_ssl_trusted_certificate 问题

    lua_ssl_trusted_certificate 语法: lua_ssl_trusted_certificate 默认: no 环境: http, server, location 指定一个 P ...

  10. Java动态代理底层实现

    Java实现源码 上一节我们提到了Java动态代理的使用,接下来我们看一下他的具体实现. HelloInterface proxyHello = (HelloInterface) Proxy.newP ...