MySQL基础SQL入门

技术MySQL基础SQL入门 MySQL基础SQL入门MySQL基础SQL入门
1. 数据库的基本概念
1.1 什么是数据库1. 数据库(DataBase) 就是存储和管理数据的仓库
2. 其本质是一个

MySQL基本语句介绍

MySQL基本语句介绍

1. 数据库的基本概念

1.1 什么是数据库

1.数据库是存储和管理数据的仓库。

2.它本质上是一个文件系统,还是以文件的形式将数据保存在计算机上?

1.2 为什么使用数据库

数据存储方法的比较

通过上面的比较,我们可以看出,使用数据库存储数据, 用户可以非常方便对数据库中的数据进行增加, 删除, 修改及查询操作。

1.3 常见的数据库软件排行榜

2020年数据库排行

开发中的通用数据库

为什么是MySQL?

1.强大到足以应对web应用程序开发

2.免费开源

2. MySQL的安装及配置

2.1 安装MySQL

有关详细信息,请参见MySQL安装文档。

2.2 卸载MySQL

有关详细信息,请参见MySQL卸载文档。

2.3 MySQL环境变量配置

详见MySQL环境变量配置文档。

2.4 MySQL的启动与关闭

2.4.1 方式一 : window服务启动 MySQL

1)右键单击这台电脑-管理

2)选择服务-查找MysQL服务。

3)右键选择-开始或停止。

2.4.2 方式二: DOS 命令方式启动

1)首先,以管理员身份打开命令行窗口。

2)启动MySql

3)关闭MySql

2.5 命令行登录数据库

MySQL是一个需要帐户名和密码才能登录的数据库。登录后即可使用。它提供了一个默认的根帐户,您可以使用安装过程中设置的密码登录。

命令:

退出命令

2.6 SqlYog的使用

1) 简介

SQLyog是业界著名的Webyog公司出品的一款简单、高效、功能强大的图形化MySQL数据库管理工具。SQLyog允许您通过网络从世界任何地方快速直观地维护远程MySQL数据库。

2) 具体安装教程 请查看

SQLyog安装教程

2.7 MySql的目录结构

1) MySQL安装目录

MySql的默认安装目录是C: \程序文件\ MySQL \ MySQL server 5.7。

2) MySQL配置文件 与 数据库及 数据表所在目录

My.ini文件是mysql的配置文件,一般不建议修改。

数据目录Mysql管理数据库文件的目录。

几个概念

数据库:文件夹

表格:文件

数据:文件中的记录

2.8 数据库管理系统

1) 什么是数据库管理系统

数据库管理系统(DBMS):指操作、管理和维护数据库的大型软件。

Mysql是一个数据库管理系统软件,一台安装了MySQL的电脑,我们称之为数据库服务器。

2) 数据库管理系统的作用

用于建立、使用和维护数据库,统一管理数据库。

3)数据库管理系统、数据库 和表之间的关系

MySQL管理许多数据库。在实际的开发环境中,数据库通常对应于一个新的应用程序。数据库中有很多表,每个表对应不同的业务,对应业务的数据都存储在表中。

2.9 数据库表

数据以表为组织单位存储在数据库中。

表类似于我们的Java类,每个字段都有对应的数据类型。

然后我们用熟悉的Java程序与关系数据进行对比,会发现下面的关系:

3. SQL(重点)

3.1 SQL的概念

1) 什么是SQL

结构化查询语言(简称SQL)是一种专用编程语言,是一种数据库查询和编程语言,用于访问数据、查询、更新和管理关系数据库系统。

2) SQL 的作用

是所有关系数据库的统一查询规范,

不同的关系型数据库都支持SQL

  • 所有的关系型数据库都可以使用SQL
  • 不同数据库之间的SQL 有一些区别 方言
  • 3.2 SQL通用语法

    1) SQL语句可以单行 或者 多行书写,以分号 结尾 ; (Sqlyog中可以不用写分号)
    2) 可以使用空格和缩进来增加语句的可读性。
    3) MySql中使用SQL不区分大小写,一般关键字大写,数据库名 表名列名 小写。
    4) 注释方式

    3.3 SQL的分类

    注: 我们重点学习 DML 与 DQL!

    3.4 DDL操作 数据库

    3.4.1 创建数据库

    3.4.2 查看/选择数据库

    3.4.3 修改数据库

    3.4.4 删除数据库

    3.5 DDL 操作 数据表

    3.5.1 MySQL常见的数据类型

    1)常用的数据类型:

    2) 详细的数据类型(了解即可)

    注意:MySQL中的 char类型与 varchar类型,都对应了 Java中的字符串类型,区别在于:

    • char类型是固定长度的: 根据定义的字符串长度分配足够的空间。
    • varchar类型是可变长度的: 只使用字符串长度所需的空间

    比如:保存字符串 "abc"

    适用场景:

    • char类型适合存储 固定长度的字符串,比如 密码 ,性别一类
    • varchar类型适合存储 在一定范围内,有长度变化的字符串

    3.5.2 创建表

    语法格式:

    • 需求1: 创建商品分类表
    • SQL实现
    • 需求2: 创建测试表
    • SQL实现
    • 需求3: 快速创建一个表结构相同的表(复制表结构)
    • 语法格式:
    • 代码示例:

    3.5.3 查看表

    代码示例:

    3.5.4 删除表

    代码示例:

    3.5.5 修改表

    1)修改表名

    语法格式:

    需求: 将category表 改为 category1

    2) 修改表的字符集

    语法格式:

    需求: 将category表的字符集 修改为gbk

    3)向表中添加列, 关键字 ADD

    • 语法格式:
    • 需求: 为分类表添加一个新的字段为 分类描述 cdesc varchar(20)

    4)修改表中列的 数据类型或长度 , 关键字 MODIFY

    • 语法格式:
    • 需求:对分类表的描述字段进行修改,类型varchar(50)

    5)修改列名称 , 关键字 CHANGE

    • 语法格式
    • 需求: 对分类表中的 desc字段进行更换, 更换为 description varchar(30)

    6)删除列 ,关键字 DROP

    • 语法格式
    • 需求: 删除分类表中description这列

    3.6 DML 操作表中数据

    • SQL中的DML 用于对表中的数据进行增删改操作

    3.6.1 插入数据

    • 语法格式:

    1)代码准备,创建一个学生表:

    2)向学生表中添加数据,3种方式

    • 方式1: 插入全部字段, 将所有字段名都写出来
    • 方式2: 插入全部字段,不写字段名
    • 方式3:插入指定字段的值

    注意:
      1) 值与字段必须要对应,个数相同数据类型相同
      2)值的数据大小,必须在字段指定的长度范围内
      3)varchar char date类型的值必须使用单引号,或者双引号 包裹。
      4)如果要插入空值,可以忽略不写,或者插入null
      5) 如果插入指定字段的值,必须要上写列名
      

    3.6.2 更改数据

    语法格式1:不带条件的修改

    语法格式2:带条件的修改

    1)不带条件修改,将所有的性别改为女(慎用!!)

    2)带条件的修改,将sid 为3的学生,性别改为男

    3)一次修改多个列, 将sid为 2 的学员,年龄改为 20,地址改为 北京

    3.6.3 删除数据

    语法格式1:删除所有数据

    语法格式2: 指定条件 删除数据

    1)删除 sid 为 1 的数据

    2) 删除所有数据

    3) 如果要删除表中的所有数据,有两种做法
      1. delete from 表名; 不推荐. 有多少条记录 就执行多少次删除操作. 效率低
      2. truncate table 表名: 推荐. 先删除整张表, 然后再重新创建一张一模一样的表. 效率高

    3.7 DQL 查询表中数据

    3.7.1 准备数据

    #创建员工表
    表名 emp
    表中字段:
    eid 员工id,int
    ename 姓名,varchar
    sex 性别,char
    salary 薪资,double
    hire_date 入职时间,date
    dept_name 部门名称,varchar
    #创建员工表
    CREATE TABLE emp(
    eid INT,
    ename VARCHAR(20),
    sex CHAR(1),
    salary DOUBLE,
    hire_date DATE,
    dept_name VARCHAR(20)
    );
    #添加数据
    INSERT INTO emp VALUES(1,'孙悟空','男',7200,'2013-02-04','教学部');
    INSERT INTO emp VALUES(2,'猪八戒','男',3600,'2010-12-02','教学部');
    INSERT INTO emp VALUES(3,'唐僧','男',9000,'2008-08-08','教学部');
    INSERT INTO emp VALUES(4,'白骨精','女',5000,'2015-10-07','市场部');
    INSERT INTO emp VALUES(5,'蜘蛛精','女',5000,'2011-03-14','市场部');
    INSERT INTO emp VALUES(6,'玉兔精','女',200,'2000-03-14','市场部');
    INSERT INTO emp VALUES(7,'林黛玉','女',10000,'2019-10-07','财务部');
    INSERT INTO emp VALUES(8,'黄蓉','女',3500,'2011-09-14','财务部');
    INSERT INTO emp VALUES(9,'吴承恩','男',20000,'2000-03-14',NULL);
    INSERT INTO emp VALUES(10,'孙悟饭','男', 10,'2020-03-14',财务部);
    INSERT INTO emp VALUES(11,'兔八哥','女', 300,'2010-03-14',财务部);

    3.7.2 简单查询

    • 查询不会对数据库中的数据进行修改.只是一种显示数据的方式 SELECT
    • 语法格式
    • select 列名 from 表名
    • 需求1: 查询emp中的 所有数据
    • SELECT * FROM emp; -- 使用 * 表示所有列
    • 需求2: 查询emp表中的所有记录,仅显示id和name字段
    • SELECT eid,ename FROM emp;
    • 需求3: 将所有的员工信息查询出来,并将列名改为中文
    • 别名查询,使用关键字 as
    • # 使用 AS关键字,为列起别名
      SELECT
      eid AS '编号',
      ename AS '姓名' ,
      sex AS '性别',
      salary AS '薪资',
      hire_date '入职时间', -- AS 可以省略
      dept_name '部门名称'
      FROM emp;
    • 需求4:查询一共有几个部门
    • 使用去重关键字 distinct
    • -- 使用distinct 关键字,去掉重复部门信息
      SELECT DISTINCT dept_name FROM emp;
    • 需求5: 将所有员工的工资 +1000 元进行显示
    • 运算查询 (查询结果参与运算)
    • SELECT ename , salary + 1000 FROM emp;

    3.7.3 条件查询

    如果查询语句中没有设置条件,就会查询所有的行信息,在实际应用中,一定要指定查询条件,对记录进行过滤

    语法格式

    select 列名 from 表名 where 条件表达式
    * 先取出表中的每条数据,满足条件的数据就返回,不满足的就过

    运算符

    1) 比较运算符

    运算符 说明
    = = = != 大于、小于、大于(小于)等于、不等于
    BETWEEN ...AND...

    显示在某一区间的值
    例如: 2000-10000之间: Between 2000 and 10000

    IN(集合)

    集合表示多个值,使用逗号分隔,例如: name in (悟空,八戒)
    in中的每个数据都会作为一次条件,只要满足条件就会显示

    LIKE '%张%' 模糊查询
    IS NULL 查询某一列为NULL的值, 注: 不能写 = NULL

    2) 逻辑运算符

    运算符 说明
    And 多个条件同时成立
    Or || 多个条件任一成立
    Not 不成立,取反。

    需求1:

    # 查询员工姓名为黄蓉的员工信息
    # 查询薪水价格为5000的员工信息
    # 查询薪水价格不是5000的所有员工信息
    # 查询薪水价格大于6000元的所有员工信息
    # 查询薪水价格在5000到10000之间所有员工信息
    # 查询薪水价格是3600或7200或者20000的所有员工信息

    代码实现

    # 查询员工姓名为黄蓉的员工信息
    SELECT * FROM emp WHERE ename = '黄蓉';
    # 查询薪水价格为5000的员工信息
    SELECT * FROM emp WHERE salary = 5000;
    # 查询薪水价格不是5000的所有员工信息
    SELECT * FROM emp WHERE salary != 5000;
    SELECT * FROM emp WHERE salary  5000;
    # 查询薪水价格大于6000元的所有员工信息
    SELECT * FROM emp WH# 查询薪水价格在5000到10000之间所有员工信息
    SELECT * FROM emp WHERE salary BETWEEN 5000 AND 10000;
    # 查询薪水价格是3600或7200或者20000的所有员工信息
    -- 方式1: or
    SELECT * FROM emp WHERE salary = 3600 OR salary = 7200 OR salary = 20000;
    -- 方式2: in() 匹配括号中指定的参数
    SELECT * FROM emp WHERE salary IN(3600,7200,20000);ERE salary  6000;

    需求2:

    # 查询含有'精'字的所有员工信息
    # 查询以'孙'开头的所有员工信息
    # 查询第二个字为'兔'的所有员工信息
    # 查询没有部门的员工信息
    # 查询有部门的员工信息

    模糊查询 通配符

    通配符 说明
    % 表示匹配任意多个字符串
    _ 表示匹配 一个字符
    # 查询含有'精'字的所有员工信息
    SELECT * FROM emp WHERE ename LIKE '%精%';
    # 查询以'孙'开头的所有员工信息
    SELECT * FROM emp WHERE ename LIKE '孙%';
    # 查询第二个字为'兔'的所有员工信息
    SELECT * FROM emp WHERE ename LIKE '_兔%';
    # 查询没有部门的员工信息
    SELECT * FROM emp WHERE dept_name IS NULL;
    -- SELECT * FROM emp WHERE dept_name = NULL;
    # 查询有部门的员工信息
    SELECT * FROM emp WHERE dept_name IS NOT NULL;

    内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/128334.html

    (0)

    相关推荐

    • SAP C4C url Mashup的跳转工作原理是什么

      技术SAP C4C url Mashup的跳转工作原理是什么这篇文章给大家介绍SAP C4C url Mashup的跳转工作原理是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一个例子:我在Sa

      攻略 2021年12月3日
    • 避免,自媒体视频如何避免侵权

      技术避免,自媒体视频如何避免侵权首先要对于我们自媒体来说,侵权的范围一般来说就是三类避免:视频类,图片类,字体配乐类。独角shou就因为字体侵权被索赔十几万,损失惨重。不过知名度不高的账号的话,一般不会收到音乐字体类的侵

      生活 2021年10月21日
    • 老板的灵魂提问: 别人家的视频能自动播放为什么你开发的无法自动播放为什么网页上的音视频无法自动播放了

      技术老板的灵魂提问: 别人家的视频能自动播放为什么你开发的无法自动播放为什么网页上的音视频无法自动播放了 老板的灵魂提问: 别人家的视频能自动播放为什么你开发的无法自动播放为什么网页上的音视频无法自动播

      礼包 2021年12月7日
    • 如何理解Solidity的Bytecode和Opcode

      技术如何理解Solidity的Bytecode和Opcode本篇文章为大家展示了如何理解Solidity的Bytecode和Opcode,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收

      攻略 2021年11月23日
    • 如何用Python爬取全网baisi趣图

      技术如何用Python爬取全网baisi趣图今天就跟大家聊聊有关如何用Python爬取全网baisi趣图,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。前言bais

      攻略 2021年10月25日
    • 正则化 Regularization

      技术正则化 Regularization 正则化 Regularization什么是正则化
      凡是减少泛化误差(而不是训练误差)的方法都可以称作正则化
      换句话说,也就是减小过拟合的方法
      范数 Norm
      L

      礼包 2021年10月28日