热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MYSQL初学

一.数据的存储方式特定的文件内存第三方云服务器数据库服务器二.什么是数据库数据库按照一定的形式来组织存储数据,目的是为了便于操作数据——增删改查三.

MYSQL 初学

一.数据的存储方式

    特定的文件 / 内存 / 第三方云服务器 / 数据库服务器

二.什么是数据库

  数据库按照一定的形式来组织存储数据,目的是为了便于操作数据 —— 增删改查

三.数据库发展历史

    网状数据库 -> 层次型数据库 -> 关系型数据库 -> 非关系型数据库(NoSQL)

    关系型数据库逻辑结构

    Server  ->  Database  ->  Table  ->  Row  ->  Column

  数据库服务器    数据库       数据表       行          列

  四.mysql数据库

 oracle:MySQL

 马丁:MariaDB

xampp

服务器套装,保护多款服务器端软件,包含mysql,....

 1.mysql部署结构

    (1)服务器端:负责存储、维护数据 —— 银行的数据库服务器

        C:/xampp/mysql/bin/mysqld.exe   启动文件

         占用端口3306

    (2)客户端:负责连接服务器,对数据进行操作 —— 银行的ATM机

        C:/xampp/mysql/bin/mysql.exe  

 2.使用客户端连接服务器端

       mysql.exe  -h127.0.0.1  -P3306   -uroot   -p

         -h   连接的服务器,IP地址/域名   127.0.0.1/localhost   自己电脑的IP地址和域名

         -P   mysql所占用的端口

         -u   提供用户名,root是mysql的管理员账户

         -p   提供root对应的密码,xampp下root密码为空

  mysql  -uroot    简写形式

连接命令结束不能加分号

 3.常用的管理命令

    quit;    退出服务器的连接

    show  databases;   显示所有的数据库

    use  数据库名称;   进入指定的数据库

    show  tables;   显示所有的数据表

    desc  数据表名称;  描述指定的数据表的表头有哪些项

 五.SQL命令

  结构化查询语言,用于操作关系型数据库服务器,主要对数据进行增删改查

 1.SQL命令运行方式

    (1)交互模式

        客户端输入一行,点击回车,服务器就执行一行,适用于临时性的查看数据。

    (2)脚本模式

        把要执行的所有命令写在一个脚本文件中,一次性的提交给服务器执行,适用于批量的操作数据。

        mysql  -uroot<拖拽要提交的脚本文件          回车

 2.SQL命令的语法规范    

    (1)一条SQL命令可以跨越多行,以英文的分号作为结束

    (2)SQL命令不区分大小写,习惯上关键字大写,非关键字小写

    (3)假设某一条SQL命令出现语法错误,则此条命令往后所有命令不再执行

    (4)分为单行注释和多行注释

         -- 单行注释

         #单行注释

         /* 多行注释 */

六.常见的SQL命令

  1.设置客服端连接服务器端编码为utf8
     set names utf8;

   2.丢弃数据库,如果存在

       drop  database  if  exists  数据库名称;

  3.创建一个新的数据库,设置存储字符的编码为utf8
     create database hantang charset=utf8;

   4.进入创建的数据库

       use  数据库名称;

   5.创建数据表

       create  table  数据表名称(

            列名称  列类型,

                ...

        );

七.数据操作

   1.插入数据

       insert into 数据表名称 values(...);

   2.删除数据

       delete from 数据表名称 where 条件;

   3.修改数据

       update 数据表名称 set 列名称=值, ...  where 条件;

   4.查询数据

       select * from 数据表名称;

八.计算机存储字符

   1.如何存储英文字符

      ASCII:对所有的英文及其符号进行编码,总共有128个

      Latin-1:对欧洲字符进行了编码,总共有256个,兼容ASCII;MySQL默认使用这种编码

   2.如何存储中文字符

  GB2312:对6000多汉字进行了编码,兼容ASCII

  GBK:对2万多汉字进行了编码,兼容GB2312

  Unicode:对世界上主流国家常用的语言进行了编码,具体有三种存储方案,utf-8,utf-16,utf-32

   3.解决中文乱码

  (1)确保脚本文件的编码是utf8

  (2)设置客户端连接服务器端编码为utf8

      set names utf8;

  (3)设置服务器端创建数据库存储字符的编码为utf8

      charset=utf8

    4.针对于个别情况,还是出现乱码

退出交互模式

  执行  chcp   65001  将命令行编码改为utf-8

重新进入交互模式查询数据

    MySQL可视化操作

九.列类型

   在创建数据表的时候,指定的列存储的数据类型

   create table t1(

      nid  列类型

   );

   1.数值型

   tinyint  微整型,占1个字节,范围-128~127

   smallint  小整型,占2个字节,范围-32768~32767

   int  整型,占4个字节,范围-2147483648~2147483647

   bigint  大整型,占8个字节,范围

   float   单精度浮点型,占4个字节,存储的值越大精度越低

   double  双精度浮点型,占8个字节,存储的值越大精度越低

   decimal(M,D)  定点小数,占16个字节,M代表总的有效位数,D代表小数点后的位数

   boolean   布尔型,只有两个值,分别是true和false,存储只有两个值的数据,例如:性别、是否为会员、是否为推荐商品...

true和false是关键字,不能加引号

布尔型在使用的时候会转为tinyint,true转为1,false转为0,也可以直接插入1或者0

   2.日期时间型                      

  date  日期型  格式 "2022-10-30"

  time  时间型  格式 "14:55:30"

  datetime   日期时间型   格式 "2022-10-30 14:55:30"

   3.字符串型

  varchar(M)  变长字符串,不会产生空间浪费,数据操作速度相对慢,常用于存储变化长度的数据,例如:姓名、文字标题、详情...  M的最大值是65535

  char(M)  定长字符串,可能会产生空间浪费,数据操作速度相对快,常用于存储固定长度的数据,例如:手机号码、身份证号码...  M的最大值是255

  text(M)  大型变长字符串,M的最大值4G

 

varchar(5)

char(5)

a

a

a

ab

ab

ab

一二三

一二三

一二三

 选择合理列类型

  create  table  t1(

     id  int,

     title  varchar(64),

     birthday  date,

     age  tinyint,

     phone  char(11),

     sex  boolean

  );

数据库存储图片,存储的是图片的路径

img/1.jpg

img/huawei.png

十列约束  

  mysql可以对插入的值进行验证,例如:编号不能出现重复、性别只能是男或者女、一个人的成绩范围0~100之间... 只有符合条件才允许插入

  create  table  t1(

    pid  int  列约束

  );

   1.主键约束 —— primary key

      声明了主键约束的列上,不允许插入重复的值,一个表中只能有一个主键约束,通常加在编号列,会加快数据的查询速度

null  表示一个暂时无法确定的值,例如:暂时无法确定商品的价格、无法确定一个员工的手机、家庭住址...

null是关键字,不能加引号

      主键约束禁止插入null

   2.非空约束 —— not null

      声明了非空约束的列,禁止插入null

十一.列约束

   3.唯一约束 —— unique

      声明了唯一约束的列不允许插入重复的值,一个表中可以使用多次唯一约束

      允许插入null,甚至多个null

一旦使用了唯一约束,可能会影响到数据的默认排序

   4.检查约束 —— check

  也称为自定义约束,可以自己指定约束条件

  create table student(

    score  tinyint  check(score>=0 && score<=100)

  );

  mysql不支持检查约束,极大影响数据插入速度。

   5.默认值约束 —— default

  (1)设置默认值

    create  table  ht_event(

       ctime  date  default  "2022-8-31"

    );

    如果不设置默认值,则为null

  (2)应用默认值

    ①在插入值的位置,使用default关键字,就会自动应用默认值

      insert into ht_event values(3,"事件测试", default);

    ②给指定的列提供值,没有出现的列会自动应用默认值

      insert into ht_event(eid, title) values(4,"事件测试");

   6.外键约束

   声明了外界约束的列插入的值必须在另一个表的主键列出现,目的确保两个表之间建立关联。

   外键列要和对应的主键列的类型要保持一致

   foreign key(外键列)  references  另一个表(主键列)

  十二.自增列

  auto_increment:自动增长,声明了自增列,只需要赋值为null,就会获取最大值然后加1插入

   注意事项:必须添加在整数型的主键列

十三.简单查询


推荐阅读
  • 在CentOS上部署和配置FreeSWITCH
    在CentOS系统上部署和配置FreeSWITCH的过程涉及多个步骤。本文详细介绍了从源代码安装FreeSWITCH的方法,包括必要的依赖项安装、编译和配置过程。此外,还提供了常见的配置选项和故障排除技巧,帮助用户顺利完成部署并确保系统的稳定运行。 ... [详细]
  • 在 Ubuntu 22.04 LTS 上部署 Jira 敏捷项目管理工具
    Jira 敏捷项目管理工具专为软件开发团队设计,旨在以高效、有序的方式管理项目、问题和任务。该工具提供了灵活且可定制的工作流程,能够根据项目需求进行调整。本文将详细介绍如何在 Ubuntu 22.04 LTS 上安装和配置 Jira。 ... [详细]
  • 本文档提供了详细的MySQL安装步骤,包括解压安装文件、选择安装类型、配置MySQL服务以及设置管理员密码等关键环节,帮助用户顺利完成MySQL的安装。 ... [详细]
  • 时序数据是指按时间顺序排列的数据集。通过时间轴上的数据点连接,可以构建多维度报表,揭示数据的趋势、规律及异常情况。 ... [详细]
  • 本文详细介绍了Oracle RMAN中的增量备份机制,重点解析了差异增量和累积增量备份的概念及其在不同Oracle版本中的实现。通过对比两种备份方式的特点,帮助读者选择合适的备份策略。 ... [详细]
  • 构建Python自助式数据查询系统
    在现代数据密集型环境中,业务团队频繁需要从数据库中提取特定信息。为了提高效率并减少IT部门的工作负担,本文探讨了一种利用Python语言实现的自助数据查询工具的设计与实现。 ... [详细]
  • 华为云openEuler环境下的Web应用部署实践
    本文详细记录了在华为云openEuler系统上进行Web应用部署的具体步骤,包括配置yum源、安装Apache、MariaDB、PHP及其相关组件,并完成WordPress的安装与配置过程。 ... [详细]
  • 本文详细介绍了如何使用Linux下的mysqlshow命令来查询MySQL数据库的相关信息,包括数据库、表以及字段的详情。通过本文的学习,读者可以掌握mysqlshow命令的基本语法及其常用选项。 ... [详细]
  • 汇总了2023年7月7日最新的网络安全新闻和技术更新,包括最新的漏洞披露、工具发布及安全事件。 ... [详细]
  • 1、编写一个Java程序在屏幕上输出“你好!”。programmenameHelloworld.javapublicclassHelloworld{publicst ... [详细]
  • 本文探讨了如何在PHP与MySQL环境中实现高效的分页查询,包括基本的分页实现、性能优化技巧以及高级的分页策略。 ... [详细]
  • centos 7.0 lnmp成功安装过程(很乱)
    下载nginx[rootlocalhostsrc]#wgethttp:nginx.orgdownloadnginx-1.7.9.tar.gz--2015-01-2412:55:2 ... [详细]
  • 在CentOS 7环境中安装配置Redis及使用Redis Desktop Manager连接时的注意事项与技巧
    在 CentOS 7 环境中安装和配置 Redis 时,需要注意一些关键步骤和最佳实践。本文详细介绍了从安装 Redis 到配置其基本参数的全过程,并提供了使用 Redis Desktop Manager 连接 Redis 服务器的技巧和注意事项。此外,还探讨了如何优化性能和确保数据安全,帮助用户在生产环境中高效地管理和使用 Redis。 ... [详细]
  • 本文详细介绍了使用 Python 进行 MySQL 和 Redis 数据库操作的实战技巧。首先,针对 MySQL 数据库,通过 `pymysql` 模块展示了如何连接和操作数据库,包括建立连接、执行查询和更新等常见操作。接着,文章深入探讨了 Redis 的基本命令和高级功能,如键值存储、列表操作和事务处理。此外,还提供了多个实际案例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • 将XML数据迁移至Oracle Autonomous Data Warehouse (ADW)
    随着Oracle ADW的推出,数据迁移至ADW成为业界关注的焦点。特别是XML和JSON这类结构化数据的迁移需求日益增长。本文将通过一个实际案例,探讨如何高效地将XML数据迁移至ADW。 ... [详细]
author-avatar
丁军东建宏
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有