数据库——Mysql基础(含数据表和数据库的增删改)

数据库——Mysql基础

  • MySql的基础概念
    • MySql的安装
    • 数据库管理系统
  • SQL
    • 数据库操作
      • 数据库创建和查看
      • 数据库修改和删除
    • 数据表操作
      • 数据表的创建
        • mysql的数据类型
        • char与varchar的区别
        • 主键和主键的特征
        • 自动增长 auto_increment
        • 注释 comment
        • null与not null 空与非空
        • 总结
        • 例题
      • 删除表
      • 数据表数据的删除
      • drop与delete的区别
      • 数据表本身的修改
      • 数据表中数据的插入
      • 数据表中数据的修改
        • 插入表的例题

MySql的基础概念

  • 数据库:英文是DataBase,就是存储和管理数据的仓库
  • 其本质是一个文件系统,还是以文件的方式将数据保存在电脑上
  • 使用数据库的原因
    • 内存存储方式,优点是速度快,缺点是不能够永久保存,数据是临时状态的
    • 文件存储方式,优点是可以永久保存,缺点是使用I/O流操作文件,不方便
    • 数据库:数据可以永久保存;方便存储和管理数据;使用统一的方式操作数据。缺点是占用资源,有些数据库需要付费(Oracle)
  • 数据库可以实现对数据的增加,删除,修改和查询操作
  • 常见的数据库:
    • MySql:开源边飞的数据库,因为开元,运作简单的特点,常作为中小型的项目的数据库首选
    • Oracle数据库:收费的大型数据库,Oracle公司的核心产品,安全性高,MySql和Oracle属于一家公司
    • DB2:IMB公司的数据库产品,收费的超大型数据库是,常在银行系统中使用
    • SQL Sever:微软公司收费的中型数据库,C#和.net等语言常常使用,但是这个数据库只能在Windows上运行,扩展性,稳定性和性能都平平
  • 选择MySql的原因:功能强大,足以应付Web的应用开发;开源和免费

MySql的安装

  • MySql安装
  • MySql的删除,需要在控制面板中删除MySql之后,再手动去安装路径下,删除残留的文件
  • 环境变量的配置
    • 复制MySql的安装路径
    • 此电脑——属性——高级设置——环境变量——新建系统变量(MYSQL_HOME)并粘贴路径,然后将路径粘贴到path中保存即可
    • 确认配置成功的方式是,mysql -u用户名 -p密码,可登录
  • mysql的启动和关闭
    • windows的计算机管理中,找到mysql程序,在状态栏中修改mysql的状态即可(停止/启动),如下图
  • 命令行方式关闭mysql
net stop mysql57#(157是版本号,请根据实际情况填写),停止
net start mysql57
  • 命令行方式登录数据库
    • mysql登录数据库需要用户名和密码,登录之后,他提供了一个root账号,使用安装时的密码即可登录
mysql -u 用户名 -p 密码#使用指定的用户名和密码登录当前计算机中的MySql数据库
mysql -h 主机IP -u 用户名 -p 密码 #-h指定IP方式进行登录
exit #退出命令
  • SQLyog的介绍
    • SQLyog时一款高洁见效,功能强大的图形话MySql数据库管理工具,使用SQLyog可以快速直观的让您从世界的任何角落通过网络来维护远程的MySQL数据库
    • 安装方式:下载安装包,根据板闸u难过指引安装即可
  • Mysql安装目录结构(Program Files)
    • 打开mysql的安装目录后,会看到bin,docs,include,lib和share5个文件夹
    • bin:放置一些可执行文件,例如.exe文件
    • docs:文档
    • include:包含(头)文件
    • lib:依赖库文件
    • share:用于存放字符集,语言等细腻下
  • mysql的配置文件与数据库、数据表所在的目录,包含以下目录(ProgramData)
    • Data:数据库和数据表的信息
    • my.ini:mysql配置文件

数据库管理系统

  • 数据库管理系统:是一种操作和管理维护数据库的大型软件,MySql那就是一个数据库管理软件,安装了MySql的电脑叫做数据库服务器
  • 数据库管理系统的作用:用于建立、使用、维护数据库,对数据库进行统一的管理
  • 数据库管理系统、数据库和表之间的关系
    • mysql中管理者很多个数据库,在实际开发环境中,一个数据库一般 对应了一个应用,数据库当中保存着许多表,每个表对应不同的业务,表中保存着业务的数据信息

SQL

  • SQL:结构化查询语言的简称,是一种特殊目的的变成语言,是一种数据库查询和程序设计语言,用于存储数据以及查询、更新和管理数据库系统
  • SQL的作用:
    • 是所有关系性数据库的统一查询规范,不同的关系型数据库都支持SQL
    • 所有的关系型数据库都可以使用SQL
    • 不同的数据库之间的SQL有一些区别方言
  • SQL通用的语法
    • SQL语句可以单行或者多行书写,以分号结尾,例如show databases;
    • 可以使用空格和锁进来增加逾矩的可读性
    • MySql中使用SQL不区分大小写,一般关键字大写,数据库名,表名,列名小写
    • 注释方式:
  • -- 空格 ,属于单行注释
    • /* */,多行注释
    • # mysql特有的单行注释
  • SQL的分类
    • 数据定义语言:简称DDL,用来拿定义数据库对象,例如数据库,表,列等
    • 数据操作语言,简称DML,用来对数据库中的表进行更新
    • 数据查询语言:简称DQL,用来查询数据表中的记录
    • 数据控制语言,简称DCL,用来定义数据库的访问权限,安全级别和创建用户

数据库操作

数据库创建和查看

  • 方法一:
    • 语法:create database 数据库的名称;
    • 例如:eg:创建前程贷的数据库:create database future;
    • 通过这种方式创建的数据库,编码是latinl 编码数据库——Mysql基础(含数据表和数据库的增删改)_第1张图片
  • 创建数据库之后,从上图可以看出,mysql有四个默认的数据库
    • information_schema:信息数据库,主要保存的是其他数据库的信息
    • mysql:mysql核心数据库,保存的是用户和权限
    • performance_schema 保存性能相关的数据,监控mysql的性能
    • sys:记录了DBA所需要的一些信息,更方面的让DBA快速了解数据库的运行情况(DBA:数据库管理员)
  • 方法二:指定字符集的方式创建数据库(utf-8)
  • create database 数据库的名称 character set utf8;
  • 查看数据库
    • 切换数据库:use 数据库名称;
    • 查询当前正在使用的数据库:select database();
    • 查询mysql中有哪些数据库:show database();
      数据库——Mysql基础(含数据表和数据库的增删改)_第2张图片

数据库修改和删除

  • 修改数据库的字符集语法格式:
alter database 数据库名 character set utf8;
#查询当前数据库的信息
show create database 数据库名;

数据库——Mysql基础(含数据表和数据库的增删改)_第3张图片

  • 删除数据库:drop database 数据库名称
    • 将数据库从mysql中永久的删除

数据表操作

数据表的创建

  • 数据表的创建,语法
create table <表名> (<字段名1><类型1>,<字段名2><类型2>,......<字段名n><类型n>) DEFAULT CHARSET=utf8

在这里插入图片描述

  • 例:创建一张表member,字段名有ID int型;reName char型和mobliephone int型在这里插入图片描述
  • 快速创建一个和表1的表结构相同的表
    • 语法:creat table 新表名称 like 旧表名称;
    • 查看表结构,语法:desc 表名;
    • 查看数据库中所有的数据表:show tables;
    • 查看创建表的sql语句:show creat table 表名;

mysql的数据类型

  • 整型
    • tinyint 占一个字节的整型
    • ikb=1024个字节 -128~127
    • int 占4个字节
  • 字符串型:既可以代表单个字符,也可以代表字符串
    • char(n):固定长度的一个字符串型,n代表多少个字符,最多为255个
    • varchar(n):可变长度的字符串类型,n代表多少个字符,最多可有65535,可变长度
  • 时间和日期类型
    • date :日期,格式(yyy[年份]-mmm[月份]-dd[天数]) eg:2016-08-22)
    • time : 时间,格式(hh[小时]:mm[分钟]:ss[秒])eg:2016-08-22 18:41:27
  • 4>浮点型:小数
    • float(m,d) :单精度浮点型,m代表总位数(小数点前面和小数点后面的总位数,不包括小数点),d为小数位(代表小数点后面的位数) eg:99.99声明的类型为float(4,2)
    • double(m,d):双精度浮点型,64bit,m代表总位数,d代表小数位
    • decimal(m,d):m代表总位数,d代表小数位,decimal数据类型用于精度要求非常高的计算中,例如decimal(7,3)规定了存储值不会超过7位数字,并且小数点后面不超过3位
    • 【三者间的区别】从上打下,数据精度越来越高

char与varchar的区别

存储hello字符串,使用char(10)去存储字符串,hello实际的存储长度为10;
使用varchar(10)去存储hello字符串,实际类型键的长度为5。
具体来说,使用char类型来存储是以n来决定字符串的长度,
而varchar来存储时,是根据字符串的实际长度来进行存储的,n是创建表的时候自己规定的长度       

主键和主键的特征

  • 主键字段存储的值不能重复,因此主键可以唯一标识一行数据
  • 一个表只能有一个主键
  • 主键是非必须的,也就是说一个表可以不声明主键字段
  • 设置主键的语法:<字段名><类型> primary key;
  • 注意:主键值生成策略:(不能重复)
  • 输入相同的主键数据信息,会出现以下提示,这个提示代表主键是不能重复的数据库——Mysql基础(含数据表和数据库的增删改)_第4张图片
  • 要主键的原因是,在对数据库进行增删改查的时候,可以通过唯一的标识去寻找

自动增长 auto_increment

  • 自动增长的表,自动在当前主键字段值最大的基础上加上1,详见下图数据库——Mysql基础(含数据表和数据库的增删改)_第5张图片
  • 例题:
    • 1.创建一个表student2 ,表的字段有:ID,类型为int,主键;Sname,类型为char;phone,类型为int;address,类型为varchar(50)
    • 2.创建一个表member3,表的字段有:ID,类型为int,主键,自动增长;regName,类型为char;mobilephone,类型为int
      在这里插入图片描述

注释 comment

  • 在sql中,中文为字符串,需要加英文的单引号
  • 例子:创建一个表member4 ,表的字段有:id 类型为int,主键,自动增长,注释为学号;regName,类型为char,注释为姓名;mobilephone,类型为int,注释为电话

null与not null 空与非空

  • 字段默认为null,当字段写明非空(not null)的时候,在插入数据的时候,不能不插入数据数据库——Mysql基础(含数据表和数据库的增删改)_第6张图片

总结

  • 创建表声明字段的时候,字段之间以什么符号进行分隔?符号用中文的可以吗?
    答:使用英文输入法“,”进行分隔,不能使用中文
  • 建表声明字段的时候,最后一个字段后面需要注意什么?
    答:需要加上小括号和分号
  • 主键的特征是什么?
    答:标识唯一性
  • 如果表需要支持中文数据存储,需要怎么做?
    答:DEFAULT CHATSET=utf8
  • 创建了表,发现表没有出现,可以刷新一下表
  • navicat里sql写完了丢失,是因为没有保存
  • 学会分析错误:err

例题

  • 写出下面5张表的创建表语句:




删除表

  • 从数据库永久删除一张表:语法: drop table 表名;
  • 判断表是否存在,如归存在就删除,不存在,不执行
    • 语法:drop table if exists 表名

数据表数据的删除

  • 删除表中所有的数据,语法1:delete from 表名 ;
    • 不推荐使用此种方式,因为是逐条删除表中的数据,效率比较慢
    • 如果要清空表中所有数据,建议使用:truncate table 表名;
    • 这个命令的意思是:删除整张表,然后再创建一个一模一样的新表
  • 删除表中的某条数据,语法2:delete from 表名 where 条件;
    在这里插入图片描述
    数据库——Mysql基础(含数据表和数据库的增删改)_第7张图片

drop与delete的区别

  • drop database A 会将数据库A删除,因此库中所有的数据都会一并删除
  • drop table B 会将表B删除,因此B中的数据也删除了;delete只能去删除表的数据,不能去删除表的结构
  • drop 作为一种删除命令,他不仅会测数据结构(库/表)而且可以测数据
  • 简单说:drop删除结构且删除数据,因此drop命令要慎用

数据表本身的修改

  • 修改表的名称,语法:rename table 旧表名 to 新表名;
  • 修改表的字符集,语法:alter table 表名 character set gbk;
  • 修改表中的某一列(例如列的类型或者长度),语法:alter table 表名 modify 字段名称 字段类型;
  • 向表中增加一列,语法:alter table 表名 add 字段名 字段类型(长度)
  • 删除表中的某一列,语法:alter table 表名 drop 列名;
  • 修改列的名称:alter table 表名 change 旧列名 新列名 类型(长度);

数据表中数据的插入

  • 创建数据库的前提:创建数据库,语言不分大小写,不过如果是大写的话,全部大写,小写的话全部小写
  • 关键词:insert into
  • 插入一条数据,对所有字段都赋值
    • 语法:insert into <表名> vaules (值A,值B,值C,....,值F)
  • 插入一条数据,且只对一部分字段进行赋值
    • 语法:insert into <表名> (字段A,字段B,字段C) values (值A,值B,值C)
  • 批量插入,一次性插入多条数据
    • insert into <表名> values (值1,值2,值3......),(值1,值2,值3....)
  • 批量插入,对部分字段进行赋值时需要去指定字段
    • insert into <表名> (字段名1,字段名2,字段名3)values (值1,值2,值3......),(值1,值2,值3....)

      在这里插入图片描述
  • 修改数据表数据的注意事项:
    • 1.值和字段必须对应,也就是说输入的value和设置字段的个数必须相等
    • 2.输入的值必须和表中的数据类型、长度也需要对应
    • 3.插入varchar/char/data类型时,必须使用单引号、双引号进行包裹
    • 4.如果插入空值,可以忽略不写,也可以写NULL
    • 5.关于不设置时的默认值
      • 当创建表的时候输入DEFAULT 0.00 时,不赋值的时候,数据库中默认的数值为0.00
      • 当字段数据类型为int/float/double型时,如果int型指定为非空的话,他的默认值就是0/0.00/0.00

数据表中数据的修改

  • 关键词:update
  • 修改一个表中的所有数据(慎用)
    • 语法:update 表名 set 字段名1 = 新值1, 字段名2=新值2.....;
  • 修改表中的其中一条数据:条件修改
    • 语法:update 表名 set 字段名1 = 新值1, 字段名2=新值2.....where 条件表达式1and(or)条件表达式2
    • 修改多个字段的时候,则需要在set后面加上多个字段的值,以逗号隔开
    • 多个条件的时候,使用or关键字,代表分别满足;使用关键字and,表示多个条件需要同时满足
  • 注意:
    • 插入数据时,至初始化部分字段还是初始所有字段时sql的不同点提现在什么地方?
    • 答:初始化部分部分字段的时候需要提前去指定它对应的字段,初始化所有字段时则不需要
    • 赋值时,对于varchar类型的字段,需要注意什么?
    • 答:需要加英文的引号varchar,char ,日期,时间也需要
    • 字段声明了长度,赋值的时候应注意什么?插入数据的长度长了会有问题吗?
    • 答:例如varchar(50),如果插入数据超长,会自动截断;char类型也会自动截断
    • 插入一条数据可多条数据的语法区别是?多条数据时,中间需以什么符号隔开?
    • 答:以多个括号进行插入并以逗号进行隔开

插入表的例题

1.新增用户表(member)数据,按照截图里给出的对应的表数据,使用insert语句往对应的表里插入对应【多条插入】

2.使用insert语句在项目表(loan)中新增两条标信息,要求:

  • 新增一个借款期限为30天,年化收益为15%,竞标时间为5天,一次性还款的项目(标),标的名称为“借款赎楼”,标id为2001,标的状态为审核中,借款金额为200000
  • 新增一个借款期限为6个月,年化收益为15%,竞标时间为5天,每月付息到期还本的项目(标),标的名称为“生意周转”,标id为2002,标的状态为审核中,借款金额为10000
    数据库——Mysql基础(含数据表和数据库的增删改)_第8张图片
    3.使用SQL删除会员表Peter的会员信息
    数据库——Mysql基础(含数据表和数据库的增删改)_第9张图片
    4.使用SQL更新会员Nick的可用余额为400000.00元
    数据库——Mysql基础(含数据表和数据库的增删改)_第10张图片
    5.Tommy和Nick分别都投资了两个标,投标信息如下面invest表,请使用SQL语句往invest表插入下图表中的数据
    数据库——Mysql基础(含数据表和数据库的增删改)_第11张图片

你可能感兴趣的:(数据库,mysql,oracle)