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

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

  

原文地址:https://www.cnblogs.com/qwertyty/p/12076843.html

时间: 2024-10-04 00:55:04

学习MYSQL过程中自己写的数据库操作的相关文章

标准动作中犯的错误,使用过程中忘记写结束符号所发生的错误

例如 错误写法: <jsp:getProperty property="userName" name="user" > 正确写法:<jsp:getProperty property="userName" name="user" /> 导致的异常: HTTP Status 500 - type Exception report message description The server encounte

利用JQ实现的,高仿 彩虹岛官网导航栏(学习HTML过程中的小记录)

利用JQ实现的,高仿 彩虹岛官网导航栏(学习HTML过程中的小记录)   作者:王可利(Star·星星) 总结: 今天学习的jQ类库的使用,代码重复的比较多需要完善.严格区分大小写,在 $("").css()   这里css是小写的,用 HBuilder 编写补全是大写的..这里要注意 主要使用的方法:jQuery 隐藏 / 显示    jQuery 淡出淡入 需要注意的知识点: 效果的样式: 代码如下:(亲们 自己展开拉~) 1 <!DOCTYPE html> 2 <

关于HTML中,绝对定位,相对定位的理解...(学习HTML过程中的小记录)

关于HTML中,绝对定位,相对定位的理解...(学习HTML过程中的小记录)   作者:王可利(Star·星星) HTML中 相对定位:position:relative; 绝对定位:position:absolut; 1.相对定位(div与div之间的关系)        body 标签其实就是一个大的盒子,在body里面设置 两个盒子div1 和 div2 ,而且两个盒子都给了它一个相对定位:position:relative;,那么div2 就会相对于 div1 排版,排在div1的下面,

学习Hadoop过程中遇到的困难

1:Shuffle Error: Exceeded MAX_FAILED_UNIQUE_FETCHES; bailing-out 这是reduce预处理阶段shuffle时获取已完成的map的输出失败次数超过上限造成的,上限默认为5.引起此问题的方式可能会有很多种,比如网络连接不正常,连接超时,带宽较差以及端口阻塞等,通常框架内网络情况较好是不会出现此错误的. 2:Too many fetch-failures Answer: 出现这个问题主要是结点间的连通不够全面. 1) 检查 ./etc/h

学习javascript过程中的心得体会

在看到这个编程练习的时候,我的第一反应是JS居然强大到可以代替JSP了.但仔细想想,其实这只是表面的删除,增加,并没有对数据库的数据产生任何影响,所以,JSP还是王道啊!233333 练习过程中遇到的问题,知识点总结 1.由于很多时候JS是写在head前面的,调用一些body里的元素ID,而此时body尚未载入,就会报错,找不到该元素,所以写成window.onload=function() {//调用一些元素..}写在head的前面,这样再调用就不会出错了

学习mysql(2)-如何设计数据库(一)

在学习mysql(1)中学到了一些基本的操作. 接下来一个比较重要的问题放在我面前,假设现在要实战了,当然得创建数据库咯,但是数据库中一般会涉及到很多表,如果设计不当,逻辑上有些混乱,那么这样的数据库当然不会好用. 在最开始学习这个东西,感觉就是excl嘛,没有什么了不起啊.弄一两个表而已嘛.但是如果我们不管做什么东西都用一个表可能会遇到问题.在learning mysql书中,讲到了一个很好的例子来说明为什么要用多个表: 假设一个学校需要记录学校的每个学生的成绩,那么需要记录该学生的名字,课程

个人学习C++过程中对const的总结:初始化系列之用字面值常量与其他类型的值初始化的区别(一)

const这个系列博大精深,在学习过程一点一点积累记录.但是由于随笔在发布之后不能修改,有了新的想法之后不能再在原随笔上修改,只好用一个个系列来慢慢积累. 哈哈,在发布之后发现是可以继续编辑的,好吧,不管了,这种方式挺好. 正文: 昨晚接触到一个算法题目,回文字符串,在网上找了某段代码,但是发现有点问题,原形大概如下: .... const int len=mystr.size(); //mystr是string的一个实例,其实我挺奇怪这里为什么用int而不是string::size_type或

当学习前端过程中心态发生了变化

学习前端的过程中,我们会遇到各式各样的问题.有的是粗心大意,有的是知识理解的偏差,有的只是自己疲惫所致.这些问题一担越陷越深,都会人让自己的心态产生波动,我们只要想出各种方法来解决问题,才能让自己的心态恢复稳定. 前端相比后台来说,是最直接面对用户群的岗位,用户在访问网站时最直观的就是前端页面.网站出现任何的问题用户所抱怨也是最直观的东西.这就对前端要求提出了更高的要求.我们的职责就是精准的还原出设计图.可以说是经常会和1px的像素较真的工作,偏差也只能在几个像素值之间.这样较真的工作往往都会让

学习Android过程中遇到的问题及解决方法——电话监听

也许有时你会有这样一个需求:通电话时有一个重要的事需要记下来或者和一个陌生人特别是大骗子通话时,这是就想如果能把通话录下来就方便多了.(这才是我写这个代码的目的!!!) 在此过程中,犯了一个很大的错误.对电话状态还不熟悉就开始编程,使得我就算编写正确也出现各种bug. 先将代码列出来,供大家参考,然后解释错误和相关知识. activity_main.xml: 1 <?xml version="1.0" encoding="utf-8"?> 2 <L