首页 > 数据库 >JavaWeb--MySql基础:数据库概念、MySql前期基础、SQL基础语句、Navicat使用--2022年9月21日

JavaWeb--MySql基础:数据库概念、MySql前期基础、SQL基础语句、Navicat使用--2022年9月21日

时间:2022-09-22 16:44:35浏览次数:98  
标签:-- 数据库 表名 基础 查询 SQL 列名 MySql

第一节   数据库

  1、数据库是什么

    存储和管理数据的仓库,数据是有组织的进行存储。

    数据库英文名是DataBase,简称DB

  2、数据库管理系统

    管理数据库的大型软件

    英文:DataBase Management System,简称DBMS    

  3、数据库和数据库管理系统的关系

    

  4、常见的数据库管理系统有哪些

    

  5、SQL是什么

    英文:Structured Query Language,简称SQL,结构化查询语言

    操作关系型数据库的编程语言

    定义操作所有关系型数据库的统一标准,可以使用SQL操作所有的关系型数据库管理系统,以后工作中如果使用到了其他的数据库管理系统,也同样的使用SQL来操作。

  6、如何安装MySql及卸载

    详情请看文档

    一些语句

      初始化MySql:mysqld --initialize-insecure 

      注册MySql服务:mysqld -install 

      启动MySql服务:net start mysql

         停止MySql服务:net stop mysql 

      修改默认账户密码:mysqladmin -u root password 1234  //这里1234就是指默认管理员(即root账户)的密码,可以自行修改成你喜欢的

  7、MySql的登录及退出

    登录:mysql -uroot -p1234 

    登录参数:mysql -u用户名 -p密码 -h要连接的mysql服务器的ip地址(默认127.0.0.1) -P端口号(默认3306) 

    退出:exit或者quit

  8、MySql数据模型

    A、关系型数据库是什么

      关系型数据库是建立在关系模型基础上的数据库,简单说,关系型数据库是由多张能互相连接的二维表组成的数据库,如下图,订单信息表和客户信息表都是有行有列二维表,我们将这样的称为关系型数据库。

      

 

 

     B、关系数据库的优点

      都是使用表结构,格式一致,易于维护

      使用通用的SQL语言操作,使用方便,可用于复杂查询

        关系型数据库都可以通过SQL进行操作,所以使用方便

        复杂查询,现在需要查询001号订单数据,我们可以看到该订单是1号客户的订单,而1号订单是李聪这个客户。以后也可以在一张表中进行统计分析等操作

        数据存储在磁盘中、安全。

    C、数据模型

      

 

 

       如上图,我们通过客户端可以通过数据库管理系统创建数据库,在数据库中创建表,在表中添加数据。创建的每一个数据库对应到磁盘上都是一个文件夹,表对应的是一个文件。

      

 

 

     总结:MySql中可以创建多个数据库,每个数据库队形到磁盘上的一个文件夹

           在每个数据库中可以创建多个表,每张都对应到磁盘上一个frm文件

         每张表可以存储多条数据,数据会被存储到磁盘中MYD文件中

第二节 SQL

  1、SQL简介

    英文:Structured Query Language,简称SQL

    结构化查询语言,一门操作关系型数据库的编程语言

    定义操作所有关系型数据库的统一标准

    对于同一个需求,每一种数据库操作的方式可能会存在一些不一样的地方,我们称为“方言”

  2、通用语法

    SQL语句可以单行或多行书写,以分号结尾

    MySQL数据库的SQL语句不区分大小写,关键字建议使用大写

    注释:

      单行注释:-- 注释内容或者#注释内容(MySQL特有)   注意:使用--添加单行注释时,--后面一定要加空格,#这个格式没有要求

      多行注释:/* 注释内容 */

  3、SQL分类

    DDL(Data Definition Language):数据定义语言,用来定义数据库对象:数据库,表,列等;DDL简单理解就是用来操作数据库,表等

    DML(Data Mainpulation Language):数据操作语言,用来对数据库中表的数据进行增删改;DML简单理解就是对表中数据进行增删改

    DQL(Data Query Language)数据查询语言,用来查询数据库表中表的记录(数据);DQL简单理解就是对数据进行查询操作,从数据库表中查询到我们想要的数据。

    DCL(Data Control Language)数据控制语言,用来定义数据库的访问权限和安全级别,及创建用户;DCL简单理解就是对数据库进行权限控制。比如我让某一个数据库表只能让某一个用户进行操作等。

第三节   DDL:操作数据库

  1、查询所有的数据库

    SHOW DATABASES;

  2、创建数据库

    CREATE DATABASE 数据库名称;

    CREAT DATABASE IF NOT EXISTS 数据库名称;//加了一个判断,如果不存在该数据库,则创建

  3、删除数据库

    DROP DATABASE 数据库名称;

    DROP DATABASE IF EXISTS 数据库名称;

  4、使用数据库

    USE 数据库名称;

    SELECT DATABASE();//查看当前使用的数据库

第四节   DDL:操作表(操作表就是对表进行增(Creat)删(Delete)改(Update)查(Retrieve))

  1、查询表

    SHOW TABLES;//查询当前数据库下所有表名称

    DESC 表结构;//查询表结构

  2、创建表

    CREATE TABLE 表名(

      字段名1 数据类型1,

      字段名2 数据类型2,

      ...

      字段n 数据类型n

    )

    注意:最后一行末尾,不能加逗号

    实例:

    CREATE TABLE tb_user(

      id int,

      username varchar(20),

      password varchar(10)

    )

    

  3、数据类型介绍

    数值:     

      tinyint : 小整数型,占一个字节
      int : 大整数类型,占四个字节
        eg : age int
      double : 浮点类型
        使用格式: 字段名 double(总长度,小数点后保留的位数)
        eg : score double(5,2)

    日期: 

      date : 日期值。只包含年月日
        eg :birthday date :
      datetime : 混合日期和时间值。包含年月日时分秒

    字符串:    

      char : 定长字符串。
        优点:存储性能高
        缺点:浪费空间
        eg : name char(10) 如果存储的数据字符个数不足10个,也会占10个的空间
      varchar : 变长字符串。
        优点:节约空间
        缺点:存储性能底
        eg : name varchar(10) 如果存储的数据字符个数不足10个,那就数据字符个数是几就占几个的空间

    注意:其他类型参考资料中的《MySql数据类型.xlsx》

  4、删除表

    DROP TABLE 表名;

    DROP TABLE IF EXISTS 表名;

  5、修改表

    修改表名:

      ALERT TABLE 表名 RENAME TO 新的表名;//alert table student rename to stu;

    添加一列:

      ALERT TABLE 表名 ADD 列名 数据类型;//alert table student add adderss varchar(50)

    修改数据类型:

      ALERT TABLE 表名 MODIFY 列名 数据类型;//alert table student modift address char(50)

    修改列名和数据类型:

      ALERT TABLE 表名 CHANGE 列名 新列名 新数据类型;//alert table student change address addr varchar(50)

    删除列:

      ALERT TABLE 表名 DROP 列名;//alert table student drop addr;

第五节   Navicat安装及使用

    详情请见文档,百度网盘

第六节   DML:DML主要是对数据进行增(insert)删(delete)改(update)操作。

  1、添加数据

    INSERT INTO 表名(列名,列名,...) VALUES(值1,值2,...);//给指定列添加数据

    INSERT INTO 表名 VLAUSE(值1,值2,...);//给全部列添加数据

    INSERT INTO 表名(列名1,列名2,…) VALUES(值1,值2,…),(值1,值2,…),(值1,值2,…)…;//批量添加数据

    INSERT INTO 表名 VALUES(值1,值2,…),(值1,值2,…),(值1,值2,…)…;//批量添加数据

  2、修改数据

    UPDATE 表名 SET 列名=值1,列名2=值2,...[WHERE 条件];//修改表数据

    注意:WHERE 条件可以不写,不写的话,将所有数据都进行修改,[]z表示的是里面的内容可以省略

  3、删除数据

    DELETE FROM 表名 [WHERE 条件];//删除数据

第七节   DQL

  1、完整语法

    

 

  2、基础语法

    A、查询多个字段

      SELECT 字段列表 FROM 表名;

      SELECT * FROM 表名; -- 查询所有数据

    B、去除重复记录

      SELECT DISTINCT 字段列表 FROM 表名;

    C、起别名

      AS:AS也可以省略

      select name,math as 数学成绩,english as 英文成绩 from stu;

      select name,math 数学成绩,english 英文成绩 from stu;

  3、条件查询

    A、语法

      SELECT 字段列表 FROM 表名 WHERE 条件列表;

    B、条件列表里的运算符

      

    C、模糊查询

      

 

       例如:select * from stu where name like '马%'; 

  4、排序查询

    A、语法

      SELECT 字段列表 FROM 表名 ORDER BY 排序字段名1 [排序方式1],排序字段名2 [排序方式2]...;

      例如:select * from stu order by math desc , english asc ; 

      排序方式有两种:ASC:升序排列(默认值)

              DESC:降序排列

      注意:如果有多个排序条件,当前边的条件值一样时,才会根据第二条件进行排序

  5、聚合函数

    A、语法

      SELECT 聚合函数名(列名) FROM 表;

      注意:null值不参与所有聚合函数运算

    B、聚合函数分类

      

 

       count选取的列名:一般选择主键或者*

  6、分组查询

    A、语法

      SELECT 字段列表 FROM 表名 [WHERE 分组前条件限定] GROUP BY [HAVING 分组后条件过滤];

      注意:分组之后,查询的字段为聚合函数和分组字段,查询其他字段无任何意义

    B、where和having区别

      执行时机不一样:where是分组之前进行限定,不满足where条件,则不参与分组,而having是分组之后对结果进行过滤

      可判断的条件不一样:where不能对聚合函数进行判断,having可以

    C、where、having、聚合函数的执行顺序

      where>聚合函数>having

  7、分页查询

    A、语法

      SELECT 字段列表 FROM 表名 LIMIT 起始索引,查询条目数;

      注意:上述语句中的起始索引是从0开始

    B、起始索引的计算公式

      起始索引=(当前页码-1) * 每页显示的条数

    C、tips:

      分页查询limit是MySQL数据库的方言

      Oracle分页查询使用rownumber

      SQL Server分页查询使用top

标签:--,数据库,表名,基础,查询,SQL,列名,MySql
From: https://www.cnblogs.com/Flower--Dance/p/16715383.html

相关文章

  • 在 Kubernetes 中缩放容器实例
    在一天中的某些时间,微服务可能会负载很大。Kubernetes通过为你添加额外的实例来轻松缩放微服务。运行以下命令,将后端微服务缩放为五个实例。kubectlscale--replic......
  • Codeforces Round #814
    难得遇上一把CF,结果unr了。AMainakandArray显然最优策略只有三种:选一个\(i\in[1,n-1]\)的\(a_i\)作为\(a_1\);选一个\(i\in[2,n]\)的\(a_i\)作为\(a......
  • [TKDE 2021]Fast Semi-Supervised Learning WithOptimal Bipartite Graph
    总结损失函数中保证结构接近的同时让目标图中的标签和真实标签拟合,而结构接近的判断依据是顶点和锚点之间的关联程度普通图上的半监督学习亲和力矩阵:\(W_{ij}=\left\{......
  • 常用正则表达式大全
    一、校验数字的表达式 1.数字:^[0-9]*$2.n位的数字:^\d{n}$3.至少n位的数字:^\d{n,}$4.m-n位的数字:^\d{m,n}$5.零和非零开头的数字:^(0|[1-9][0-9]*)$6.非零开头......
  • leetcode 1640. 能否连接形成数组
    //1class Solution {    int cnt=0;    public boolean canFormArray(int[] arr, int[][] pieces) {        return dfs(0,arr,pieces); ......
  • C语言大小写转换
    #include<stdio.h>#include<string.h>intmain(){charstr[101];scanf("%s",str);inti;charc;//A-Z65-90//a-z97-122for(i=0;(c=str......
  • 如何避免SESSION丢失?
    如何避免SESSION丢失?一般的项目在集群的服务器情况下SESSION会出现丢失的问题?原因:默认负载均衡会把每次请求转发到不同的服务器,而SESSION只保存在其中一台服务器,所以当转......
  • TypeScript在vue3中的应用(Ref和ComputedRef的应用)
    首先,我承认,我vue3和ts都不是很熟。然后在使用过程中就发现了这样一个情况。constlist:{isBoob:boolean;count:number;}[]=computed(()=>{letarr:number[]......
  • es 学习之 大纲 目录
    SQL的使用SQL转ES的DSL执行SQL官方都有,挺好的https://www.elastic.co/guide/en/elasticsearch/reference/7.16/xpack-sql.html......
  • parted命令详解-分区
    parted命令详解-分区1、选择要分区的硬盘,此处为/dev/sdbroot@ubuntu-virtual-machine:~#parted/dev/sdbGNUParted3.2使用/dev/sdb欢迎使用GNUParted!输入'h......