MySQL工具名字_MySQL客户端工具及SQL讲解

1、用于数据库的连接管理

#MySQL接口自带的命令

\h 或 help 或? 查看帮助

\G 格式化查看数据(key:value)

\T 或 tee 记录日志

\c(5.7可以ctrl+c) 结束命令

\s 或 status 查看状态信息

\. 或 source 导入SQL数据 \

u或 use 使用数据库

\q 或 exit 或 quit 退出

help命令的使用

mysql> help

mysql> help contents

mysql> help select

mysql> help create

mysql> help create user

mysql> help status

mysql> help show

source命令的使用

#在MySQL中处理输入文件:

#如果这些文件包含SQL语句则称为:

#1.脚本文件 #2.批处理文件

mysql> SOURCE /data/mysql/world.sql

#或者使用非交互式

mysql

mysqladmin命令的使用

01)“强制回应 (Ping)”服务器。

02)关闭服务器。

03)创建和删除数据库。

04)显示服务器和版本信息。

05)显示或重置服务器状态变量。

06)设置口令。

07)重新刷新授权表。

08)刷新日志文件和高速缓存。

09)启动和停止复制。

10)显示客户机信息。

#查看MySQL存活状态

[root@db01 ~]# mysqladmin -uroot -p123 ping

#查看MySQL状态信息

[root@db01 ~]# mysqladmin -uroot -p123 status

#关闭MySQL进程

[root@db01 ~]# mysqladmin -uroot -p123 shutdown

#查看MySQL参数

[root@db01 ~]# mysqladmin -uroot -p123 variables

#删除数据库 [

root@db01 ~]# mysqladmin -uroot -p123 drop DATABASE

#创建数据库

[root@db01 ~]# mysqladmin -uroot -p123 create DATABASE

#重载授权表

[root@db01 ~]# mysqladmin -uroot -p123 reload

#刷新日志

[root@db01 ~]# mysqladmin -uroot -p123 flush-log

#刷新缓存主机

[root@db01 ~]# mysqladmin -uroot -p123 reload

#修改口令

[root@db01 ~]# mysqladmin -uroot -p123 password

2.接受用户的SQL 语句

1.什么是SQL

结构化的查询语句

2.SQL的种类

DDL:数据定义语言

库对象:库名字、库属性

开发规范:库名小写

#创建oldboy数据库

mysql> create database oldboy;

#创建OLDBOY数据库

mysql> create database OLDBOY;

#查看数据库 mysql> show databases;

#查看oldboy的创建语句(DQL)

mysql> show create database oldboy;

#查看创建数据库语句帮助

mysql> help create database

#创建oldboy数据库添加属性

mysql> create database testa charset utf8;

#删除oldboy数据库

mysql> drop database oldboy;

#修改oldboy数据库属性

mysql> alter database oldboy charset gbk;

#查看oldboy的创建语句(DQL)

mysql> show create database oldboy;

表对象:列名、列属性、约束

创建表:create table (开发做)

#查看创建表语句帮助

mysql> help create table

#创建表

mysql> create table student(sid INT, sname VARCHAR(20), sage TINYINT, sgender ENUM('m','f'), cometime DATETIME);

数据类型

int: 整数 -231 ~ 231 -1

varchar:字符类型 (变长)

char: 字符类型 (定长)

tinyint: 整数 -128 ~ 128

enum: 枚举类型

datetime: 时间类型 年月日时分秒

#创建表加其他属性

mysql> create table student( sid INT NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT ‘学号’, sname VARCHAR(20) NOT NULL COMMENT ‘学生姓名’, sage TINYINT UNSIGNED COMMENT ‘学生年龄’, sgender ENUM('m','f') NOT NULL DEFAULT ‘m’ COMMENT ‘学生性别’, cometime DATETIME NOT NULL COMMENT ‘入学时间’)chatset utf8 engine innodb;

#查看建表语句

mysql> show create table student;

#查看表

mysql> show tables;

#查看表中列的定义信息

mysql> desc student;

数据属性

not null: 非空

primary key: 主键(唯一且非空的)

auto_increment: 自增(此列必须是:primary key或者unique key)

unique key: 单独的唯一的

default: 默认值

unsigned: 非负数

comment: 注释

#删除表 mysql> drop table student;

修改表定义:alter table (开发做)

#修改表名

mysql> alter table student rename stu;

#添加列和列定义

mysql> alter table stu add age int;

#添加多个列

mysql> alter table stu add test varchar(20),add qq int;

#指定位置进行添加列(表首)

mysql> alter table stu add classid varchar(20) first;

#指定位置进行添加列(指定列)

mysql> alter table stu add phone int after age;

#删除指定的列及定义

mysql> alter table stu drop qq;

#修改列及定义(列属性)

mysql> alter table stu modify sid varchar(20);

#修改列及定义(列名及属性)

mysql> alter table stu change phone telphone char(20);

DCL:数据控制语言

针对权限进行控制

#授权root@10.0.0.51用户所有权限

mysql> grant all on *.* to root@'10.0.0.51' identified by 'oldboy123';

#怎么去授权一个炒鸡管理员呢?

mysql> grant all on *.* to root@'10.0.0.51' identified by 'oldboy123' with grant option;

#其他参数(扩展)

max_queries_per_hour:一个用户每小时可发出的查询数量

max_updates_per_hour:一个用户每小时可发出的更新数量

max_connetions_per_hour:一个用户每小时可连接到服务器的次数

max_user_connetions:允许同时连接数量

#收回select权限

mysql> revoke select on *.* from root@'10.0.0.51';

#查看权限

mysql> show grants for root@'10.0.0.51';

DML:数据操作语言

操作表的数据行信息

#基础用法,插入数据

mysql> insert into stuvalues('linux01',1,NOW(),'zhangsan',20,'m',NOW(),110,123456);

#规范用法,插入数据

mysql> insert into stu(classid,birth.sname,sage,sgender,comtime,telnum,qq) values('linux01',1,NOW(),'zhangsan',20,'m',NOW(),110,123456);

#插入多条数据

mysql> insert into stu(classid,birth.sname,sage,sgender,comtime,telnum,qq) values('linux01',1,NOW(),'zhangsan',20,'m',NOW(),110,123456), ('linux02',2,NOW(),'zhangsi',21,'f',NOW(),111,1234567);

update

#不规范

mysql> update student set sgender='f';

#规范update修改

mysql> update student set sgender='f' where sid=1;

#如果非要全表修改

mysql> update student set sgender='f' where 1=1;

delete

#不规范

mysql> delete from student;

#规范删除(危险)

mysql> delete from student where sid=3;

#DDL删除表

mysql> truncate table student;

1、使用伪删除

使用update代替delete

1)额外添加一个状态列

mysql> alter table student add status enum(1,0) default 1;

2)使用update

mysql> update student set status='0' where sid=1;

3)应用查询存在的数据

mysql> select * from student where status=1;

DQL:数据查询语言

select:基础用法

#常用用法

mysql> select countrycode,district from city;

#查询单列

mysql> select countrycode from city;

#行级查询

mysql> select countrycode,district from city limit 2;

mysql> select id,countrycode,district from city limit 2,2;

#条件查询

mysql> select name,population from city where countrycode='CHN';

#多条件查询

mysql> select name,population from city where countrycode='CHN' and district='heilongjiang';

#模糊查询

mysql> select name,population,countrycode from city where countrycode like '%H%' limit 10;

#排序查询(顺序)

mysql> select id,name,population,countrycode from city order by countrycode limit 10;

#排序查询(倒叙)

mysql> select id,name,population,countrycode from city order by countrycode desc limit 10;

#范围查询(>,=,<=,<>)

mysql> select * from city where population>=1410000;

#范围查询OR语句

mysql> select * from city where countrycode='CHN' or countrycode='USA'; #范围查询IN语句 mysql> select * from city where countrycode in ('CHN','USA');

字符集:是一个系统支持的所有抽象字符的集合。字符是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。

2.MySQL数据库的字符集

1)字符集(CHARACTER)

2)校对规则(COLLATION)

3.MySQL中常见的字符集

1)UTF8

2)LATIN1

3)GBK

4.常见校对规则

1)ci:大小写不敏感

2)cs或b

5.我们可以使用以下命令查看

mysql> show charset;

mysql> show collation;

***字符集设置

1.操作系统级别

[root@db01 ~]# source /etc/sysconfig/i18n

[root@db01 ~]# echo $LANG

zh_CN.UTF-8

2.操作系统客户端级别(SSH)

3.MySQL实例级别

方法1:在编译安装时候就指定如下服务器端字符集。

cmake .

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DWITH_EXTRA_CHARSETS=all \

方法2:在配置文件中设置字符集

[mysqld] character-set-server=utf8

4.建库级别

mysql> create database oldboy charset utf8 default collate = utf8_general_ci;

5.表级别

mysql> CREATE TABLE `test` (

`id` int(4) NOT NULL AUTO_INCREMENT, `name` char(20) NOT NULL,

PRIMARY KEY (`id`) )

ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8;

生产环境更改数据库(含数据)字符集的方法

mysql> alter database oldboy CHARACTER SET utf8 collate utf8_general_ci;

mysql> alter table t1 CHARACTER SET utf8;

范式: 减少数据冗余,防止产生一致性问题,把一个表作为一个原子,把一张表拆到不能再拆为止。(开发阶段设计规范)

例:根据两张表的内容查出张三的成绩

select t1.sname,t2.mark from t1,t2 where t1.sid=t2.sid and t1.sname=’zhang3’;

1.1传统连接(只能内连接,只能取交集)

#世界上小于100人的人口城市是哪个国家的

select city.name,city.countrycode,country.name

from city,country

where city.countrycode=country.code

and city.population<100;

1.2 NATURAL JOIN(自连接的表要有共同的列名字)

SELECT city.name,city.countrycode ,countrylanguage.language ,city.population

FROM city NATURAL JOIN countrylanguage

WHERE population > 1000000

ORDER BY population;

1.3企业中多表连接查询(内连接)

select city.name,city.countrycode,country.name

from city join countryon city.countrycode=country.code

where city.population<100;

建议:使用join语句时,小表在前,大表在后。

1.4外连接

select city.name,city.countrycode,country.name

from city left join country

on city.countrycode=country.code

and city.population<100;

1.5 UNION(合并查询)

#范围查询OR语句

mysql> select * from city where countrycode='CHN' or countrycode='USA';

#范围查询IN语句

mysql> select * from city where countrycode in ('CHN','USA');

替换为:

mysql> select * from city where countrycode='CHN'

union all

select * from city where countrycode='USA' limit 10

union:去重复合并

union all :不去重复

使用情况:union

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/520337.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot2.x整合quartz定时任务 快速入门

文章目录1. maven依赖2. QuartConfig配置文件3. 创建一个业务处理类UserService4. Job类 调用方法5. 手动将对象注入导视牌SringIOC容器类6. 启动类加注解1. maven依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-bo…

八年技术加持,性能提升10倍,阿里云HBase 2.0首发商用

阿里云HBase 2.0成长手记&#xff0c;含着金汤匙出身 HBase本身是一个分布式存储、数据库引擎&#xff0c;可以支持千万的QPS、PB级别的存储&#xff0c;这些都已经在生产环境验证&#xff0c;并且在阿里得以验证。 早在2010年开始&#xff0c;阿里巴巴集团开始研究并把HBase…

不得不看之跳槽加薪利器:2019需求最旺盛的十大IT技能

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 新技术 新商业责编&#xff5c;阿秃2018年岁末&#xff0c;中国互联网IT职场掀起一股裁员风暴&#xff0c;为所有的码农和IT专业人士敲响了警钟&#xff0c;要想职场顺风满帆&#xff0c;就应当及早预判热点&#xff0c;规划…

阿里云马劲:保证云产品持续拥有稳定性的实践和思考

对所有的技术人员来说&#xff0c;业务可靠性提升是一个系统工程&#xff0c;涉及网络管理、IDC管理、服务器管理、交付管理、变更管理、故障管理、监控管理、预案管理、根因分析、容量规划、容灾演练、标准化建设、集成测试、泛操作管理、权限管理、数据安全管理等方方面面&am…

(需求实战_终章) SpringBoot2.x 整合RabbitMQ

文章目录1. maven依赖2. MainConfig3. application.properties4. 发送字符串 生产者5. 发送对象 生产者6. 接收字符串客户端7. 接收对象客户端8.confirem 确认机制9. return确认机制10. MQ消息发送工具类封装11. 分布式id12. 时间工具类13. 对象1. maven依赖 <dependency>…

lnmp 修改mysql密码_Lnmp下修改mysql根密码

今天帮兄弟安装了一个新的lnmp环境&#xff0c;安装后才发现mysql的根密码不是兄弟想要的密码&#xff0c;如是在建站前把根密码快快改了。 首先登陆phpmyadmin&#xff0c;选择mysql数据库,之后选sql选项卡&#xff0c;输入如下代码到命令框&#xff0c;之后点右下角的执行按钮…

实战:基于 Spring 的应用配置如何迁移至阿里云应用配置管理 ACM

最近遇到一些开发者朋友&#xff0c;准备将原有的Java Spring的应用配置迁移到 阿里云应用配置管理 ACM 中。迁移过程中&#xff0c;遇到不少有趣的问题。本文将通过一个简单的样例来还原迁移过程中遇到的问题和相关解决思路&#xff0c;以期达到和读者交流的目的。 什么样的配…

华为豪投20亿!3年培养100万AI人才,网友不服!

近日&#xff0c;华为20亿奖励员工的新闻频频刷屏。其中20亿奖金不是面向所有的华为员工&#xff0c;20亿奖金包涉及到的是研发体系、造AI芯片和建设生态的员工。从5G开始部署以来&#xff0c;华为获得了来自全球各地运营商的订单&#xff0c;签订了40多个5G商用合同。另外华为…

mysql 5.7 hint_新特性解读 | MySQL 8.0 新增 HINT 模式

在开始演示之前&#xff0c;我们先介绍下两个概念。概念一&#xff0c;数据的可选择性基数&#xff0c;也就是常说的cardinality值。查询优化器在生成各种执行计划之前&#xff0c;得先从统计信息中取得相关数据&#xff0c;这样才能估算每步操作所涉及到的记录数&#xff0c;而…

RAM SSO功能重磅发布 —— 满足客户使用企业本地账号登录阿里云

阿里云RAM (Resource Access Management)为客户提供身份与访问控制管理服务。使用RAM&#xff0c;可以轻松创建并管理您的用户&#xff08;比如雇员、企业开发的应用程序&#xff09;&#xff0c;并控制用户对云资源的访问权限。 对云资源的信息安全保护与风险控制能力是企业成…

SpringBoot 整合Shiro Ehcache

文章目录依赖 <properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version><mybatis.sprin…

SQLServer AlwaysOn在阿里云的前世今生

缘起 早在2015年的时候&#xff0c;随着阿里云业务突飞猛进的发展&#xff0c;SQLServer业务也积累了大批忠实客户&#xff0c;其中一些体量较大的客户在类似大促的业务高峰时RDS的单机规格&#xff08;规格是按照 内存CPUIOPS 一定比例分配&#xff0c;根据底层资源不同都会有…

构建企业数字化转型协同力有多难?青云发布workly.ai誓要解决这些棘手的问题!...

戳蓝字“CSDN云计算”关注我们哦&#xff01;相信大部分人都经历过办公中的手忙脚乱与无所适从&#xff0c;每天面对无数的任务与工作本就是一项挑战&#xff0c;而在办公中面对不同终端协同工具&#xff0c;所带来的那些令人头疼的密码、来不及回复的信息与邮件、繁琐的办公流…

docker无法连接mysql镜像_关于Docker官方CentOS镜像无法启动mysqld的总结

很多童鞋反映&#xff0c;在Docker官方CentOS镜像中安装了Mysql server后&#xff0c;无法正常启动。无法正常启动表现为两种情况&#xff1a;1> 初始完数据库后&#xff0c;mysqld启动报错2> systemctl start mysqld或者service mysqld start报错首先重现一下现场。第一…

阿里云高级技术专家带你全面了解云主机性能评测

钱超&#xff0c;花名西邪&#xff0c;阿里云高级技术专家&#xff0c;超12年老阿里&#xff0c;是云主机性能领域的知名专家。 在目前的云计算测评领域&#xff0c;很多性能测评存在营销的包装&#xff0c;容易引起误导&#xff1a;比如用瞬时性能引导读者得出结论&#xff0…

RabbitMQ控制台详解

文章目录属性说明overview→Totals所有队列的阻塞情况Ready待消费的消息总数Unacked待应答的消息总数Total总数 ReadyUnacked 属性说明Publishproducter pub消息的速率Publisher confirmbroker确认pub消息的速率Deliver(manual ack)ustomer手动确认的速率Deliver( auto ack)cu…

阿里云HBase携X-Pack再进化,重新赋能轻量级大数据平台

一、八年双十一&#xff0c;造就国内最大最专业HBase技术团队 阿里巴巴集团早在2010开始研究并把HBase投入生产环境使用&#xff0c;从最初的淘宝历史交易记录&#xff0c;到蚂蚁安全风控数据存储。持续8年的投入&#xff0c;历经8年双十一锻炼。4个PMC&#xff0c;6个committ…

2018阿里云双12年终大促主会场全攻略

2018阿里云双12年终大促活动已经于12月7日正式开启&#xff0c;从已开放的活动页面来看&#xff0c;活动分为两个阶段&#xff1a; 12月7日-12月23日的拉新返现阶段和12月24日-12月28日的TOP100英雄榜PK阶段。 活动核心亮点&#xff1a; 老会员拉新可享25%返现最高2.5万奖金&a…

RabbitMQ集群原理介绍

文章目录一、RabbitMQ默认集群原理1. RabbitMQ集群元数据的同步2. 为何RabbitMQ集群仅采用元数据同步的方式3. RabbitMQ集群发送/订阅消息的基本原理4. 客户端直接连接队列所在节点5. 客户端连接的是非队列数据所在节点7. 集群节点类型磁盘节点内存节点8. 总结二、RabbitMQ镜像…

mysql统计每周每个学校新增学生数量_深入学习之mysql(四)聚合函数

聚合函数&#xff1a;COUNT统计记录的条数、SUM求和函数、AVG求平均值、MAX求最大值、MIN求最小值一、COUNT练习&#xff1a;1、统计学校一共有多少个学生&#xff1a;mysql> SELECT COUNT(*) AS Total FROM t_student;-------| Total |-------| 13 |-------1 row in set (0…