mysql完整教程(MySql新手入门的基本操作汇总)
mysql完整教程
MySql新手入门的基本操作汇总库操作
查询
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基本操作内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
原文链接:https://blog.csdn.net/Numberjava/article/details/116641280
- mysql主键自增策略(MySQL的主键命名策略相关)
- mysql带log的版本(聊聊MYSQL中Redo Log是什么?)
- mysql锁机制图解(详解mysql 中的锁结构)
- iis上搭建php环境(vultr服务器windows server 2012 r2搭建IIS8+PHP+MYSQL+phpMyAdmin运行环境图文教程)
- mysql8.0.26安装教程(mysql 8.0.22压缩包完整安装与配置教程图解亲测安装有效)
- mysql密码设置(mysql密码中有特殊字符&在命令行下登录的操作)
- 怎样查看mysql的安装路径(MySQL中查看数据库安装路径的方法)
- mysql的存储方法(MySQL中的binary类型使用操作)
- mysql字段和关键字(mySQL之关键字的执行优先级讲解)
- mysql超大表加字段(MySQL 大表添加一列的实现)
- mysql分组函数入门(详解MySQL 数据分组)
- mysql字段多有什么问题(MySQL编码不一致可能引起的一些问题)
- docker查找redis配置文件(解决docker重启redis,mysql数据丢失的问题)
- mysql索引原理及调优(MySQL索引机制程序员必知)
- php redis应用场景(PHP商品秒杀问题解决方案实例详解mysql与redis)
- 创建数据库入门教程mysql(MySQL数据库安装教程一学就会)
- 当年的 白洋淀战神 练肌肉 嘎子哥也成为行走的荷尔蒙(当年的白洋淀战神)
- 肌肉小子陈康, 亚洲巨兽 黄哲勋,哪个才是你的菜(肌肉小子陈康亚洲巨兽)
- 新闻周刊 青岛网红 赵厂长 编段子一箩筐输出快乐,陪父亲十二载勇斗病魔(新闻周刊青岛网红)
- 44岁夏雨演谋女郎爸,大其24岁却看不出,互动不怕袁泉吃醋(44岁夏雨演谋女郎爸)
- 全椒人,你还记得吗 那年,那人,那网,那些我们的青春记忆(全椒人你还记得吗)
- 全椒人在苏州10周年联谊会在苏州举办(全椒人在苏州10周年联谊会在苏州举办)
热门推荐
- win7iis服务器的安装与配置(Win7怎么装IIS 安装IIS具体方法安装教程)
- ASP.NET List 集合操作
- python自动化邮件管理(Python实现E-Mail收集插件实例教程)
- nginx设置https访问(基于Nginx实现HTTPS网站设置的步骤)
- JQuery中serialize()
- 两个阿里云账号服务器内网通信(阿里云服务器怎么与租用香港服务器组内网?)
- css怎么设置图片横着(一行css代码解决图片统一大小后的拉伸问题object-fit)
- IEnumerable、GetEnumerator、IEnumerator之间的关系
- 云服务器无法操作(云服务器登录连接失败解决方案)
- asp.net把word文档转换成pdf
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9