(小白)MySQL基础学习001 20201006

(小白)MySQL基础学习001 20201006

历程

  1. 数据库分类
    1、网络数据库
    2、层级数据库
    3、关系数据库

另外一种方式(基于存储介质):
1、关系型数据库(存储在磁盘中)
2、非关系型数据库(存储在内存中)

  1. 关系型数据库
    关系数据结构、关系操作集合,关系完整性约束三部分组成
    关系操作集合:如何来关联和管理对应的存储数据,SQL指令
    关系完整性约束:数据内部有对应的关联关系,以及数据与数据之间有对应的关联关系
    表内约束
    表间约束

  2. 常见的关系型数据库
    小型关系型数据库:Microsoft Access,SQLite
    中型关系型数据库:SQL Server,Mysql(免费,用得最广)
    大型关系型数据库:Oracle(大型用得多),DB2

  3. SQL
    结构化查询语言(Structured Query Language),简称SQL
    DQL:数据查询语言,专门用于查询数据:代表指令为select/show
    DML:数据操作语言,专门用于写数据:代表指令为insert,update,delete
    TPL:事务处理语言,专门用于事务安全处理,mysql支持,但不是所有的语言都支持
    DCL:数据控制语言,用于权限管理,代表指令为grant和revoke
    DDL:数据定义语言,专门用于结构管理,代表指令create,drop,alter

  4. MySQL
    开源免费
    对PHP的支持最好

mysql中用的操作指令就是SQL指令

  1. MySQL是一种C/S结构:客户端和服务端
  2. 服务端对应的软件:Mysqld.exe
    在这里插入图片描述
    报错的原因是找不到net
    通过查询知道:
    https://blog.csdn.net/u012874209/article/details/56017296

通过mysql -u root -p进入
成功进入
在这里插入图片描述
教程方式:mysql -hlocalhost -uroot -p

使用mysql.exe的方式报错:
在这里插入图片描述
还是采用mysql -hlocalhost -P3306 -uroot -p 还是报错:
进入bin目录:

成功:
在这里插入图片描述

  1. 退出
    Exit;
    \q
    Quit;

    以上三种方式都测试了,没问题

  2. 创建数据库
    createDatabase 数据库名字 【库选项】
    在这里插入图片描述
    成功

  3. 库选项:数据库的相关属性
    字符集:charset,代表着当前数据库下的所有表存储的数据默认指定的字符集(如果具体不指定,那么采用DBMS默认的)
    校对集:collate,默认随字符集

在这里插入图片描述
成功!

  1. 显示数据库:show databases;
    在这里插入图片描述
    information_schema:保存数据库所有的结构信息(表,库)
    mysql:核心数据库,权限关系
    performance_schema:效率库

  2. 显示部分
    show databases like “匹配模式”
    _:匹配当前位置单个字符
    %:匹配当前位置多个字符

获取以my开关的数据库
show databases like “my%”;
在这里插入图片描述
获取以m开头,中间不确定,但末尾以database结尾的数据库:
show databases like “m_database”;
在这里插入图片描述
这里的_只能代表一个
在这里插入图片描述
这样就搜不到了
在这里插入图片描述
用%即可

  1. 显示数据库创建语句:
    show create database mydatabase;
    在这里插入图片描述
    并非是原始语句,而是加工过的语句

  2. 选择数据库
    user mydatabase;
    在这里插入图片描述
    成功!

  3. 修改数据库
    修改数据库字符集(库选项)
    mysql5.5之前可以改变数据库名称(rename),之后不可以了
    alter database mydatabase charset gbk;
    在这里插入图片描述
    修改成功后:
    在这里插入图片描述
    db.opt里的信息就会被修改,一般情况下,有数据之后就不建议修改

  4. 删除数据库
    drop database mydatabase;

在这里插入图片描述

  1. 创建数据表
    create table 表名(字段名 字段类型 【字段属性】,字段名 字段类型 【字段属性】。。。)【表属性】
    create table Class(
    –字段名 字段类型

将表加入到数据库的方式:
1、在数据表加上数据库名字,用“.”连接,数据库.数据表
create table mydatabase2.class(
name varchar(10)
);
在这里插入图片描述
这样加之后,数据库依然不是使用状态,下一次操作依然需要进入

2、另一种方式就是先进入数据库,见第15条
  1. 表选项
    与数据库选项类似
    Engine,存储引擎,mysql提供的具体存储数据的方式,默认Innodb(5.5以前默认myissam)
    Charset:字符集,只对自己表有效(级别比数据库高)
    Collate:校对集

  2. 使用表选项
    show create database mydatabase2;
    在这里插入图片描述
    进入数据库后
    create table student2(name varchar(10))charset utf8;

在这里插入图片描述

  1. 复制已有的表结构
    只复制表结构,数据不复制
    create table 新表名 like 表名 //只要用数据库.表名,就可以在任何地方进行复制,也就是可以跨数据库复制

新建一个test数据库
create table teacher like mydatabase2.student;
在这里插入图片描述

  1. 显示数据表
    新建一个表,会在对应文件夹下新建一些文件(文件数与引擎有关)
    .frm代表结构文件
    这个结构文件来自于innodb存储引擎,此引擎所有文件都存储在data下的ibdata1里
    show tables;

在这里插入图片描述
匹配显示表:
show tables like “匹配模式”;

去mydatabase2里试试:
show tables like “%ss”;

在这里插入图片描述

  1. 显示表结构
    显示表中所包含的字段信息(名字,类型,属性等)
    Describe 表名
    Desc 表名
    show columns from 表名
    describe class;
    desc teacher;
    show columns from student;

在这里插入图片描述
field:字段名
type:字段类型
null:是否允许为空
key:索引
default:如果不给值,那么默认为NULL
extra:额外属性

三种查看方式相同,所以一般desc最多

  1. 显示表创建语句
    show create table student;
    在这里插入图片描述
    这里发现我的ENGINE:MyISAM,与教程里的不同
    但我的mysql明明是5.5之后的,是5.7

  2. mysql中多种语句结束符:
    ;与\g所表示的效果是一样的,都是字段在上排横着,下面跟对应的数据
    \G字段在左侧竖着,右边跟着数据
    show create table student\G
    在这里插入图片描述
    desc student\G
    在这里插入图片描述

  3. 设置表属性
    表属性指的是表选项:engine,charset,collate
    alter table 表名 表选项【=】(可有可无)表属性
    alter table student charset gbk;

在这里插入图片描述
show create table student\G
在这里插入图片描述
发现已经从utf8,改成了gbk
这里再试试把engine 改一下
alter table student engine InnoDB;

在这里插入图片描述
在这里插入图片描述
更改成功!
修改字符集影响不大,但在表有数据的时候,改engine等会有意想不到的影响

  1. 表前缀
    数据库中数据表名通常有前缀:取数据库的前两个字母加上下划线
    修改表名:
    rename table student to my_student;

在这里插入图片描述

  1. 新增字段
    alter table 表名 add[column]新字段名 列类型 【列属性】【位置first/after字段名】
    desc my_student;
    在这里插入图片描述

alter table my_student add column age int;

在这里插入图片描述
添加了一个年龄属性;
默认加到表的最后面;
字段位置:
first:在某某之前(最前面),第一个字段
after:在具体某一个字段后面;
alter table my_student add column id int first;

在这里插入图片描述

  1. 修改字段名:alter table 表名 change 旧字段名 新字段名 字段类型【列属性】【新位置】
    原字段类型不会被延用,需要指定
    alter table my_student change age nj int;
    在这里插入图片描述

  2. 修改数据类型的属性
    alter table my_student modify name varchar(20);

在这里插入图片描述

  1. 删除字段
    alter table 表名 drop 字段名
    alter table my_student drop nj;

在这里插入图片描述

  1. 删除表结构
    drop table 表名【表名2。。。】:表示可以删除多个表 ,但是库的话是不能多个删除的
    drop table class;
    在这里插入图片描述
    批量删除:
    drop table teacher,my_student;

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值