Mysql:基础应用,数据库,表,数据,的增、删、改、查

目录

1、Mysql的内置功能

2、SQL分类

3、DDL:数据定义语言:库操作,增、删、改、查

​​​​​​​4、DDL:数据库定义语言:表操作,增、删、改、查

​​​​​​​​​​​​​​​​​​​​​​​​​​​​5、DML:对数据的增、删、改、查​​​​​​​

1、Mysql的内置功能

  • -u:登录的用户名
  • -p:密码
  • -s:用户指定msyql.sock的文件登录
    • 例子:mysql -uroot -p -s /tmp/msyql.sock
  • -h:登录的IP
  • -P:指定端口
    • 例子:msyql -uroot -h127.0.0.1 -P3306 -p
  • -e:面交互式执行sql语句
    • 例子:msyql -uroot -p -e "show databases; "
  • <:用户数据恢复
    • ​​​​​​​​​​​​​​[root@bogon ~]# mysql -uroot -p < /root/test.sql 
      ​​​​​​​

2、SQL分类

  • SQL:Structured Query Language,结构化查询语句【数据以查询为主:99%是在进行查询操作】关系型数据库通用命令:不同的数据产品(Oracle,Mysql)可能会有一些细微的差别
    • SQL:分为三部分
      • DDL:Data Definition Language,数据定义语言,用来维护存储数据的结构(数据库,表)
      • DML:Data Manipulation Language,数据操作语言,用来对数据进行操作(数据表中的内容:insert,delete,update)
      • DQL:Data Query Language:数据查询语句(如:select)【属于DML内部单独的一个分类】
      • DCL:Data Control Language:数据控制语句,主要负责权限管理(用户:grant,revoke)
  • 关键字介绍
    • 数据库:database
    • 数据库系统:DBS(Database System):是一种虚拟系统,将多种内容关联起来的称呼
    • DBMS:Database Management System,数据库仓库系统,专门管理数据库
    • DBA:Database Administrator,数据库管理员
    • 行/记录:row/record,本质是一个东西:都是指表中的一行(一条记录):行是从结构角度出发,记录是从数据库角度出发
    • 列/字段:column/field,本质是一个东西
  • Mysql数据库
    • Mysql数据库是一种c/s结构的软件:客户端/服务端,若想访问服务器必须通过客户端(服务器一直运行,客户端在需要适用的时候运行)(B/S主要是传递httP协议)
    • 交互方式
      • ​​​​​​​​​​​​1,客端连接认证:连接服务器,认证身份:mysql.exe-h(地址)P(端口)u(用户)p(密码)
      • 2,发送SQL指令
      • 3,服务器接受SQL指令:处理SQL指令:返回操作结果
      • 4,客户端接受结果:显示效果
      • 5,断开连接(释放资源):exit/quit/\q
    • ​​​​​​​msyql数据库服务对象
      • ​​​​​​​没有办法完全了解服务器内部的内容:只能粗略的去分析数据库服务器内部的结构。​​​​​​​
      • 将MySQL服务器内部对象分成了四项,系统(DBMS)-->>数据库(DB)-->>数据表(Table)-->>字段(field)
    • ​​​​​​​Mysql基本操作​​​​​​​
      • ​​​​​​​将SQL的基本操作根据操作对象分类,分为:库操作,表操作(字段),数据操作

​​​​​​​​​​​​​​3、DDL:数据定义语言:库操作,增删、改、查

  • 增:创建库:​​​​​​​create database  [库名称]   [库选项]
    • 例子:create database school charset utf8mb4 collate utf8mb4_bin;
      • ​​​​​​​库选项:分为两个选项
        • ​​​​​​​字符集:charset/characteet set 具体字符集【数据存储的格式:常用的字符集GBK和UTF8,utf8mb4】​​​​​​​
          • GBK:2个字节一个中文
          • utf8:3个字节一个中文
          • utf8mb4:4个字节一个中文,支持emoji
      • ​​​​​​​校对集:collate 具体校对集【数据比较规则】
        • ​​​​​​​utf8mb4_general_ci :大小写不敏感
        • utf8mb4_bin:大小写敏感(存拼音,日文)
    • ​​​​​​​​​​​​​​注意:
      • ​​​​​​​1、创建库不能使用关键字(已经被使用的字符)或者保留字(将来可能用到)
      • 2、如果要使用关键字和保留字,可以使用【` `】括起来
        例如:create database `database` charset utf8mb4;
      • 3、中文数据也可以的,但是有前提条件:保证服务器能够识别(建议不用)(也就是告诉服务器当前的编码格式)
        例如:create database 中国 charset utf8mb4
        ​​​​​​​
    • 创建库之后发生了什么?
    • 1、数据库系统中,增加了对应的数据库信息​​​​​​​
    • 2、会在保存的数据库的 文件夹下:/data/mysql/data ,创建一个对应的数据库名字的文件夹​​​​​​​
    • 3、每个数据文件夹下都有一个opt文件:保存了库选项​​​​​​​【字符集】【校对集】
  • ​​​​​​​​​​​​​​​​​​​​​查:看数据库:
    • show databases;    -- 查看所有数据库
    • 查看指定部分的数据库:模糊匹配
      • show database like 'pattern'   --pattern是匹配模式
      • %:标识匹配多个字符
      • _:匹配单个字符​​​​​​​
    • ​​​​​​​查看数据库创建语句
      • show create databases [数据库];
      • 创建的数据库语句,数据库会进行优化
  • ​​​​​​​改:数据库
    • ​​​​​​​更改数据库名字
    • 库选项:字符集和校对集(校对集依赖字符集)
      • ​​​​​​​alter databse  [库名称] [库选项]
  • ​​​​​​​​​​​​​​删:删除数据库
    • ​​​​​​​drop database  [库名称]
    • 注意
      • ​​​​​​​删除数据库后,数据库中所有的表,都会不见了
      • 在对应的数据存储的文件夹中:数据库名字对应的文件也被删除(级联删除:里面的数据表全部不见了)
      • 数据库删除不是闹着玩的,不要随意删除,应进行备份后在删除(数据不可逆)
  • 数据库定义规范​​​​​​​​​​​​​​
    • 库名使用小写字符​​​​​​​
    • 库名不能以数字开头
    • 不能是数据库内部的关键字
    • 必须设置字符集

​​​​​​​​​​​​​​4、DDL:数据库定义语言:表操作,增、删、改、查

  • 增:新增数据表
    • ​​​​​​​格式:create table [if not exists]  表名(
    •                        字段名称     数据类型,
    •                        字段名称     数据类型
    •            )[表选项]
      • [if not exists]:如果表明存在,那么就创建,否则不执行创建的代码:检查功能
      • 表选项:
        • ​​​​​​​字符集:charset/character set 具体字符集:--保证表中数据存储的字符集
        • 校对集:collate 具体校对集​​​​​​​
        • 存储引擎:engine 具体的存储引擎(innodb 和 myisam)
    • 例子:方案一,指定文件在那个数据库下,创建表格
    • 方案二,隐式的指定表所属数据库:先进入到某个数据库环境,然后这样创建的表自动归属到某个指定的数据库​​​​​​​
      • use  [库名称]   --  进入当前的仓库中
    • 方案三:创建和banji1中一样的表结构

       
    • 创建表的规范
      • ​​​​​​​​​​​​​​​​​​​​​​​​​​​​表名小写字母,不能数字开头
      • 不能是保留字符,使用和业务有关的表名
      • 选择合适的数据类型及长度
      • 每个列设置 NOT NULL + DEFAULT .对于数据0填充,对于字符使用有效字符串填充
      • 表必须设置存储引擎和字符集
      • 主键列尽量是无关联数字列,最好是自增长
      • enum类型不要保存数字,只能是字符串类型
    • ​​​​​​​创建表后数据存储目录
      • 存储引擎:Myisam​​​​​​​
        • ​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​.frm文件:保存了每个表的元数据,包括表结构的定义
        • .MYD文件:数据信息文件,存储表的数据文件​​​​​​​
        • .MYI文件:索引信息文件,存储表数据文件中任何索引的数据树
      • 存储引擎:innodb
        • ​​​​​​​.frm文件:保存了每个表的元数据,包括表结构的定义
        • .ibd文件:InnoDB引擎开启了独立表空间(my.ini中配置innodb_file_per_table = 1)产生的存放该表的数据和索引的文件。
        • .opt文件:存储的校对集和字符集​​​​​​
      • 在对应的数据库会形成对应的表,表结构文件
  • ​​​​​​​​​​​​​​查:查看数据表
    • ​​​​​​​show tables;  --查看所有的表
    • show tables like "pattern"  --模糊匹配:查看部分表
    • show create table [表名]   -- 查看表的创建语句
    • des/descibe show columns from class --查看表结构:查看表中字段信息
  • 改:修改数据表
    • 修改表名 [rename table 老表名 to 新表名]
    • 修改表选项:字符集、校对集存储引擎
      • ​​​​​​​修改字符集、校对集:[ alter tabel 表名 charset  字符集 collate 校对集]
        ​​​​​​​
      • 修改存储引擎:[alter table 表明 engine 引擎]
    • 对字段进行修改:增、删、改、查
      • ​​​​​​​新增字段:[alter tabel 表明 add column 列  列属性 位置]
        • ​​​​​​​位置:字段名可以存放表中的任意位置
        • frist:放在第一列
        • after :放在id列之后
      • 修改字段:修改通常是修改属性或者数据类型
        • ​​​​​​​格式:alter table 表名 modify  字段名  数据类型   [属性] [位置]
      • 重命名字段
        • ​​​​​​​格式:alter table 表明 change 旧字段 新字段名 数据 类型 [属性] [位置]
      • 删除字段
        • ​​​​​​​格式:alter table 表明 drop 字段名
    • 删:删除数据表
      • ​​​​​​​格式: drop table 表明1,表明2 …… ; -- 可以一次删除多张表格,用逗号隔开
      • 删除数据库:
        • ​​​​​​​1、在应的数据的数据库,没有了对应的表
        • 2、在Linux中对应的表,文件也会被删除

​​​​​​​​​​​​​​​​​​​​​​​​​​​​5、DML:对数据的增、删、改、查​​​​​​​

  • 增:增加数据
    • ​​​​​​​方案一:【最偷懒】给全表字段插入数据,不需要指定字段列表:要求数据的值出现的顺序必须与表中设计的字段出现的顺序一致:凡是非数值数据,都需要使用引号(建议是单引号)包裹​​​​​​​
      • ​​​​​​​格式:insert into 表名 values (值列表),(值列表),……(值列表) ; --  可以一次性插入多条记录​​​​​​​
    • 方案二:【最规范:针对性的数据录入】给部分字段插入数据,需要选定字段列表:字段列表出现的顺序与字段的顺序无关;但是值列表的顺序必须与选定的字段的顺序一致
      ​​​​​​​
  • ​​​​​​​查:查看数据
    • ​​​​​​​查看所有的数据:select * from 表名;
    • 查看表中指定字段的数据:select 字段1,……,字段2,from  表名
  • 改:更新数据
    • ​​​​​​​格式:update 表名 set 字段 = 值  [where 条件] ;--建议都有where : 要不是全表更新数据,指定的字段数据
  • 删:删除数据【生产中,屏蔽掉delete,用update取代delete】
    • ​​​​​​​格式:Delete from 表名 [where 条件]​​​​​​​;--建议都加where :要不全表数据都会删除
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值