当前位置:首页 > 数据库 > 正文

学习MYSQL过程中自己写的数据库操作

2020-02-13 数据库

2119731621

 


查看所有数据库
  show databases;

进入数据库
  use 数据库名字;


创建数据库
  create database 数据库名字 【charset/character set 字符集】

根据数据库设置中文编码

  set names 大写的中文编码; //如set names UTF8;


查看数据库的创建语句

  show create database 数据库名字


查看所有表
  show tables;


查看一张表的所有内容
  select * from 表名;


修改数据库的字符集: 
  alter database 数据库名字  charset/character  set 字符集;

创建数据表
  create table [if not exists] 表名 ( 字段名字 数据类型 , 字段名字 数据类型-- 最后一行不需要逗号 ) 【charset/character set 字符集】;

                           【if not exists: 如果表名不存在,那么就创建,否则不执行创建代码: 检查功能】

创建指定表所属的数据库 // Create table 数据库名.表名();

  create table [if not exists] 数据库名.表名 (字段名字 数据类型,字段名字 数据类型 -- 最后一行不需要逗号)【charset/character set 字符集】;

                    【将当前数据表创建到指定的数据库下】

查看表的创建语句: 
  show create table 表名;

 

查看表结构
  desc/describe/show  columns from 表名;


修改表名
  rename table 老表名 to 新表名;


修改数据表字符集
  Alter table 表名  charset/character  set 字符集;


增加数据表字段
  alter table 表名 add [column] 字段名 数据类型 [列属性] [位置];

    First: 第一个位置

    after 字段名-----在哪个字段之后;默认的是在最后一个字段之后

 

修改数据表字段: 修改通常是修改属性或者数据类型

  alter table 表名 modify 字段名 数据类型 [属性] [位置];

 

重命名数据表字段

  alter table 表名 change 旧字段 新字段名 数据类型 [属性] [位置];

 

删除数据表字段

  alter table 表名 drop 字段名;

 

删除数据表

  drop table 表名1,表名2...; -- 可以一次性删除多张表

 

新增数据
  Insert into 表名 values (值列表)[,(值列表)];-- 值列表的顺序必须与选定的字段的 顺序一致

  Insert into 表名 (字段列表) values (值列表)[,(值列表)]; -- 同上


查看数据
  select  */字段列表  from 表名 [where 条件(字段名=值)];

查看数据完整语法
  select [select选项] 字段列表[ [as]字段别名] /* from 数据源 [where条件子句] [group by子句] [having子句] [order by子句] [limit 子句];

      Select选项: select对查出来的结果的处理方式

            All: 默认的,保留所有的结果

            Distinct: 去除重复, 查出来的结果,将重复给去除(所有字段都相同)


      字段别名:对字段名进行重命名: 别名

            语法:字段名 [as] 别名;


      数据源
          本质上只要保证数据类似二维表,最终都可以作为数据源.

          数据源分为多种: 单表数据源, 多表数据源, 查询语句

          单表数据源: select * from 表名;

          多表数据源: select* from 表名1,表名2...;


    子查询:   数据的来源是一条查询语句(查询语句的结果是二维表)

          Select * from (select 语句) as 表名;


    Where子句:   用来判断数据,筛选数据.

            Where子句返回结果: 0或者1, 0代表false,1代表true.


    Group by子句

          Group by:分组的意思, 根据某个字段进行分组(相同的放一组,不同的分到不同的组)

          分组会自动排序: 根据分组字段:默认升序

          Group by 字段名 [asc|desc]; -- 对分组的结果然后合并之后的整个结果进行排序  asc是升序   desc是降序

          group by 字段名1,字段名2; 多字段分组: 先根据一个字段进行分组,然后 对分组后的结果再次按照其他字段进行分组

          group_concat(字段名); 可以对分组的结果中的某个字段进行字符串 连接(保留该组所有的某个字段)

          基本语法: group by 字段名;

          分组为了统计数据(按组统计: 按分组字段进行数据统计)

          Count(): 统计分组后的记录数: 每一组有多少记录

              两种参数:
                  *代表统计记录

                  字段名代表统计对应的字段(NULL不统计)

                  Max(): 统计每组中最大的值

                  Min(): 统计最小值

                  Avg(): 统计平均值

                  Sum(): 统计和

    Having子句:

        与where子句一样: 进行条件判断的.

 

        Having能够使用字段别名: where不能: where是从磁盘取数据,而名字只可能是字 段名: 别名是在字段进入到内存后才会产生.


   Order by子句
        排序, 根据某个字段进行升序或者降序排序, 依赖校对集.

        基本语法 Order by 字段名 [asc|desc]; -- asc是升序(默认的),desc是降序

        多字段排序

          先根据某个字段进行排序, 然后排序好的内部,再按照某个数据进行再 次排序

          语法: Order by 字段名1,字段名2…… [asc|desc]


   Limit子句

       一种限制结果的语句: 限制数量.

       两种使用方式
            方案1: 只用来限制长度(数据量): limit 数据量;

            方案2: 限制起始位置,限制数量: limit 起始位置,长度;

            Limit方案2主要用来实现数据的分页: 为用户节省时间,提交服务器的 响应效率,减少资源的浪费.

            对于用户来讲: 可以点击的分页按钮: 1,2,3,4

            对于服务器来讲:根据用户选择的页码来获取不同的数据:   limit(offset,length)

            Offset: offset = (页码 - 1) * 每页显示量

            Length: 每页显示的数据量: 基本不变(程序员可自由设定)

 

 

最新幸运 飞艇56码规律公式实战计划走势分析资金分配技巧
最新幸运 飞艇78码滚雪球规律公式实战计划分析资金分配技巧
最新幸运 飞艇78码滚雪球走势技巧与盈利规律公式计划技巧
最新幸运 飞艇56码倍投走势技巧与盈利规律公式实战计划技巧
最新《幸运 飞艇78码滚雪球规律公式》如何把握盈利走势技巧
最新《幸运 飞艇56码倍投规律公式》如何把握盈利走势技巧
最新《幸运 飞艇56码走势实战计划分析》稳赢分配资金技巧
最新《幸运 飞艇78码滚雪球走势实战计划分析》稳赢资金技巧
最新《幸运 飞艇一些78码滚雪球必中玩法》实用走势技巧规律实战经验分享
北京 赛车与幸运 飞艇七八码滚雪球公式规律盈利技巧走势分析计划
北京 赛车与幸运 飞艇七八码滚雪球规律公式如何盈利计划分析技巧
北京 赛车与幸运 飞艇七八码滚雪球如何盈利计划走势技巧分析
北京 赛车与幸运 飞艇七八码公式滚雪球分析盈利计划走势玩法
北京 赛车与幸运 飞艇七八码滚雪球规律技巧稳赢公式计划
北京 赛车PK10幸运 飞艇七八码滚雪球公式稳赢计划走势分析技巧
北京 赛车PK10幸运 飞艇七八码滚雪球稳赢技巧实战规律分析计划
北京 赛车PK10幸运 飞艇七八码滚雪球如何稳赢计划技巧走势分析
北京 赛车幸运 飞艇五六码倍投公式盈利过程计划解说走势技巧
北京 赛车幸运 飞艇五六码倍投如何盈利计划实战技巧走势分析
北京 赛车幸运 飞艇五码六码走势规律稳赚技巧实战公式计划


细分飞 艇赛 车一分钟快 三如何快速稳定赚钱
细分飞 艇赛 车一分钟快 三高手稳赢秘籍
细分飞 艇赛 车一分钟快 三赢了30万稳赢秘籍
细分飞 艇赛 车一分钟快 三绝招稳赢秘籍
细分飞 艇赛 车一分钟快 三技巧稳赢秘籍
细分飞 艇赛 车一分钟快 三杀号稳赢秘籍
细分飞 艇赛 车一分钟快 三选号稳赢秘籍
细分飞 艇赛 车一分钟快 三遗漏稳赢秘籍
细分飞 艇赛 车一分钟快 三和值走势图稳赢秘籍
细分飞 艇赛 车一分钟快 三基本走势图稳赢秘籍
细分飞 艇赛 车一分钟快 三人工计划稳赢秘籍
细分飞 艇赛 车一分钟快 三软件计划稳赢秘籍
细分飞 艇赛 车一分钟快 三稳赢秘籍


独家解读《出几买几定位胆公式》效果收益极好的玩法技巧
大神揭秘《定位胆三把必中法》玩法分享给大家
高手揭秘《定位胆怎么买准确率高》分享给大家一起交流
独家解读《11选5任2神号期期必中》效果收益极好的技巧
独家讲解分析《组三组六 必中技巧》助你快速掌握
浅析最新五星组选60玩法介绍的做号方案
浅析最新四星稳定做号思路方法的做号方案,
讲解分析最稳定的《11选5任3必中计算方法》值得收藏
独家解读《追组六不亏方法》帮你度过难关
高手全面讲解《五星组60有什么规律》命中率极高
简单实用的《五星组选30怎么算中》值得借鉴
必备攻略之《后三大底稳定700刷不停》值得收藏
最强攻略分享《后三直选单式稳赚》效果极佳
最强攻略分享《后三直选单式稳赚》效果极佳
大师深度解析《后三组六复试杀号技巧》帮助提高命中
命中最高的《后三直选单式500注万能码》分享制胜玩法
重点考虑《后三直选单式600注》需要注意的细节
高手选取《四星6000注做号思路》一定不要盲目跟进
重点考虑《四星稳定做号思路方法》需要注意的细节
讲解分析最稳定的《后三直选缩水大底》值得收藏
高手全面讲解《后三单式5胆码做号》命中率极高
玩家总结《后三组六8码杀号公式》分析取胜窍门!-
独家解读《后三直选杀号最新公式》帮你度过难关
独家解读《后三直选杀号最新公式》帮你度过难关
最值得收藏的《五星二码什么意思》帮助提高胜率
最值得收藏的《五星二码什么意思》帮助提高胜率
重点考虑《四星稳定做号思路方法》需要注意的细节
讲解分析最稳定的《后三直选缩水大底》值得收藏
高手全面讲解《后三单式5胆码做号》命中率极高
玩家总结《后三组六8码杀号公式》分析取胜窍门!-
独家解读《后三直选杀号最新公式》帮你度过难关
独家解读《后三直选杀号最新公式》帮你度过难关
最值得收藏的《五星二码什么意思》帮助提高胜率
最值得收藏的《五星二码什么意思》帮助提高胜率
独家讲解分析《五星组60和120对打》助你快速掌握
独家讲解分析《五星组60和120对打》助你快速掌握
高手全面讲解《五星组60组120如何判断》命中率极高
精准分析《怎么判断五星组选60》不可错过的细节
精准分析《怎么判断五星组选60》不可错过的细节
精准分析《怎么判断五星组选60》不可错过的细节
精准分析《怎么判断五星组选60》不可错过的细节
资深玩家解读《后三直选单式600注》玩法和技巧
资深玩家解读《后三直选单式600注》玩法和技巧
高手全面讲解《猜大小单双有什么诀窍》命中率极高
独家讲解分析《后三杀2个条件650注》助你快速掌握-
高手讲解《后三组六是什么意思》易上手玩法技巧
最新评分最高的《11选5任二怎么盈利计划》攻略分享
高手全面讲解《五星不定位胆二码秘诀》命中率极高

修改数据
  update 表名 set 字段名=值 where条件(字段名=值) [limit 修改数量];

 

删除数据
  delete from 表名 where条件(字段名=值) [limit 删除数量];

 

按指定的数据排序
  select * from 表名 order by birth DESC;  // -- 倒序DESC 正序ASC


删除数据库
  drop database [if exists] 数据库名字;

 

 

 


数据类型

    整数型(一个字节八位(二进制))
    无符号数据: 数据类型 unsigned; -- 无符号: 从0开始

    cinyint: 迷你整型,使用一个字节存储, 表示的状态最多为256种(常用)

    smallint: 小整型,使用2个字节存储,表示的状态最多为65536种

    mediumint: 中整型, 使用3个字节存储

    Int: 标准整型, 使用4个字节存储(常用)

    Bigint: 大整型,使用8个字节存储

    数据类型之后都会自带一个括号,里面有指定的数字Tinyint(3)

    显示宽度: 没有特别的含义, 只是默认的告诉用户可以显示的形式而已: 实际上用户是可以控制
          的,这种控制不会改变数据本身的大小.

    显示宽度的意义: 在于当数据不够显示宽度的时候,会自动让数据变成对应的显示宽度: 通常需要搭
             配一个前导0来增加宽度, 不改变值大小: zerofill(零填充): 零填充会导致数值自动变成无符号

            零填充的意义(显示宽度): 保证数据格式

 

 


小数型

  浮点型

       浮点型数据是一种精度型数据: 因为超出指定范围之后, 会丢失精度(自动四舍五入)

      Float: 单精度, 占用4个字节存储数据, 精度范围大概为7位左右

      Double: 双精度,占用8个字节存储数据, 精度方位大概为15位左右

      浮点的使用方式: 直接float表示没有小数部分;

      float(M,D): M代表总长度,D代表小数部分长度, 整数部分长度为M-D

      浮点型数据的插入: 整型部分是不能超出长度的,但是小数部分可以超出长度(系统会自动四舍五入)

      浮点数如果是因为系统进位导致整数部分超出指定的长度,那么系统也允许成立.

 

  定点型:

      绝对的保证整数部分不会被四舍五入(不会丢失精度),小数部分有可能(理论小数部分也不 会丢失精度)
      decimal(P,D)表示可以存储D位小数的P位数。十进制列的实际范围取决于精度和刻度。

      P是表示有效数字数的精度。 P范围为1?65。默认时为10

      D是表示小数点后的位数。 D的范围是0~30。MySQL要求D小于或等于P。默认时为2

      插入数据: 定点数的整数部分一定不能超出长度(进位不可以),

      小数部分的长度可以随意超出(系统自动四舍五入)

 

 


字符串类型

    定长字符串: 

      char, 磁盘(二维表)在定义结构的时候,就已经确定了最终数据的存储长度.

      Char(L): L代表length, 可以存储的长度, 单位为字符, 最大长度值可以为255.

      Char(4): 在UTF8 环境下,需要4 * 3 = 12个字节

    变长字符串

      varchar, 在分配空间的时候,按照最大的空间分配,但是实际上最终用了多少,是根据具体 的数据来确定.

      Varchar(L): L表示字符长度 理论长度是65536个字符, 但是会多处1到2个字节来确定存储的实际长度:

             但是实际上如果长度超过255,既不用定长也不用变长, 使用文本字符串text

  

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/SQL/16135.html