mysql(通用语法)
mysql基础
- 一、Mysql和navicat安装包
- 数据库
- 二、SQL
- SQL简介
- SQL通用语法
- SQL分类
- 数据类型
- 对表和数据库的DDL
- 查询
- 基础查询
- 条件查询
- 模糊查询
- 排序查询
- 聚合函数
- 聚合函数分类
- 聚合函数的语法
- 拼接函数
- 分组查询
- 分页查询
- 注意点
一、Mysql和navicat安装包
安装包及安装教程链接:https://download.csdn.net/download/javaren001/85233659
数据库
存储和管理数据的仓库,数据是有组织的进行存储。
数据库英文名是 DataBase,简称DB。
MySQL: 开源免费的中小型数据库
二、SQL
SQL简介
- 英文:Structured Query Language,简称 SQL,结构化查询语言
- 操作关系型数据库的编程语言
- 定义操作所有关系型数据库的统一标准,可以使用SQL操作所有的关系型数据库管理系统,以后工作中如果使用到了其他的数据库管理系统,也同样的使用SQL来操作。
SQL通用语法
- SQL 语句可以单行或多行书写,以分号结尾。以分号结尾才是一个完整的sql语句
- MySQL 数据库的 SQL 语句不区分大小写,关键字建议使用大写。
- 注释
单行注释: – 注释内容 或 #注释内容(MySQL 特有)
多行注释: /* 注释 */
SQL分类
DDL(Data Definition Language) : 操作(创建、查询、删除)数据库、表
DML(Data Manipulation Language):对表中的数据进行增删改
DQL(Data Query Language):对表中的数据进行查询
DCL:对数据库进行权限控制
数据类型
整型
tinyint : 小整数型,占一个字节,例:状态
int: 大整数类型,占四个字节 用作与id 年龄 ,班级 ,金额(分)
double : 浮点类型 分数 , 包含小数的数据 (慎用 精度丢失)
使用格式: 字段名 double(总长度,小数点后保留的位数)
日期
date : 日期值。只包含年月日 交往纪念日 生日
datetime : 混合日期和时间值。包含年月日时分秒
格式:'2021-12-10 15:10'
字符串
char : 定长字符串。(你知道要存储的数据占多少个字节就可以使用这个) 性别优点:存储性能高缺点:浪费空间eg : name char(10) 如果存储的数据字符个数不足10个,也会占10个的空间
varchar : 变长字符串。 名字,地址....优点:节约空间缺点:存储性能低eg : name varchar(10) 如果存储的数据字符个数不足10个,那就数据字符个数是几就占几个的空间
关于SQL语法的命名规则:
- 下划线命名法
- 布尔类型使用 1 0 来表示
- 表名统一小写
- 表名不用复数
- 建议小数类型使用 decimal 或将小数根据需要的精度乘 10、100 后以整数存储(扩展)
- 字符串若长度固定,使用 char
- 表必备字段 id,gmt_create,gmt_modified(扩展)
对表和数据库的DDL
查询全部的数据库
SHOW DATABASES;
创建数据库,字符集为utf-8
CREATE DATABASE 数据库名称 CHARACTER SET = utf8;;
判断数据库是否存在,不存在则创建
CREATE DATABASE IF NOT EXISTS 数据库名称;
删除数据库
DROP DATABASE IF EXISTS 数据库名称;
使用数据库
USE 数据库名称;
查看当前使用的数据库
SELECT DATABASE();
查询当前数据库下所有表名称
SHOW TABLES;
查询表结构
DESC 表名称;
创建表:
CREATE TABLE 表名 (字段名1 数据类型1,字段名2 数据类型2,字段名n 数据类型n
);
修改表名:
alter table 表名 rename to 新表名;
表中添加一列
alter table 表名 add 列名 数据类型;
修改表中列的数据类型
alter table 表名 modify 列名 新的数据类型;
修改列名和数据类型
alter table 表名 change 列名 新类名 新数据类型;
删除列
alter table 表名 drop 列名;
查询
基础查询
给制定的列添加元素
insert into 表名(列名1,列名2...) values(值1,值2...);
给全部的列添加元素
insert into 表名 values(值1,值2...);
批量添加元素
insert into 表名 (列名1,列名2...) values(值1,值2...),(值1,值2...);insert into 表名 values (值1,值2...),(值1,值2...);
修改表中的元素
update 表名 set 列名1=值1 where 条件;
注意:update 修改值时,不加条件会把全部的值修改掉
删除数据
delete from 表名 [where 条件];
查询元素完整语法
SELECT 字段列表
FROM 表名列表
WHERE 条件列表
GROUP BY分组字段
HAVING分组后条件
ORDER BY排序字段
LIMIT分页限定
查询某些元素
select 列名1,列名2 from 表名;
查询不重复元素
select distinct 字段列表 from 表名;
注意:当你distinct 后面加的字段列表,是全部不一样的才算是重复的
例:原表为:
当你的查询语句为:
select id,username from student;
查询的结果为:
起别名 AS (也可以省略)
select * from student s where s.id=1001;select * from student AS s where s.id=1001;
注意:在使用select 时,最好直接使用字段列表,这样可以加注释
例:
select id,-- 序列号username,-- 用户名 password-- 密码
from student;
条件查询
语法
SELECT 字段列表 FROM 表名 WHERE 条件列表;
条件列表可使用的运算符
模糊查询
模糊查询使用like关键字,可以使用通配符进行占位:
_ : 代表单个任意字符
% : 代表任意个数字符
例:
select * from stu s where name like '马%'; select * from stu s where name like '_运';
排序查询
关键字:order by
desc:降序
asc:升序
select 字段列表 from 表名 order by 字段 desc;-- 降序select 字段列表 from 表名 order by 字段 asc;-- 升序
当要排序的字段出现重复时,加上,后面在加上重复元素要遵守的排序规则
按照java成绩降序排序,当java成绩一样时,按照c++的成绩升序排序
select * from stu order by java desc, c++ asc ;
聚合函数
将一列数据作为一个整体,进行纵向计算
例如:当你要计算学生成绩表中的java成绩的总和,就可以使用函数,这就是对java成绩的纵向计算。
聚合函数分类
函数名 | 功能 |
---|---|
count(列名) | 统计数量(一般选用不为null的列) |
max(列名) | 最大值 |
min(列名) | 最小值 |
sum(列名) | 求和 |
avg(列名) | 平均值 |
聚合函数的语法
SELECT 聚合函数名(列名) FROM 表;
求和:
select sum(列名) from stu;
求平均值:
select avg(列名) from stu;
求个数:
select count(列名) from stu;
假如所求个数的列中有null,则不会计算该行
求最大值
select max(列名) from stu;
求最小值
select min(列名) from stu;
拼接函数
concat()
用法 concat('aaa','bbb');
分组查询
SELECT 字段列表 FROM 表名 [WHERE 分组前条件限定] GROUP BY 分组字段名 [HAVING 分组后条件过滤];
注意:分组之后,查询的字段为聚合函数和分组字段,查询其他字段无任何意义
例:
select sex,avg(age) from stu group by sex;-- 以性别分组,并且计算每组的平均年龄
查询满足数学成绩大于70的性别、计算他们的平均数学成绩、组内个数并以性别分组且组里所含个数大于2
select sex, avg(math),count(*) from stu where math > 70 group by sex having count(*) > 2;
where 和 having 区别:
执行时机不一样:where 是分组之前进行限定,不满足where条件,则不参与分组,而having是分组之后对结果进行过滤。
可判断的条件不一样:where 不能对聚合函数进行判断,having 可以。
分页查询
分页查询的语法
SELECT 字段列表 FROM 表名 LIMIT 起始索引 , 查询条目数;
注意: 上述语句中的起始索引是从0开始
起始索引计算公式:
起始索引 = (当前页码 - 1) * 每页显示的条数
例:
每页显示3条数据,查询第3页的数据
select * from 表名 limit 6,3;
注意点
group by、having、order by的使用顺序:group by 、having、order by
mysql(通用语法)相关推荐
- Mysql通用语法及分析
一.SQL通用语法 1.SQL语句可以单行或多行书写,以分号结尾. 2.SQL语句可以使用空格/缩进来增强语句的可读性. 3.MySQL数据库的SQL语句不区分大小写,关键字建议使用大写. 4.注释: ...
- MySQL学习笔记02【SQL基本概念与通用语法、数据库的CRUD操作】
MySQL 文档-黑马程序员(腾讯微云):https://share.weiyun.com/RaCdIwas 1-MySQL基础.pdf.2-MySQL约束与设计.pdf.3-MySQL多表查询与事务 ...
- MySQL基础——(MySQL概述及SQL通用语法)
MySQL基础篇(一) MySQL基础 目录 MySQL基础 1 MySQL概述 1.1 数据库相关概念 1.2 数据模型 1)关系型数据库(RDBMS) 2)数据模型 2 SQL 2.1 SQL通用 ...
- MySQL:SQL通用语法、SQL分类、DDL、DML、DQL、DCL
一.SQL通用语法 SQL语句可以单行或多行书写,以分号结尾: SQL语句可以使用空格/缩进来增强语句的可读性: MySQL数据库SQL语句不区分大小写,关键字建议大写: 注释: 单行:--或# 多行 ...
- MySQL 数据库 - 通用语法 DDL DML DQL DCL
目录 数据模型 通用语法及分类 DDL(数据定义语言) 数据库操作 表操作-查询 表操作-创建 表操作-修改 表操作-删除 表操作-数据类型 DML(数据操作语言) DML介绍 DML添加数据 DML ...
- MYSQL(二) SQL通用语法及分类及DDL(对数据库和表操作)的使用
一SQL通用语法 1)SQL语句可以单行或多行书写,以分号结尾. 2)SQL语句可以使用空格/缩进来增强语句的可读性 3)MYSQL数据库的SQL不区分大小写,关键字建议使用大写 4)注释: 单行注释 ...
- MYSQL 常用语法学习汇总
数据库的概念 DB:数据库,保存一组有组织的数据的容器(database) DBMS:数据库管理系统,又称为数据库软件(产品),用于管理DB中的数据(Database Management Syste ...
- MySQL基础语法(详细版)
文章目录 1.数据库的介绍 1.1 数据库概念 1.1.1 数据的存储方式 1.1.2 什么是数据库 2.数据库的安装与卸载 2.1数据库的安装 2.2数据库的卸载 3.数据库服务的启动与登录 3.1 ...
- 第2讲:SQL语言的通用语法及分类
SQL语言的通用语法及分类 文章目录 SQL语言的通用语法及分类 1.SQL语言的通用语法格式 2.SQL语言的几种分类 1.SQL语言的通用语法格式 2.SQL语言的几种分类 1.SQL语言的通用语 ...
最新文章
- 2018-3-19李宏毅机器学习笔记八--HomeWork1-PM2.5 Predicition
- 重学《动手学深度学习》转
- yii2 gradview 输出当前时间和图片
- 【leetcode 简单】 第五十五题 打家劫舍
- 图解C++虚函数 虚函数表
- c++STL容器的Vector
- C#类型与SQLSEVER类型对比
- mysql以秒为单位限制资源_MYSQL中限制资源的使用
- php开发大型网站如何优化,PHP编写大型网站问题
- 关于Vue.js的v-for,key的顺序改变,影响过渡动画表现
- 程序员求职之道(《程序员面试笔试宝典》)之民间的企业排名的可信度到底有多大?...
- IntelliJ Idea 常用快捷键
- 中国计量大学计算机考研难吗,去中国计量大学读研好吗 考研题难吗_
- 复合材料在计算机硬件中的应用,碳纤维复合材料在笔记本电脑后盖中的应用研究...
- Unity3d 实现节奏空间(Beat Saber)模型切割功能项目工程源码。
- Android单元测试思路
- 播放器ocx插件——自动获取MP3时长
- 同程旅游微服务最佳实践
- PHP 常用函数 - 其他常用函数
- 三层交换的定义和实现过程
热门文章
- 周星驰看重的Web3.0,到底是不是割韭菜?
- UnityVR--机械臂场景6-三自由度逆向解算1
- 星辰天合参加首届数字驱动创新峰会 强调以 SDS 加速数据基础设施建设
- Winner 赢家 	(2A - Winner) map
- JAVA中OOP常用英语
- .Net语言 APP开发平台——Smobiler学习日志:仿12306的APP登陆界面
- Canon EOS Digital Photography Photo Workshop
- javaweb JAVA JSP水果销售系统购物系统jsp购物系统购物商城系统源码(jsp电子商务系统)网上水果店在线销售
- Nordic52810入门篇 - 资源介绍与第一个蓝牙实例(IAR与KEIL)
- 枚举类——概述、常用方法、自定义枚举类、Enum创建枚举类