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 Show Profile
Apr 05 MySQL
MySQL Router的安装部署
Apr 24 MySQL
为什么mysql字段要使用NOT NULL
May 13 MySQL
如何搭建 MySQL 高可用高性能集群
Jun 21 MySQL
mysql 直接拷贝data 目录下文件还原数据的实现
Jul 25 MySQL
SQL之各种join小结详细讲解
Aug 04 MySQL
一文带你探究MySQL中的NULL
Nov 11 MySQL
MySQL常见优化方案汇总
Jan 18 MySQL
教你如何让spark sql写mysql的时候支持update操作
Feb 15 MySQL
mysql 获取时间方式
Mar 20 MySQL
简单聊一聊SQL注入及防止SQL注入
Mar 23 MySQL
mysql通过group by分组取最大时间对应数据的两种有效方法
Sep 23 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
国外PHP程序员的13个好习惯小结
2012/02/20 PHP
php中return的用法实例分析
2015/02/28 PHP
PHP实现RSA签名生成订单功能【支付宝示例】
2017/06/06 PHP
多次注册事件会导致一个事件被触发多次的解决方法
2013/08/12 Javascript
JavaScript中获取高度和宽度函数总结
2014/10/08 Javascript
a标签的href与onclick事件的区别详解
2014/11/12 Javascript
jQuery监控文本框事件并作相应处理的方法
2015/04/16 Javascript
JS模拟酷狗音乐播放器收缩折叠关闭效果代码
2015/10/29 Javascript
JS中使用mailto实现将用户在网页中输入的内容传递到本地邮件客户端
2016/10/08 Javascript
Highcharts+NodeJS搭建数据可视化平台示例
2017/01/01 NodeJs
简单实现js选项卡切换效果
2017/02/09 Javascript
基于JavaScript实现瀑布流效果
2017/03/29 Javascript
JavaScript该如何学习 怎样轻松学习JavaScript
2017/06/12 Javascript
element-ui上传一张图片后隐藏上传按钮功能
2019/05/22 Javascript
elementUI vue this.$confirm 和el-dialog 弹出框 移动 示例demo
2019/07/03 Javascript
[01:01:01]完美世界DOTA2联赛循环赛 GXR vs FTD BO2第一场 10.29
2020/10/29 DOTA
使用python的chardet库获得文件编码并修改编码
2014/01/22 Python
使用Python读取安卓手机的屏幕分辨率方法
2018/03/31 Python
python 读取DICOM头文件的实例
2018/05/07 Python
numpy中以文本的方式存储以及读取数据方法
2018/06/04 Python
python使用原始套接字发送二层包(链路层帧)的方法
2019/07/22 Python
python3 写一个WAV音频文件播放器的代码
2019/09/27 Python
Selenium结合BeautifulSoup4编写简单的python爬虫
2020/11/06 Python
python获取天气接口给指定微信好友发天气预报
2020/12/28 Python
amazeui页面分析之登录页面的示例代码
2020/08/25 HTML / CSS
美国精品地毯网站:Boutique Rugs
2020/03/04 全球购物
Wiggle澳大利亚:自行车、跑步、游泳商店
2020/11/07 全球购物
WSDL的操作类型主要有几种
2013/07/19 面试题
成品仓管员岗位职责
2013/12/11 职场文书
晚归检讨书
2014/02/19 职场文书
物业经理自我鉴定
2014/03/03 职场文书
廉政教育的心得体会
2014/09/01 职场文书
审计局2014法制宣传日活动总结
2014/11/01 职场文书
Nginx服务器添加Systemd自定义服务过程解析
2021/03/31 Servers
http通过StreamingHttpResponse完成连续的数据传输长链接方式
2022/02/12 Python
win10此电脑打不开怎么办 win10双击此电脑无响应的解决办法
2022/07/23 数码科技