MySQL介绍及常用命令


结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。

数据库介绍

1.数据库的五个基本单位

数据库服务器
数据库
数据表
数据字段
数据行

2.SQL语句按照其功能范围不同可分为3个类别:
数据定义语言(DDL ,Data Defintion Language)语句:数据定义语句,用于定义不同的数据段、数据库、表、列、索引等。常用的语句关键字包括create、drop、alter等。
数据操作语言(DML , Data Manipulation Language)语句:数据操纵语句,用于添加、删除、更新和查询数据库记录,并检查数据的完整性。常用的语句关键字主要包括insert、delete、update和select等。
数据控制语言(DCL, Data Control Language)语句:数据控制语句,用于控制不同数据段直接的许可和访问级别的语句。这些语句定义了数据库、表、字段、用户的访问权限和安全级别。主要的语句关键字包括grant、revoke等。

一、MySQL常用命令

1.数据库操作

在命令行下,通过以下命可以连接到数据库服务器:

mysql -h localhost -u root -p
//参数	说明
//-h	表示数据库连接地址,连接本机可不填
//-u	表示要登录的用户
//-p	表示使用密码登录

创建数据库

create database 数据库名;

查看数据库

show databases;

选中数据库

use 库名;

查看数据库中的表

show tables;

删除数据库

drop database 库名;

【注】数据库删除后,下面的所有数据都会全部删除,所以删除前一定要慎重并做好相应的备份。

2.数据表操作

创建表

create table 表名(字段名1 字段类型,.字段名n 字段类型n);

create table user(username varchar(20),password varchar(32));
//int,代表整型。float,代表浮点。char和varchar代表字符串。

查看表字段结构信息

desc 表名;

查看表的创建语句

show create table 表名 \G;
//还可以看到表的 engine(存储引擎) 和 charset(字符集)等信息。
//“\G”选项的含义是使得记录能够按照字段竖着排列,对于内 容比较长的记录更易于显示。

删除表

drop table 表名;

指定表引擎和字符集

ENGINE=InnoDB
//指定引擎
DEFAULT CHARSET=utf8
//指定表默认字符集

3.数据字段操作

修改表字段类型 modify

alter table 表名 modify 字段名 varchar(20);

alter table user modify username varchar(20);
//将user表的username的类型改为varchar(20)

增加表字段

alter table 表名 add column 字段名 类型;

增加字段时控制字段顺序

ALTER TABLE 表名 ADD 字段名 字段类型 AFTER 字段名;
//在第一个增加或者在指字字段之后增加

ALTER TABLE 表名 ADD 字段名 字段类型;

删除表字段

alter table 表名 drop column 字段名;

表字段改名

alter table 表名 change 字段原名 字段新名 字段类型;

修改表字段排列顺序、使用modify调整顺序

alter table user modify em varchar(60) first

修改表名

alter table 旧表名 rename 新的表名;

4.补充

在mysql命令中使用以下命令可以查看到当前服务器支持的所有引擎。

show engines;

普通索引

alter table 表 add index(字段)

ALTER TABLE money ADD INDEX(username);
//为money表的username字段增加索引

唯一索引

alter table 表 add UNIQUE(字段)

ALTER TABLE money ADD UNIQUE(email);
//为money表的email字段增加唯一索引

全文索引

alter table 表 add FULLTEXT(字段)

ALTER TABLE money ADD FULLTEXT(content);
//为money表的content字段增加全文索引

主键索引

alter table 表 add PRIMARY KEY(字段)

ALTER TABLE money ADD PRIMARY KEY(id);
//为money表的id字段增加主键索引

二、增删改查

1.插入记录

插入基本语法一

insert into 表 values(1,2,值n);
//表中有多少个字段就必须要插入多少个值。一个不能多,一个也不能少。若有默认值,不想传,可以写上null。

插入基本语法二

insert into 表(字段1,字段2,字段n) values(1,2,值n);
//除非有必填字段必须要写入值外。如果有默认值的不想写可以忽略不写。mysql会自动补主默认值。

2.查询记录

基础查询

select * from 表;
//查询money表中所有字段中的所有结果

指定字段查询

select 字段 from 表;

查询单个字段不重复记录 distinct

select distinct 字段 from 表;

select distinct age deptno from money;
//查询money表中年龄唯一的所有结果

条件查询 where

select 字段 from 表 where 条件;

结果集排序

select 字段 from 表 order by 字段 排序关键词

//排序用到的关键词:
//关键词	说明
//asc	升序排列,从小到大(默认)
//desc	降序排列,从大到小

多字段排序

select 字段 from 表 order by 字段1 排序关键词,… …字段n desc
//order by 后面可以跟多个不同的字段排序,并且排序字段的不同结果集的顺序也不同,如果排序字段的值一样,则值相同的字段按照第二个排序字段进行排序。

结果集限制

select 字段 from 表 limit 数量;

限制结果集并排序

select 字段 from 表 order by 字段 排序关键词 limit 数量

结果集区间选择

select 字段 from 表 limit 偏移量,数量

select id,username, balance from money limit 0,3;
//从第一条开始取三条记录

统计类函数使用

select 函数(字段) from 表

//统计类函数最常用的我们有四个:
//函数	     说明
//sum	     求和
//count	    统计总数
//max	    最大值
//min	    最小值
//avg	    平均值

分组 group by

select * from 表 group by 字段

在分组基础上进行统计

select * from 表 group by 字段 with rollup
//对于分组的数据进行统计后,再进行一次总数统计。

结果再过滤having

select * from 表 group by 字段 having 条件
//having 是筛选组 而where是筛选记录

表连接
当需要查询多个表中的字段时,就可以使用表连接来实现。表联接分为内连接外连接
内连接:将两个表中存在联结关系的字段符合联结关系的那些记录形成记录集的联结。
外连接:会选出其他不匹配的记录,分为外左联结和外右联结。

内连接

select 表1.字段 [as 别名],表n.字段 from 表1 [别名],表n where 条件;

select 表1.字段 [as 别名],表n.字段 from 表1 INNER JOIN 表n on 条件;

外连接

select 表1.字段 [as 别名],表n.字段 from 表1 LEFT JOIN 表n on 条件;

子查询
用于子查询的关键字包括in、not in、=、!=、exists、not exists等。

select 字段 from 表 where 字段 in(条件)

记录联合
使用 union 和 union all 关键字,将两个表的数据按照一定的查询条件查询出来后,将结果合并到一起显示。两者主要的区别是把结果直接合并在一起,而 union 是将 union all 后的结果进行一次distinct,去除重复记录后的结果。

select语句1 union[all] select语句2

3.更新记录

更新记录

update 表名 set 字段1=1,字段2=2,字段n=值n where 条件

同时对两个表进行更新

update 表1,2 set 字段1=1,字段2=2,字段n=值n where 条件

4.删除记录

使用 delete 删除记录

delete from 表 [where 条件];

清空表记录

TRUNCATE TABLE 表名;

deletetruncate是一样的,但它们有一点不同,那就是DELETE可以返回被删除的记录数,而TRUNCATE TABLE返回的是0。
【注】删除时一定要记住加上where条件,不然会清空掉整个表的记录。
【注】删除重要数据前一定要备份!

DCL语句

创建库用户

grant 权限 on 库.表 to '用户'@'主机' identified by '密码';
//在grant后接all说明给予所有权限
//权限 on . 所明给予所有库所有表的操作权限
//主机里面若为%。任意来源的主机均可以使用这个用户来访问

删除权限

revoke 权限 on 库.表 from '用户'@'主机';
//	在revoke后接all说明删除所有权限
//权限 on . 所明给予所有库所有表的操作权限
//主机里面若为%。任意来源的主机均可以使用这个用户来访问
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wrdoct

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值