MySql新手入门的基本操作汇总


Posted in MySQL onMay 13, 2021

库操作

查询

1.SHOW DATABASE; ----查询所有数据库

2.SHOW CREATE DATABASE 数据库名称; ----查询某个数据库的创建模式

3.SHOW CREATE DATABASE xxx; ----查询xxx数据库的创建模式

创建

1.CREATE DATABASE 数据库名称; ----创建数据库
注:不可以创建一个已经存在的数据库

2.CREATE DATABASE IS NOT EXISTS 数据库名称; ----判断数据库是否存在,不存在就创建

3.CREATE DATABASE 数据库名称 CHARACTER SET 字符集名称; ----创建数据库并指定字符集,一般使用utf-8

修改

ALTER DATABASE 数据库名称 CHARACTER SET 字符集名称; ----修改数据库的字符集

删除

1.DROP DATABASE 数据库名称; ----删除数据库

2.DROP DATABASE IS EXISTS 数据库名称; ----先判断是否存在再删除

使用

SELETE DATABASE (); ----查询当前正在使用的数据库

USE 数据库名称; ----使用指定数据库

表结构

表的查询

1.SHOW TABLES; ----查询数据库中所有的表

2.DESC 表名; ----查看指定表的结构

3.SHOW TABLE STATUS FROM 库名 LIKE ‘表名'; ----查询表字符集(like没有特别情况下和"="号是等价的)

创建表

CREATE TABLE 表名(
列名1 数据类型1 约束,
列名2 数据类型2 约束,

列名n 数据类型n约束
);

int:整数类型

  • age int

double:小数类型

  • score double(5,2)
  • price double

date:日期,只包含年月日 yyyy-MM-dd

datetime:日期,包含年月日时分秒 yyyy-MM-dd HH:mm:ss

timestamp:时间戳类型 包含年月日时分秒 yyyy-MM-dd HH:mm:ss

  • 如果将来不给这个字段赋值,或赋值为null,则默认使用当前的系统时间,来自动赋值

varchar:字符串

  • name varchar(20):姓名最大20个字符
  • zhangsan 8个字符 张三 2个字符

CREATE TABLE 要创建的表名 LIKE 被复制的表名; ----复制表

修改表

1.ALTER TABLE 表名 RENAME TO 新的表名; ----修改表名

2.ALTER TABLE 表名 CHARACTER SET 字符集名称; ----修改表的字符集

**3.**ALTER TABLE 表名 ADD 列名 数据类型; ----添加新的一列

4.ALTER TABLE 表名 MODIFY 列名 新列名 新数据类型; ----修改新列名和数据类型

表中删除操作

1.DROP TABLE 表名; ----删除表

2.ALTER TABLE 表名 DROP 列名; ----删除列

表中添加数据-INSERT语句

1.INSERT INTO 表名(列名1,列名2,…) VALUES (值1,值2,…); ----向表中添
加数据

2.SELECT * FROM product; ----查看表中所有数据

3.INSERT INTO 表名 VALUES (值1,值2,值3,…); ----默认给全部列添加数据

4.INSERT INTO 表名 VALUES (值1,值2,值3,…),(值1,值2,值3,…),(值1,值2,值3,…); ----批量添加数据

注:

  • 列名和值的数量以及数据类型要对应
  • 除了数字类型,其他数据类型的数据都需要加引号(单引双引都可以,推荐单引)

表中修改数据-updata

UPDATE 表名 SET 列名1 = 值1,列名2 = 值2,… [where 条件];
注:

  • 修改语句中必须加上条件,如果不加条件则修改所有数据

表中删除数据-delete

DELETE FROM 表名 [WHERE 条件];

注:

  • 和修改数据是一样的

单表查询

查询语法:

select

字段列表

from

表名列表

where

条件列表

group by

分组字段

having

分组之后的条件

order by

排序

limit

分页限定

SELECT 列名1,列名2,… FROM 表名; ----多个字段查询

SELECT DISTINCT 列名1,列名2,… FROM 表名; ----去重查询,但只有所查询列都重复才会去重

SELECT 列名1 运算符(+ - * /) 列名2 FROM 表名; ----四则运算

SELECT 列名1,列名2,… AS 别名 FROM 表名; ----as用来起别名,简单易懂

条件查询

条件分类

符号 功能
> 大于
< 小于
>= 大于等于
<= 小于等于
= 等于
<> 或 != 不等于
BETWEEN … AND … 在某个范围之内(都包含)
IN(…) 多选一
LIKE 占位符 模糊查询 _单个任意字符 %多个任意字符
IS NULL 是NULL
IS NOT NULL 不是NULL
AND 或 && 并且
OR 或 || 或者
NOT 或 ! 非,不是

聚合函数

函数名称及其功能

函数名 功能
count(列名) 统计数量(一般选用不为null的列)
max(列名) 最大值
min(列名) 最小值
sum(列名) 求和
avg(列名) 平均值

聚合函数语法

-- 标准语法
SELECT 函数名(列名) FROM 表名 [WHERE 条件];

-- 计算product表中总记录条数
SELECT COUNT(*) FROM product;

-- 获取最高价格
SELECT MAX(price) FROM product;
-- 获取最高价格的商品名称
SELECT NAME,price FROM product WHERE price = (SELECT MAX(price) FROM product);

-- 获取最低库存
SELECT MIN(stock) FROM product;
-- 获取最低库存的商品名称
SELECT NAME,stock FROM product WHERE stock = (SELECT MIN(stock) FROM product);

-- 获取总库存数量
SELECT SUM(stock) FROM product;
-- 获取品牌为苹果的总库存数量
SELECT SUM(stock) FROM product WHERE brand='苹果';

-- 获取品牌为小米的平均商品价格
SELECT AVG(price) FROM product WHERE brand='小米';

排序查询

分类

关键字 功能
ORDER BY 列名1 排序方式1,列名2 排序方式2 对指定列排序,ASC升序(默认的) DESC降序

- 注:多个排序条件,当前边的条件值一样时,才会判断第二条件

排序语法

-- 标准语法
SELECT 列名 FROM 表名 [WHERE 条件] ORDER BY 列名1 排序方式1,列名2 排序方式2;

-- 按照库存升序排序
SELECT * FROM product ORDER BY stock ASC;

分组查询

-- 标准语法
SELECT 列名 FROM 表名 [WHERE 条件] GROUP BY 分组列名 [HAVING 分组后条件过滤] [ORDER BY 排序列名 排序方式];

分页查询

-- 标准语法
SELECT 列名 FROM 表名 [WHERE 条件] GROUP BY 分组列名 [HAVING 分组后条件过滤] [ORDER BY 排序列名 排序方式] LIMIT 开始索引,查询条数;
-- 公式:开始索引 = (当前页码-1) * 每页显示的条数

约束

1.约束的概念和分类

约束的概念

  • 对表中的数据进行限定,保证数据的正确性、有效性、完整性!

约束的分类

约束 说明
PRIMARY KEY 主键约束
PRIMARY KEY AUTO_INCREMENT 主键、自动增长
UNIQUE 唯一约束
NOT NULL 非空约束
FOREIGN KEY 外键约束
FOREIGN KEY ON UPDATE CASCADE 外键级联更新
FOREIGN KEY ON DELETE CASCADE 外键级联删除

2.主键约束

主键约束特点

  • 主键约束包含:非空和唯一两个功能
  • 一张表只能有一个列作为主键
  • 主键一般用于表中数据的唯一标识

建表时添加主键约束

-- 标准语法
CREATE TABLE 表名(
	列名 数据类型 PRIMARY KEY,
    列名 数据类型,
    ...
);

-- 创建student表
CREATE TABLE student(
	id INT PRIMARY KEY  -- 给id添加主键约束
);

-- 添加数据
INSERT INTO student VALUES (1),(2);
-- 主键默认唯一,添加重复数据,会报错
INSERT INTO student VALUES (2);
-- 主键默认非空,不能添加null的数据
INSERT INTO student VALUES (NULL);

-- 查询student表
SELECT * FROM student;
-- 查询student表详细
DESC student;

删除主键

-- 标准语法
ALTER TABLE 表名 DROP PRIMARY KEY;

-- 删除主键
ALTER TABLE student DROP PRIMARY KEY;

建表后单独添加主键

-- 标准语法
ALTER TABLE 表名 MODIFY 列名 数据类型 PRIMARY KEY;

-- 添加主键
ALTER TABLE student MODIFY id INT PRIMARY KEY;

3.主键自动增长约束

建表时添加主键自增约束

-- 标准语法
CREATE TABLE 表名(
	列名 数据类型 PRIMARY KEY AUTO_INCREMENT,
    列名 数据类型,
    ...
);

-- 创建student2表
CREATE TABLE student2(
	id INT PRIMARY KEY AUTO_INCREMENT    -- 给id添加主键自增约束
);

-- 添加数据
INSERT INTO student2 VALUES (1),(2);
-- 添加null值,会自动增长
INSERT INTO student2 VALUES (NULL),(NULL);

-- 查询student2表
SELECT * FROM student2;
-- student2表详细
DESC student2;

删除自动增长

-- 标准语法
ALTER TABLE 表名 MODIFY 列名 数据类型;

-- 删除自动增长
ALTER TABLE student2 MODIFY id INT;

建表后单独添加自动增长

-- 标准语法
ALTER TABLE 表名 MODIFY 列名 数据类型 AUTO_INCREMENT;

-- 添加自动增长
ALTER TABLE student2 MODIFY id INT AUTO_INCREMENT;

4.唯一约束

建表时添加唯一约束

-- 标准语法
CREATE TABLE 表名(
	列名 数据类型 UNIQUE,
    列名 数据类型,
    ...
);

-- 创建student3表
CREATE TABLE student3(
	id INT PRIMARY KEY AUTO_INCREMENT,
	tel VARCHAR(20) UNIQUE    -- 给tel列添加唯一约束
);

-- 添加数据
INSERT INTO student3 VALUES (NULL,'18888888888'),(NULL,'18666666666');
-- 添加重复数据,会报错
INSERT INTO student3 VALUES (NULL,'18666666666');

-- 查询student3数据表
SELECT * FROM student3;
-- student3表详细
DESC student3;

删除唯一约束

-- 标准语法
ALTER TABLE 表名 DROP INDEX 列名;

-- 删除唯一约束
ALTER TABLE student3 DROP INDEX tel;

建表后单独添加唯一约束

-- 标准语法
ALTER TABLE 表名 MODIFY 列名 数据类型 UNIQUE;

-- 添加唯一约束
ALTER TABLE student3 MODIFY tel VARCHAR(20) UNIQUE;

5.非空约束

建表时添加非空约束

-- 标准语法
CREATE TABLE 表名(
	列名 数据类型 NOT NULL,
    列名 数据类型,
    ...
);

-- 创建student4表
CREATE TABLE student4(
	id INT PRIMARY KEY AUTO_INCREMENT,
	NAME VARCHAR(20) NOT NULL    -- 给name添加非空约束
);

-- 添加数据
INSERT INTO student4 VALUES (NULL,'张三'),(NULL,'李四');
-- 添加null值,会报错
INSERT INTO student4 VALUES (NULL,NULL);

删除非空约束

-- 标准语法
ALTER TABLE 表名 MODIFY 列名 数据类型;

-- 删除非空约束
ALTER TABLE student4 MODIFY NAME VARCHAR(20);

建表后单独添加非空约束

-- 标准语法
 ALTER TABLE 表名 MODIFY 列名 数据类型 NOT NULL
 
 -- 添加非空约束
 ALTER TABLE student4 MODIFY NAME VARCHAR(20) NOT NULL;

外键约束

外键约束的格式(一般在创建表的最后写这些)

CONSTRAINT 外键名 FOREIGN KEY (本表外键列名) REFERENCES 主表名(主表主键列名)

总结

到此这篇关于MySql新手入门的基本操作汇总的文章就介绍到这了,更多相关MySql基本操作内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

MySQL 相关文章推荐
mysql死锁和分库分表问题详解
Apr 16 MySQL
MySQL获取所有分类的前N条记录
May 07 MySQL
MySQL系列之十 MySQL事务隔离实现并发控制
Jul 02 MySQL
MySql子查询IN的执行和优化的实现
Aug 02 MySQL
MYSQL如何查看进程和kill进程
Mar 13 MySQL
MySQL多表查询机制
Mar 17 MySQL
Mysql事务索引知识汇总
Mar 17 MySQL
为什么MySQL不建议使用SELECT *
Apr 03 MySQL
MySQL数据库 安全管理
May 06 MySQL
MySQL中JOIN连接的基本用法实例
Jun 05 MySQL
MySql统计函数COUNT的具体使用详解
Aug 14 MySQL
关于MySQL中explain工具的使用
May 08 MySQL
MySQL中你可能忽略的COLLATION实例详解
浅谈mysql执行过程以及顺序
mysql 8.0.24版本安装配置方法图文教程
mysql 8.0.24 安装配置方法图文教程
MySQL 如何分析查询性能
May 12 #MySQL
如何用Navicat操作MySQL
MySQL EXPLAIN输出列的详细解释
May 12 #MySQL
You might like
destoon找回管理员密码的方法
2014/06/21 PHP
PHP常用技术文之文件操作和目录操作总结
2014/09/27 PHP
PHP实现的简易版图片相似度比较
2015/01/07 PHP
基于jQuery的倒计时插件代码
2011/05/07 Javascript
jquery 中ajax执行的优先级
2015/06/22 Javascript
jquery实现简单的轮换出现效果实例
2015/07/23 Javascript
jQuery实现仿QQ在线客服效果的滚动层代码
2015/10/15 Javascript
JS生成一维码(条形码)功能示例
2017/01/19 Javascript
jQuery Plupload上传插件的使用
2017/04/19 jQuery
jQuery自定义多选下拉框效果
2017/06/19 jQuery
JavaScript字符串检索字符的方法
2017/06/23 Javascript
js截取字符串功能的实现方法
2017/09/27 Javascript
详解基于vue-router的动态权限控制实现方案
2017/09/28 Javascript
小程序云开发实战小结
2018/10/25 Javascript
React Hooks 实现和由来以及解决的问题详解
2020/01/17 Javascript
vue 组件简介
2020/07/31 Javascript
[53:15]Newbee vs Pain 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python构造自定义方法来美化字典结构输出的示例
2016/06/16 Python
12步入门Python中的decorator装饰器使用方法
2016/06/20 Python
Python中对象迭代与反迭代的技巧总结
2016/09/17 Python
NumPy 数组使用大全
2019/04/25 Python
python+jinja2实现接口数据批量生成工具
2019/08/28 Python
Pandas DataFrame求差集的示例代码
2020/12/13 Python
CSS3制作精致的照片墙特效
2016/06/07 HTML / CSS
会计专业推荐信
2013/10/29 职场文书
文史专业毕业生自荐信
2013/11/17 职场文书
电脑教师的教学自我评价
2013/11/26 职场文书
小学家长会邀请函
2014/01/23 职场文书
《北京的春节》教学反思
2014/04/07 职场文书
美术兴趣小组活动总结
2014/07/07 职场文书
建筑安全生产责任书
2014/07/22 职场文书
员工趣味活动方案
2014/08/27 职场文书
幸福中国演讲稿
2014/09/12 职场文书
房产授权委托书范本
2014/09/22 职场文书
浅谈Python类的单继承相关知识
2021/05/12 Python
Java+swing实现抖音上的表白程序详解
2022/06/25 Java/Android