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(通用语法)相关推荐

  1. Mysql通用语法及分析

    一.SQL通用语法 1.SQL语句可以单行或多行书写,以分号结尾. 2.SQL语句可以使用空格/缩进来增强语句的可读性. 3.MySQL数据库的SQL语句不区分大小写,关键字建议使用大写. 4.注释: ...

  2. MySQL学习笔记02【SQL基本概念与通用语法、数据库的CRUD操作】

    MySQL 文档-黑马程序员(腾讯微云):https://share.weiyun.com/RaCdIwas 1-MySQL基础.pdf.2-MySQL约束与设计.pdf.3-MySQL多表查询与事务 ...

  3. MySQL基础——(MySQL概述及SQL通用语法)

    MySQL基础篇(一) MySQL基础 目录 MySQL基础 1 MySQL概述 1.1 数据库相关概念 1.2 数据模型 1)关系型数据库(RDBMS) 2)数据模型 2 SQL 2.1 SQL通用 ...

  4. MySQL:SQL通用语法、SQL分类、DDL、DML、DQL、DCL

    一.SQL通用语法 SQL语句可以单行或多行书写,以分号结尾: SQL语句可以使用空格/缩进来增强语句的可读性: MySQL数据库SQL语句不区分大小写,关键字建议大写: 注释: 单行:--或# 多行 ...

  5. MySQL 数据库 - 通用语法 DDL DML DQL DCL

    目录 数据模型 通用语法及分类 DDL(数据定义语言) 数据库操作 表操作-查询 表操作-创建 表操作-修改 表操作-删除 表操作-数据类型 DML(数据操作语言) DML介绍 DML添加数据 DML ...

  6. MYSQL(二) SQL通用语法及分类及DDL(对数据库和表操作)的使用

    一SQL通用语法 1)SQL语句可以单行或多行书写,以分号结尾. 2)SQL语句可以使用空格/缩进来增强语句的可读性 3)MYSQL数据库的SQL不区分大小写,关键字建议使用大写 4)注释: 单行注释 ...

  7. MYSQL 常用语法学习汇总

    数据库的概念 DB:数据库,保存一组有组织的数据的容器(database) DBMS:数据库管理系统,又称为数据库软件(产品),用于管理DB中的数据(Database Management Syste ...

  8. MySQL基础语法(详细版)

    文章目录 1.数据库的介绍 1.1 数据库概念 1.1.1 数据的存储方式 1.1.2 什么是数据库 2.数据库的安装与卸载 2.1数据库的安装 2.2数据库的卸载 3.数据库服务的启动与登录 3.1 ...

  9. 第2讲:SQL语言的通用语法及分类

    SQL语言的通用语法及分类 文章目录 SQL语言的通用语法及分类 1.SQL语言的通用语法格式 2.SQL语言的几种分类 1.SQL语言的通用语法格式 2.SQL语言的几种分类 1.SQL语言的通用语 ...

最新文章

  1. 2018-3-19李宏毅机器学习笔记八--HomeWork1-PM2.5 Predicition
  2. 重学《动手学深度学习》转
  3. yii2 gradview 输出当前时间和图片
  4. 【leetcode 简单】 第五十五题 打家劫舍
  5. 图解C++虚函数 虚函数表
  6. c++STL容器的Vector
  7. C#类型与SQLSEVER类型对比
  8. mysql以秒为单位限制资源_MYSQL中限制资源的使用
  9. php开发大型网站如何优化,PHP编写大型网站问题
  10. 关于Vue.js的v-for,key的顺序改变,影响过渡动画表现
  11. 程序员求职之道(《程序员面试笔试宝典》)之民间的企业排名的可信度到底有多大?...
  12. IntelliJ Idea 常用快捷键
  13. 中国计量大学计算机考研难吗,去中国计量大学读研好吗 考研题难吗_
  14. 复合材料在计算机硬件中的应用,碳纤维复合材料在笔记本电脑后盖中的应用研究...
  15. Unity3d 实现节奏空间(Beat Saber)模型切割功能项目工程源码。
  16. Android单元测试思路
  17. 播放器ocx插件——自动获取MP3时长
  18. 同程旅游微服务最佳实践
  19. PHP 常用函数 - 其他常用函数
  20. 三层交换的定义和实现过程

热门文章

  1. 周星驰看重的Web3.0,到底是不是割韭菜?
  2. UnityVR--机械臂场景6-三自由度逆向解算1
  3. 星辰天合参加首届数字驱动创新峰会 强调以 SDS 加速数据基础设施建设
  4. Winner 赢家 (2A - Winner) map
  5. JAVA中OOP常用英语
  6. .Net语言 APP开发平台——Smobiler学习日志:仿12306的APP登陆界面
  7. Canon EOS Digital Photography Photo Workshop
  8. javaweb JAVA JSP水果销售系统购物系统jsp购物系统购物商城系统源码(jsp电子商务系统)网上水果店在线销售
  9. Nordic52810入门篇 - 资源介绍与第一个蓝牙实例(IAR与KEIL)
  10. 枚举类——概述、常用方法、自定义枚举类、Enum创建枚举类