数据库-MySQL基础-笔记

MYSQL基础语法

学习目标

  1. 能够理解数据库的概念
  2. 能够安装MySQL数据库
  3. 能够启动,关闭及登录MySQL
  4. 能够使用SQL语句操作数据库
  5. 能够使用SQL语句操作表结构
  6. 能够使用SQL语句进行数据的添加修改和删除的操作(掌握)
  7. 能够使用SQL语句简单查询数据(掌握)

学习内容

1.数据库的基本知识

目标

  1. 能够掌握数据库的概念
  2. 能够说出常用的数据库

讲解

什么是数据库

保存数据的仓库。它体现我们电脑中,就是一个软件或者文件系统。然后把数据都保存这些特殊的文件中,并且需要使用固定的语言(SQL语言/语句)去操作文件中的数据。

数据的存储方式

需求:开发一个学生选课系统,学生系统中含有学生信息、老师信息、课程信息。需要将关系和数据进行保存,保存到哪里合适呢?

  1. 数据保存在内存

    Student s = new Student("张三",18,"上海");
    Teacher t = new Teacher("锁哥",19,"上海");
    Course c = new Course("语文",90);
    

    new出来的对象存储在堆中.堆是内存中的一小块空间

    优点:存储速度快
    缺点:断电/程序退出,数据就清除了

  2. 数据使用IO流技术保存在硬盘的普通文件中
    优点:永久保存
    缺点:IO流的查找,增加,修改,删除数据比较麻烦。同时使用IO流技术需要频繁调用系统资源和将系统资源还给系统,这样操作效率比较低

  3. 数据保存在数据库
    优点:永久保存,通过SQL语句比较方便的操作数据库。是方式一和方式二的结合。可以解决上述两种方式的缺点。

数据库的优点

​ 数据库是按照特定的格式将数据存储在文件中,通过SQL语句可以方便的对大量数据进行增、删、改、查操作,数据库是对大量的信息进行管理的高效的解决方案。

常见数据库

​ 我们开发应用程序的时候,程序中的所有数据,最后都需要保存到专业软件中。这些专业的保存数据的软件我们称为数据库。我们学习数据库,并不是学习如何去开发一个数据库软件,我们学习的是如何使用数据库以及数据库中的数据记录的操作。而数据库软件是由第三方公司研发。

Oracle:它是Oracle公司的大型关系型数据库。系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、安全可靠的。但是它是收费的。
MYSQL:早期由瑞典一个叫MySQL AB公司开发的,后期被sun公司收购,再后期被Oracle收购。体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。MySQL6.x版本也开始收费。
DB2 :IBM公司的数据库产品,收费的。常应用在银行系统中.
SQLServer:MicroSoft 公司收费的中型的数据库。C#、.net等语言常使用。
SyBase:Sybase公司的。 已经淡出历史舞台。提供了一个非常专业数据建模的工具PowerDesigner。

常用数据库:Java开发应用程序主要使用的数据库:MySQL(5.6)、Oracle、DB2。
在web应用中,使用的最多的就是MySQL数据库,原因如下:

  1. 开源、免费
  2. 功能足够强大,足以应付web应用开发(最高支持千万级别的并发访问)

小结

  1. 说出数据库的概念:存储数据的仓库
  2. 说出常用的数据库:MYSQL, Oracle,DB2

2.关系型数据库

在开发软件的时候,软件中的数据之间必然会有一定的关系存在。比如商品和客户之间的关系,一个客户是可以买多种商品,而一种商品是可以被多个客户来购买的。

需要把这些数据保存在数据库中,同时也要维护数据之间的关系,这时就可以直接使用上述的那些数据库。而上述的所有数据库都属于关系型数据库。

关系型数据:设计数据库的时候,需要使用E-R实体关系图来描述。

E-R 是两个单词的首字母,E表示Entity 实体 R表示Relationship 关系。

实体:可以理解成我们Java程序中的一个对象。比如商品,客户等都是一个实体对象。在E-R图中使用 矩形(长方形) 表示。

属性:实体对象中是含有属性的,比如商品名、价格等。针对一个实体中的属性,我们称为这个实体的数据,在E-R图中使用椭圆表示。

关系:实体和实体之间的关系:在E-R图中使用菱形表示。

需求: 使用E-R图描述 客户、商品、订单之间的关系。

[外链图片转存失败(img-SVhO8hYi-1562502729884)(img/关系型数据库图解.bmp)]

3.数据库的安装

目标

能够安装mysql数据库软件

讲解

安装过程:

1.在今天的资料下有Mysql的安装包,找到如下所示文件后双击

mysql-installer-community-5.6.22.0.msi

2.双击之后会出现如下图所示界面,询问是否同意,将我同意的选框勾选上,然后点击next,如下:

在这里插入图片描述

3.选择自定义安装,点击下一步

在这里插入图片描述

4.根据电脑配置选择要安装的MySql版本,然后点击next

在这里插入图片描述

在这里插入图片描述

5.如果出现当前界面,则可以配置安装目录,如果出现的不是这个界面请点击Back返回

[外链图片转存失败(img-XPwyHTcS-1562502729887)(img/mysql安装图解5.bmp)]

6.点击back返回后,点击高级选项,配置安装路径,配置成功后点击下一步

[外链图片转存失败(img-NkYljNbp-1562502729887)(img/mysql安装图解6.bmp)]

[外链图片转存失败(img-ZNHRRWv5-1562502729887)(img/mysql安装图解7.bmp)]

说明:安装路径最好不要有中文和空格以及特殊符号。

注意:一定要保证Install Directory和data Directory保存的路径一致,这样才可以保证卸载MySql的时候会很方便。

[外链图片转存失败(img-uKx58gjs-1562502729887)(img/mysql安装图解8.bmp)]

7.当出现绿色对号时表名安装成功,然后点击下一步

[外链图片转存失败(img-1ylmX3sC-1562502729888)(img/mysql安装图解9.bmp)]

8.开始配置mysql,点击下一步

在这里插入图片描述

9.配置MySql开发模式以及端口号相关配置,然后点击下一步

[外链图片转存失败(img-OasCfGdc-1562502729888)(img/mysql安装图解11.bmp)]

说明:MySql默认端口是3306.这里不要修改,我们访问数据库的时候输入端口号3306即可。

10.设置密码账户信息,然后点击next

在这里插入图片描述
11.使用默认配置就可以了,然后点击下一步
在这里插入图片描述

12.日志配置

在这里插入图片描述

13.点击Execute安装
在这里插入图片描述

14.全部画上绿色对勾之后,安装成功点击finish->next->finish

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

15.配置环境变量,找到MySql的安装目录的bin目录下,将路径复制下来

在这里插入图片描述

16.打开电脑的高级设置中的 path 路径,将复制的路径添加进去
在这里插入图片描述

小结

  1. MySQL安装过程的步骤:
    按照上述一步一步安装即可
  2. MySQL端口号是:3306
  3. 管理员名字:root
  4. 将mysql的bin目录配置到path环境变量中

4.命令行客户端连接服务器(测试是否安装成功)

目标

  1. 能够打开和关闭mysql服务
  2. 能够连接到mysql

讲解

1、打开和关闭mysql服务.

查看windows服务 ,mysql数据库是否启动。
在这里插入图片描述
在这里插入图片描述

2、连接mysql

在这里插入图片描述

​ MySQL是一个需要账户名密码登录的数据库,登陆后使用,它提供了一个默认的root账号,使用安装时设置的密码即可登录

  1. 登录格式1:mysql -u用户名 -p密码
    例如:

    mysql -uroot -p1234
    

    在打开的dos窗口中输入mysql -uroot -p命令:

    在这里插入图片描述
    后输入密码方式:

    mysql -u root -p
    下一行输入密码
    

在这里插入图片描述

  1. 登录格式2:

    mysql [-h 连接的主机ip -P端口3306**]** -u 用户名 -p 密码

    例如:

     mysql -h 192.168.1.251 -P 3306 -u root -p 1234 
    

    ​ 如果连接的是本机:可以省略 -h -P 主机IP和端口。这样就可以登录mysql数据库了。

  2. 退出MySQL:exit
    在这里插入图片描述

小结

  1. 打开和关闭mysql服务?
  2. 连接到本机的mysql?mysql -uroot -p1234
  3. 连接到指定主机的mysql? mysql [-h 连接的主机ip -P端口3306**]** -u 用户名 -p 密码

5、图形界面Navicat客户端

目标

  1. 能够掌握Navicat的安装
  2. 能够使用Navicat连接mysql数据库

讲解

在这里插入图片描述

​ 在dos窗口中使用sql语句操作mysql数据库相对来说,太麻烦了,我们在实际开发中不会使用dos窗口来操作的,一定要使用可视化工具来操作mysql数据库,而会有多种可视化工具来操作mysql数据库,比如:Navicat、SQLyog等。我们这里使用Navicat可视化工具。

  1. 解压和双击

在这里插入图片描述

  1. 双击 安装软件一路下一步安装(注意要记住自己的安装路径!!!)

  2. 安装完成后 双击注册机

在这里插入图片描述

​ 4.找到Nacicat下的启动软件

在这里插入图片描述
​ 5.点击打开后,显示OK 激活成功!

在这里插入图片描述

​ 6.然后点击关闭即可。

​ 7.如果是第一次使用,会弹出一个提示框,开机检查更新,我们不需要更新。

在这里插入图片描述

​ 8.关闭之后,点击软件左上角的连接按钮,选中MySql:

在这里插入图片描述

​ 9.使用Navicat登录数据库

在这里插入图片描述

小结

  1. Navicat的安装? 一直下一步
  2. 使用Navicat连接mysql? 在链接界面输入数据账号,密码,端口号
  3. 如果ip地址是localhost连接不上数据库,可以使用127.0.0.1尝试

6、卸载

1、找到mysql的安装目录:在mysql的安装目录中。找到my.ini 文件。

找到datadir 并且记录路径。

datadir="D:/MySoft/MySql2/data/Data/"

说明:

​ 1)datadir路径是用来保存mysql的数据文件的目录,以后我们向Mysql数据库存储的数据都会存放到这个路径;

​ 2)在安装数据库的时候,要求这个路径的下的data文件夹要和数据库在同一文件夹下,这样在卸载的时候会比较方便,直接删除即可。如果没有安装到同一目录,那么找到该data文件夹进行删除;

2、在电脑左下角window图标处-----》右键----》选择控制面板;

3、找到程序和功能;

4、找到Mysql---->卸载mysql

5、删除mysql的安装目录,删除mysql的数据文件目录datadir.第一步中记录的文件目录。

注意:mysql默认的数据文件目录,在ProgramData这个目录下,并且ProgramData这个目录是隐藏目录,需要设置显示隐藏目录。

删除ProgramData下的mysql的相关目录。

6、打开运行窗口-----》输入regedit----》打开注册表-----》删除

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application\MySQL文件夹

注意:一般情况下执行前5步即可,如果还不能安装,就执行步骤6,运行regedit,试着删除注册表中的数据,或者也可以使用360或者安全管家清理垃圾试试。

7、服务器与数据库、表、记录的关系

目标

能够理解mysql服务器与数据库、表、记录的关系

讲解

在这里插入图片描述

实体类与表的对应关系

[外链图片转存失败(img-dR6nLIY7-1562502729895)(img/%E5%AE%9E%E4%BD%93%E7%B1%BB%E4%B8%8E%E8%A1%A8%E7%9A%84%E5%AF%B9%E5%BA%94%E5%85%B3%E7%B3%BB.png)]

在这里插入图片描述

说明:

1、一个数据库软件可以安装多个数据仓库,数据仓库可以简称为数据库,在数据库中创建数据表来保存数据。

2、数据库的一行称为记录,可以理解成java实例化后的一个对象。

3、数据库的一列称为字段,理解成java类中的属性。

4、一个数据仓库中是可以有多张表的。

未来关于数据库我们学习的目标:

1)对数据库进行增删改查(CRUD);(主要对整个数据库进行操作,比如删除一个数据库和增加一个数据库)。create(增) read(查) update(改) delete(删)

2)对数据表结构进行增删改查(CRUD);(主要对整张表,比如删除一张表和增加一张表)。

3)对表中的数据进行增删改查(CRUD);(主要对表中的具体数据,比如删除一个表中的一行记录和增加一行数据)。

注意:关于对数据库表的操作,查询是开发中最难的,也是最重要的;

小结

一个数据库软件,可以管理多个数据仓库(数据库)。

一个数据仓库可以管理多张数据表。

每个数据表中可以存储多行数据记录。

提示:每创建一个数据仓库,会在mysql的数据文件目录(data)中多一个文件夹。

8、SQL语句的分类和语法

目标

  1. 能够掌握SQL的概念和作用

讲解

什么是SQL

Structured Query Language结构化查询语言。SQL语句不依赖于任何平台,对所有的数据库是通用的。学会了SQL语句的使用,可以在任何的数据库使用,但都有特有内容。SQL语句功能强大、简单易学、使用方便。

SQL特点

SQL语句是一个非过程性的语言,每一条SQL执行完都会有一个具体的结果出现。多条语句之间没有影响。

过程性语言:例如java。

int a = 10;

int b = 20;

int sum = a +b;

SQL作用

SQL语句主要是操作数据库,数据表,数据表中的数据记录。

SQL语句分类

SQL是用来存取关系数据库的语言,具有定义、操纵、控制和查询关系型数据库的四方面功能。所以针对四方面功能,我们将SQL进行了分类。

  1. DDL(Data Definition Language)数据定义语言
    用来定义数据库对象:数据库,表,列等。关键字:create drop alter truncate(清空数据记录) show等

  2. DML(Data Manipulation Language)数据操作语言★★★

    在数据库表中更新,增加和删除记录。如 update(更新), insert(插入), delete(删除) 不包含查询

  3. DQL(Data Query Language) 数据查询语言★★★★★
    数据表记录的查询。关键字select。

  4. DCL(Data Control Language)数据控制语言(了解)

    是用来设置或更改数据库用户或角色权限的语句,如grant(设置权限),revoke(撤销权限),begin transaction等。这个比较少用到。

SQL学习方向

我们学习SQL语句的路线:

1、学习SQL数据对数据库的操作;

2、学习SQL语句对数据表整体结构的操作;

3、学习SQL语句对数据表中的数据记录操作(★★★★★);

4、数据仓库中的数据备份和恢复;

SQL通用语法
  1. SQL语句可以单行或多行书写,以分号结尾。

  2. 可使用空格和缩进来增强语句的可读性。

  3. MySQL数据库的SQL语句不区分大小写,关键字开发中一般大写。

    SELECT * FROM student;
    
  4. 3种注释
    单行注释: – 注释内容
    多行注释: /* 注释 */

    # 注释内容(mysql特有的单行注释)

小结

  1. SQL的作用?对数据库进行操作的语句,增删改查
  2. SQL的分类?
    DDL:操作数据和表
    DML:对表中的记录进行增删改
    DQL:对表中的记录进行查询
  3. SQL的语法特点?
    可以写一行,也可以写成多行,最好是以;结尾
    关键字建议大写
    可以任意缩进
    单行注释: – 开头 # 开头
    多行注释: /* */

9、DDL创建数据库

目标

能够掌握创建数据库的三种语法

讲解

创建数据库
  1. 直接创建数据库

    CREATE DATABASE 数据库名;
    
  2. 判断是否存在并创建数据库

    CREATE DATABASE IF NOT EXISTS 数据库名;
    
  3. 创建数据库并指定字符集(编码表)

    CREATE DATABASE 数据库名 character set 字符集;
    
  4. 具体操作:

  • 直接创建数据库db1
    CREATE DATABASE db1;
    

在这里插入图片描述

  • 判断是否存在并创建数据库db2
    CREATE DATABASE IF NOT EXISTS db2;
    

在这里插入图片描述

  • 创建数据库db3并指定字符集为gbk
    CREATE DATABASE db2 CHARACTER SET gbk;
    

在这里插入图片描述

查看数据库
  1. 查看所有的数据库
SHOW DATABASES;

在这里插入图片描述
2. 查看某个数据库的定义信息

SHOW CREATE DATABASE 数据库名;

在这里插入图片描述

小结

  1. 创建数据库语法:CREATE DATABASE 数据库名;
  2. 查看有哪些数据库:SHOW DATABASES;

10、DDL修改和删除数据库

目标

  1. 能够修改数据库的字符集
  2. 能够删除数据库

讲解

修改数据库字符集
ALTER 表示修改
ALTER DATABASE 数据库 default character set 新的字符集;

具体操作:

  • 将db3数据库的字符集改成utf8

    ALTER DATABASE db3 DEFAULT CHARACTER SET utf8;
    

    注意:如果修改数据库指定的编码表是utf8,记住不能写utf-8.。utf-8 是错误的

    (mysql不认识utf-8)。

    java中的常用编码 : UTF-8; GBK;GB2312;ISO-8859-1;

    对应mysql数据库中的编码: utf8; gbk;gb2312; latin1;

在这里插入图片描述

删除数据库
drop --表示删除数据库或表
DROP DATABASE 数据库名;

具体操作:

  • 删除db2数据库
    DROP DATABASE db2;
    

在这里插入图片描述

小结

  1. 修改数据库的字符集格式?alter database 数据库 character set 新的字符集;
  2. 删除数据库格式?drop database 数据库名;

11、DDL使用数据库

目标

  1. 能够掌握切换数据库语法
  2. 能够查看正在使用的数据库

讲解

  1. 查看正在使用的数据库

    select -- 查询
    SELECT DATABASE();
    
  2. 使用/切换数据库

    USE 数据库名;
    

具体操作:

  • 查看正在使用的数据库
    SELECT DATABASE();
    

在这里插入图片描述

  • 使用db1数据库
    USE db1;
    
    在这里插入图片描述

小结

DDL语句操作关键字
创建create database 数据库名;
修改alter database character set 字符集;
查看show databases;
删除drop database 数据库名;

12、DDL创建表

目标

  1. 能够掌握SQL创建表

讲解

前提先使用某个数据库(db1)

创建表
CREATE TABLE 表名 (字段名1 字段类型1, 字段名2 字段类型2...);

建议写成如下格式:

javase
public class Student{
	int age;
}
CREATE TABLE 表名 (
    字段名1 字段类型1, 
    字段名2 字段类型2
);

关键字说明:

CREATE -- 表示创建
TABLE -- 表示表
MySQL数据类型

MySQL中的我们常使用的数据类型如下:
在这里插入图片描述

详细的数据类型如下(不建议详细阅读!)

在这里插入图片描述

具体操作:

创建student表包含id,name,birthday字段

CREATE TABLE student (
      id INT,
      name VARCHAR(20),
      birthday DATE
);

小结

  1. 创建表语句:CREATE TABLE 表名 (字段名 类型, 字段名 字段类型…);
  2. 常用数据类型:int, double, varchar, date

13、DDL查看表

目标

  1. 能够查看某个数据库中的所有表
  2. 能够查看表结构

讲解

  1. 查看某个数据库中的所有表

    SHOW TABLES;
    
  2. 查看表结构

    DESC 表名;
    
  3. 查看创建表的SQL语句

    SHOW CREATE TABLE 表名;
    

具体操作:

  • 查看mysql数据库中的所有表
    SHOW TABLES;
    

在这里插入图片描述

  • 查看student表的结构
    DESC student;
    
    在这里插入图片描述
  • 查看student的创建表SQL语句
    SHOW CREATE TABLE student;
    

在这里插入图片描述

小结

  1. 查看某个数据库中的所有表:show tables;
  2. 查看表结构:desc 表名;
  3. 查看创建表的SQL语句:show create table 表名;

14、DDL删除表

目标

  1. 能够掌握删除表语法
  2. 能够掌握快速创建一个表结构相同的表

讲解

快速创建一个表结构相同的表
CREATE TABLE 表名 LIKE 其他表;

具体操作:

  • 创建s1表,s1表结构和student表结构相同

    CREATE TABLE s1 LIKE student;
    
删除表
  1. 直接删除表

    DROP TABLE 表名;
    
  2. 判断表是否存在并删除表

    DROP TABLE IF EXISTS 表名;
    

具体操作:

  • 直接删除表s1表
    DROP TABLE s1;
    
    在这里插入图片描述
  • 判断表是否存在并删除s1表
    DROP TABLE IF EXISTS s1;
    

在这里插入图片描述

小结

  1. 快速创建一个表结构相同的表:CREATE TABLE 表名 LIKE 其他表;
  2. 删除表语法:DROP TABLE 表名;

15、DDL修改表结构(了解)

目标

能够掌握修改表结构的语法

讲解

修改表结构使用不是很频繁,只需要了解,等需要使用的时候再回来查即可

  1. 添加表列

    ALTER TABLE 表名 ADD 字段名/列名 类型;
    

    具体操作:

    • 为学生表添加一个新的字段remark,类型为varchar(20)
      ALTER TABLE student ADD remark VARCHAR(20);
      

在这里插入图片描述

  1. 修改列类型

    ALTER TABLE 表名 MODIFY 字段名 新的类型;
    

    具体操作:

    • 将student表中的remark字段的改成varchar(100)
      ALTER TABLE student MODIFY remark VARCHAR(100);
      

    在这里插入图片描述

  2. 修改列名

    ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型;
    

    具体操作:

    • 将student表中的remark字段名改成intro,类型varchar(30)
      ALTER TABLE student CHANGE remark intro varchar(30);
      
      在这里插入图片描述
  3. 删除列

    ALTER TABLE 表名 DROP 字段名;
    

    具体操作:

    • 删除student表中的字段intro
      ALTER TABLE student DROP intro;
      

    在这里插入图片描述

  4. 修改表名

    RENAME TABLE 旧表名 TO 新表名;
    

    具体操作:

    • 将学生表student改名成student2.
       RENAME TABLE student TO student2;
      
      在这里插入图片描述
  5. 修改字符集

    ALTER TABLE 表名 character set 字符集;
    

    具体操作:

    • 将sutden2表的编码修改成gbk
      ALTER TABLE student2 character set gbk;
      
      在这里插入图片描述

小结

  1. 所有修改表前面的语法都是相同的?ALTER TABLE 表名
  2. 添加一列:add 字段名 类型
  3. 修改类型:modify 字段名 新的类型
  4. 修改字段名和类型:change 旧字段名 新字段名 类型
  5. 删除一列:drop 字段名

16、使用Navicat操作数据库

目标

使用navicat操作数据库

讲解

​ 在dos窗口中使用sql语句操作mysql数据库相对来说,太麻烦了,我们在实际开发中不会使用dos窗口来操作的,一定要使用可视化工具Navicat来操作mysql数据库的。而上述我们为了简单熟悉sql语句,所以一直在dos窗口中操作mysql,而接下来我们要在navicat中操作mysql数据库了。

1.简单熟悉下可视化工具navicat。

[外链图片转存失败(img-8LMryT42-1562502729901)(img/熟悉使用navicat1.bmp)]

2.一般的可视化工具,都能从界面看到 数据库-》数据库表-》表数据。

[外链图片转存失败(img-N3kjujGz-1562502729901)(img/熟悉使用navicat2.bmp)]

3.在可视化工具中可以编写sql语句运行

[外链图片转存失败(img-5mLEnWAQ-1562502729901)(img/熟悉使用navicat3.bmp)]

查询结果:

[外链图片转存失败(img-cN0YiE1k-1562502729902)(img/熟悉使用navicat4.bmp)]

4.在可视化工具中给内容添加注释快捷键是:ctrl+/

5.运行选中的行的快捷键 ctrl + shift + r

17、DML插入记录(重点)

目标

能够掌握往表中添加记录

讲解

创建student表包含id,name,age,birthday,sex,address字段。

CREATE TABLE student (
      id INT,
      name VARCHAR(20),
      age int,
      birthday DATE,
      sex char(2),
      address varchar(50)
);
插入全部字段
  • 所有的字段名都写出来

    INSERT -- 表示往表里插入记录
    INSERT INTO 表名 (字段名1, 字段名2...) VALUES (字段值1, 字段值2...);
    
  • 不写字段名

    INSERT INTO 表名 VALUES (字段值1, 字段值2...);
    
插入部分数据
INSERT INTO 表名 (字段名1, 字段名2...) VALUES (字段值1, 字段值2...);

没有添加数据的字段会使用NULL

  1. 关键字说明

    INSERT INTO 表名 – 表示往哪张表中添加数据
    (字段名1, 字段名2,)  --  要给哪些字段设置值
    VALUES (1,2,); -- 设置具体的值
    注意:使用   select * from 表名 --查看该表的所有信息。
    
  2. 具体操作:

    • 插入部分数据,往学生表中添加 id, name, age, sex数据
    INSERT INTO student (id, name, age, sex) VALUES (1, '张三', 20, '男');
    

在这里插入图片描述

  • 向表中插入所有字段
    • 所有的字段名都写出来
     INSERT INTO student (id, name, age, sex, address) VALUES (2, '李四',  23, '女', '广州');
    

在这里插入图片描述

 * 不写字段名
 ```sql
 INSERT INTO student VALUES (3, '王五', 18, '男', '北京');
 ```

在这里插入图片描述

注意
  • 值与列一一对应。有多少个列,就需要写多少个值。如果某一个列没有值。可以使用null。表示插入空。
  • 值的数据类型,与列被定义的数据类型要相匹配。并且值的长度,不能够超过定义的列的长度。
  • 字符串:插入字符类型的数据,建议写英文单引号括起来。在mysql中,使用单引号表示字符串
  • date 时间类型的数据也得使用英文单引号括起来: 如’yyyy-MM-dd’,’yyyy/MM/dd’

小结

1.向表中添加一条完整记录:
所有的字段都写出来: INSERT INTO 表名 (字段1, 字段2, …) VALUES (值1, 值2, …);

insert into student(id,name,birthday,sex,address) values(1,"幂幂",'2000-10-10','女','上海');

2.不写字段名: INSERT INTO 表名 VALUES (值1, 值2, …);

insert into student values(3,'冰冰',null,'女','北京');

3.向表中添加一条记录部分列:必须写字段名,否则不知道添哪个字段.
INSERT INTO 表名 (字段1, 字段2, …) VALUES (值1, 值2, …);

insert into student(id,name,address) values(2,'岩岩','湖南');

18、DML更新表记录

目标

能够掌握更新表记录

讲解

  1. 不带条件修改数据

    UPDATE 表名 SET 字段名=新的值,字段名=新的值,..;
    
  2. 带条件修改数据

    UPDATE 表名 SET 字段名=新的值,字段名=新的值,.. WHERE 条件
    
  3. 关键字说明

    UPDATE: 表示修改记录 
    SET: 要改哪个字段
    WHERE: 设置条件
    
  4. 具体操作:

    • 不带条件修改数据,将所有的性别改成女

      UPDATE student SET sex='女';
      

      在这里插入图片描述

    • 带条件修改数据,将id号为2的学生性别改成男

      UPDATE student SET sex='男' WHERE id=2;
      

    在这里插入图片描述

    • 一次修改多个列,把id为3的学生,年龄改成26岁,address改成北京
      UPDATE student SET age=26, address='北京' WHERE id=3;
      

    在这里插入图片描述

小结

  1. 不带条件的更新数据库记录:UPDATE TABLE SET 字段名=新的值;
  2. 带条件:UPDATE TABLE SET 字段名=新的值 WHERE 条件;

19、DML删除表记录

目标

能够掌握删除表记录

讲解

  1. 不带条件删除数据

    DELETE -- 删除记录
    DELETE FROM 表名;
    
  2. 带条件删除数据

    DELETE FROM 表名 WHERE 条件;
    
  3. truncate删除表记录

    TRUNCATE TABLE 表名;
    

    truncate和delete的区别:

    • delete是将表中的数据一条一条删除
    • truncate是将整个表摧毁,重新创建一个新的表,新的表结构和原来表结构一模一样
      在这里插入图片描述
  4. 具体操作:

    • 带条件删除数据,删除id为3的记录
      DELETE FROM student WHERE id=3;
      

    在这里插入图片描述

    • 不带条件删除数据,删除表中的所有数据
      DELETE FROM student;
      

在这里插入图片描述

小结

  1. 指定条件删除:DELETE FROM 表名 WHERE 条件;
  2. 没有条件删除所有的记录:DELETE FROM 表名;
  3. 删除表结构再创建表:TRUNCATE TABLE 表名;

20、DQL没有条件的简单查询

目标

能够掌握简单查询

讲解

注意:查询不会对数据库中的数据进行修改,只是一种显示数据的方式。

查询表中所有列数据
  1. 写出查询每列的名称
SELECT -- 表示查询
SELECT 字段名1, 字段名2, ... FROM 表名;

具体操作:

SELECT id, name ,age, sex, address FROM student;

在这里插入图片描述

  1. 使用*表示所有列

    SELECT * FROM 表名;
    

    具体操作:

    SELECT * FROM student;
    

    在这里插入图片描述

查询表中指定列数据

查询指定列的数据,多个列之间以逗号分隔

SELECT 字段名1, 字段名2 FROM 表名;

具体操作:
查询student表中的name 和 age 列

SELECT name, age FROM student;

在这里插入图片描述

别名查询
  1. 查询时给列、表指定别名需要使用AS关键字

  2. 使用别名的好处是方便观看和处理查询到的数据
    SELECT 字段名1 AS 别名, 字段名2 AS 别名... FROM 表名;
    SELECT 字段名1 AS 别名, 字段名2 AS 别名... FROM 表名 AS 表别名;
    注意:

    查询给表取别名目前还看不到效果,需要到多表查询的时候才能体现出好处
    AS关键字可以省略

  3. 具体操作:

    • 查询sudent表中name 和 age 列,name列的别名为”姓名”,age列的别名为”年龄”
    SELECT NAME AS 姓名, age AS 年龄 FROM student;
    

    在这里插入图片描述

清除重复值
  1. 查询指定列并且结果不出现重复数据

    SELECT DISTINCT 字段名 FROM 表名;
    
  2. 具体操作:

    • 查询address列并且结果不出现重复的address
    SELECT DISTINCT address 城市 FROM student;
    

    在这里插入图片描述

查询结果参与运算
  1. 某列数据和固定值运算

    SELECT 列名1 FROM 表名;
    SELECT 列名1 + 固定值 FROM 表名;
    
  2. 某列数据和其他列数据参与运算

    SELECT 列名1 + 列名2 FROM 表名;
    

    注意: 参与运算的必须是数值类型

  3. 需求:

    • 添加数学,英语成绩列,给每条记录添加对应的数学和英语成绩
    • 查询的时候将数学和英语的成绩相加
  4. 实现:

  • 修改student表结构,添加数学和英语成绩列
    ALTER TABLE student ADD math INT;
    ALTER TABLE student ADD english INT;
    
  • 给每条记录添加对应的数学和英语成绩
    在这里插入图片描述
  • 查询math + english的和
    SELECT math + english FROM student;
    

在这里插入图片描述

结果确实将每条记录的math和english相加,但是效果不好看

  • 查询math + english的和使用别名”总成绩”
    SELECT math + english 总成绩 FROM student;
    

在这里插入图片描述

  • 查询所有列与math + english的和并使用别名”总成绩”
    SELECT *, math + english 总成绩 FROM student;
    

在这里插入图片描述

  • 查询姓名、年龄,将每个人的数学增加10分
    SELECT name, math + 10 FROM student;
    

小结

  1. 简单查询格式:SELECT 字段名,字段名… FROM 表名;
  2. 定义别名:SELECT 字段名 AS 别名 FROM 表名;
  3. 去除重复行:SELECT DISTINCT 字段名 FROM 表名;
  4. 数值列,可以进行计算,不会影响表中数据
DML和简单DQL语句操作关键字
添加INSERT INTO 表名 (字段名…) VALUES (值…);
修改UPDATE 表名 SET 字段名=新的值 ,字段名=新的值…WHERE 条件;
删除DELETE FROM 表名 WHERE 条件; truncate table 表名
查询SELETE 字段名,字段名 FROM 表名;

21、蠕虫复制

目标

了解蠕虫复制

讲解

什么是蠕虫复制:在已有的数据基础之上,将原来的数据进行复制,插入到对应的表中
语法格式:

insert into 表名1 select * from 表名2;

作用:将表名2中的数据复制到表名1

具体操作:

  • 创建student2表,student2结构和student表结构一样
create table student2 like student;
  • 将student表中的数据添加到student2表中
insert into student2 select * from student;

注意:如果只想复制student表中name,age字段数据到student2表中使用如下格式
insert into student2(name, age) SELECT name, age FROM student;
在这里插入图片描述

总结

  1. 能够理解数据库的概念
    存储数据的仓库
  2. 能够安装MySQL数据库
    一直下一步:解压,复制
    配置MYSQL服务器:下一步
  3. 能够启动,关闭及登录MySQL
    在服务里面找到MySql,右键启动/关闭
    登录MySQL: mysql -uroot -proot
  4. 能够使用SQL语句操作数据库
    创建数据库: CREATE DATABASE 数据库名;
    查看所有数据库: SHOW DATABASES;
    删除数据库: DROP DATABASE 数据库名;
    切换数据库: USE 数据库名;
  5. 能够使用SQL语句操作表结构
    创建表: CREATE TABLE 表名 (字段名 类型, 字段名 类型, …);
    查看所有表: SHOW TABLES;
    修改表: ALTER TABLE 表名;
    添加一列: ADD 字段名 类型
    修改字段类型: MODIFY 字段名 新的类型;
    修改字段名: CHANGE 旧字段名 新字段名 新的类型;
    删除一列: DROP 字段名;
    修改表名: REANME TABLE 表名 TO 新表名
    删除表: DROP TABLE 表名;
  6. 能够使用SQL语句进行数据的添加修改和删除的操作
    添加数据: INSERT INTO 表名 (字段名) VALUES (值);
    修改数据: UPDATE 表名 SET 字段名=新的值 WHERE 条件;
    删除数据: DELETE FROM 表名 WHERE 条件;
  7. 能够使用SQL语句简单查询数据
    SELECT 字段名1, 字段名2, … FROM 表名;
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值