`

MySQL(转+整理)

    博客分类:
  • DB
 
阅读更多

 

MySql数据库的基本操作

 

 

一、字段数据类型:

1、布尔型  BOOL                   1字节

       0---false        0---true

 

2、微整型    tinyint    1字节

      unsigned(无符号数)范围0255

      有符号数范围为-128127

 

3、小整型  smallint  2字节

      unsigned(无符号数)范围065535

      有符号数范围为-3276832767

 

4、中整型  mediumint  3字节

      unsigned(无符号数)范围016777215

      有符号数范围为-83886088388607

 

5、整型  int  4字节

      unsigned(无符号数)范围04294967295

      有符号数范围为-21474836482147483647 

6、大整型  bigint  8字节

      unsigned(无符号数)范围018446744073709551615

      有符号数范围为-92233720368547758089223372036854775807

 

7、单精度类型  float  4字节    最多10位有效数字

      允许的值是-3.402823466E+38-1.175494351E-3801.175494351E-383.402823466E+38

 

8、双精度类型  double  8字节    最多17位有效数字

     允许的值是-1.7976931348623157E+308-2.2250738585072014E-30802.2250738585072014E-3081.7976931348623157E+308

 

10、精确小数型  decimal(M,D)  M<=30

    M是精度的总数,D是小数点后面的位数。

 

11、日期型  date  3

     日期。支持的范围为‘1000-01-01’到‘9999-12-31’

12、日期时间型  datetime  8字节

     日期和时间的组合。支持的范围是'1000-01-01 00:00:00''9999-12-31 23:59:59'

 

 

13、时间戳型  timestamp  4字节

     时间戳。范围是'1970-01-01 00:00:00'2037年。

TIMESTAMP列用于INSERTUPDATE操作时记录日期和时间。如果你不分配一个值,表中的第一个TIMESTAMP列自动设置为最近操作的日期和时间。也可以通过分配一个NULL值,将TIMESTAMP列设置为当前的日期和时间。

 

14、时间型  time  3字节

     时间。范围是'-838:59:59''838:59:59'

 

15、年期型  year  1

      两位或四位格式的年。默认是四位格式。在四位格式中,允许的值是190121550000。在两位格式中,允许的值是7069,表示从1970年到2069年。MySQLYYYY 格式显示YEAR值,但允许使用字符串或数字为YEAR列分配值。 

16、字符类型  char(M)  M<=255    汉字与英文字符计算方法相同

     固定长度字符串,当保存时在右侧填充空格以达到指定的长度。M表示列长度。M的范围是0255个字符。

     注:当检索CHAR值时尾部空格被删除。

 

17、变长字符类型varchar(M)  M<=255    汉字与英文字符计算方法相同

      变长字符串。M表示最大列长度。

      注:当检索时不删除VARCHAR值的尾部空格。

 

18、二进制类型      BINARY(M)  M<=255

     固定长度二进制数,不足添0

     注:当检索BINARY值时尾部0被删除。

 

19、二进制类型      VARBINARY(M)  M<=255

     变长二进制数。

     注:当检索时不删除尾部0

 

20、微对象类型      TINYBLOB

     最大长度为255的二进制数。

21、微文本类型  TINYTEXT 

      最大长度为255的字符串。

 

22、对象类型       BLOB

      最大长度为65,535的二进制数。

 

23、文本类型      TEXT

       最大长度为65,535的字符串。

 

24、中对象类型      MEDIUMBLOB

       最大长度为16,777,215的二进制数。

 

25、中文本类型      MEDIUMTEXT

       最大长度为16,777,215的字符串。

 

26、长对象类型      LONGBLOB

       最大长度为4,294,967,295的二进制数。

 

27、长文本类型      LONGTEXT

       最大长度为4,294,967,295的字符串。

28、枚举类型  ENUM  

      格式:ENUM('value1','value2',...)

      只能有一个值的字符串,从值列‘value1,‘value2...NULL中或特殊 ‘’错误值中选出。ENUM列最多可以有65,535个截然不同的值。

 

29、集合类型       SET

       格式: SET('value1','value2',...)

       字符串对象可以有零个或多个值,每个值必须来自列值‘value1,‘value2...SET列最多可以有64个成员。

 

二、字段相关关键词:

     1primary key          主键字段

 

     2auto_increment    自动增加字段

 

     3nullnot null        允许为空或不允许为空字段

 

     4unsigned              无符号数

          unsigned zerofill   无符号零填充数

          on update current_timestamp   用当前时间戳做为字段的默认值

     5default   值’              指定默认值

 

     6check(约束表达式)    为字段设置约束

 

     7FOREIGN KEY (外键表字段) REFERENCES 主键表(主键字段)

          设置主外键关系。

 

 

 

 三、mysql查询语句:

 

     1Create Table语句:

      格式:

          Create Table  表名

          (

             字段名  数据类型 [auto_increment]  [primary key] [null | not null] [default ‘默认值’][check(约束表达式)],

            

             [,foreign key(字段)  references 主键表(主键字段) ]

          )

     2Alter Table语句:

 

      格式1

          Alter Table  表名

          ADD 字段名数据类型

 

      格式2

          Alter Table  表名

          Drop column 字段名

 

 

      3drop Table语句:

 

      格式:

          drop Table  表名

     4insert into语句:

 

      格式:

          insert into 表名 [(字段列表)] values (值列表)[, (值列表)]

 

 

      5update语句:

 

      格式:

          update 表名 set 字段1=1[,字段2=2] [where 条件]

 

      6delete语句

      格式:

           delete from 表名 [where 条件]

 

       7truncate语句

       格式:

            truncate 表名

 

       8select语句及子查询

     

       格式:

       select *|字段列表  from 表列表

       [where 条件] 

       [group by 字段 [asc|desc]] 

       [having 条件]

       [order by 字段 [asc | desc]]

       [limit [开始记录序号,]操作记录数]

 

 

      1、字段别名:

          字段名  as 别名

 

       2、表列表:

            1)、内联:         inner   join

            2)、左外联:     left [outer] join

            3)、右外联:     right [outer] join

            4)、交叉连联接:   cross join                 

      3limit [开始记录序号,]操作记录数:

        limit子句的格式:只能放在select 语句结束

 

        格式1:

              limit  数字

              从第一条记录(索引号为0)开始并包括第一条记录,选取数字 指定的那么多条记录

 

        格式2:

              limit  数字1,数字2

              从数字1(索引号)对应的记录开始(包括该记录),选取数字2 指定的那么多条记录

              如果数字10,则

              limit  0,数字2            等同于           limit  数字2

       

        如何实现分页?

       select语句 limit (PageNo-1)*PageSize,PageSize

 

   四 、统计函数:

        1)count(*|字段名)

        统计记录总数

 

        2)sum(字段名表达式)

        求和

 

        3)avg(字段名表达式)

        求平均值

 

        4)max(字段名表达式)

        求最大值

 

 

        5)min(字段名表达式)

        求最小值

 

   、视图管理:

        1)、创建视图

        格式:create view 视图名  as   select语句

 

        2)、修改视图

        格式:alter view 视图名  as   select语句

 

        3)、删除视图

        格式:drop view 视图名

 

     六、索引管理:

        1)、创建索引

        格式:create index 索引名 on 索引表(字段1 [asc|desc],…,字段n [asc|desc])

 

        2)、删除索引

        格式:drop index  索引名 on 索引表

 

   mysql中设定存取权限的SQL语句:

格式:GRANT  ALL|{SELECT,INSERT,UPDATE,DELETE}  ON 数据库.  TO  用户名@"主机名"   IDENTIFIED  BY  "密码"

其中数据库或表名中可以使用*表示不限制数据库或表,主机名中可以使用%表示用户可以从哪些主机上连接数据库,并指定密码。

例:增加一个用户testuser授权其能够对testdata进行所有操作,并可以从任何主机连接数据库。

 

GRANT  ALL  ON  testdata.*  TO  testuser@"%" IDENTIFIED BY "12345678“

 

例:增加一个用户testuser授权其能够对testdata进行查询操作,并可以从任何主机连接数据库。

 

GRANT  SELECT  ON  testdata.* TO  testuser@"%" IDENTIFIED BY "12345678"

flush privileges;  //刷新MySql中的权限表

 

 

MySql中删除用户的SQL语句:

格式:DELETE  FROM  mysql.user  WHERE  user='用户名';

例:

     DELETE  FROM  mysql.user  WHERE User='testuser';

     flush privileges;  //刷新MySql中的权限表

 

 

、修改用户密码的SQL语句:

格式:SET PASSWORD FOR 用户名=PASSWORD("新密码")

:

SET PASSWORD FOR testuser= PASSWORD("123");

 

、数据库的备份与恢复语句:

1)、数据库的备份:

格式:mysqldump --user=用户名 --password=密码数据库 >文件名.sql

1:手工备份

2:创建备份计划任务

    D:\WINNT\system32\CMD.EXE /c "mysqldump --user=root --password=123456 testdata >c:\test.sql"

  

    下面这种备份可能存在执行权限不够的问题:

echo ` D:\\WINNT\\system32\\CMD.EXE /c "mysqldump --user=root --password=123456 testdata >c:\\test.sql"`;

 

2)、数据库的恢复:

 

格式mysql --user=用户名 --password=密码数据库 <文件名.sql

mysql --user=root --password=123456 testdata <c:\test.sql

 

下面这种恢复可能存在执行权限不够的问题:

echo `D:\\WINNT\\system32\\CMD.EXE /c "mysql --user=root --password=123456 testdata <c:\\test.sql"`;

分享到:
评论

相关推荐

    MySQL++资料

    搜集并整理的相关资料: 1 《MySQL++ V3.1.0 用户手册(中文).txt》 自由骑士笃志翻译的来自http://freeknight.jimdo.com/ 2 《mysql++基本用法报告及使用规范.pdf》 作者 常兴龙 2007-6-1 3 《利用MYSQL ++进行...

    access+mssql+mysql+oracle 注入整理文档(详细图解)

    access+mssql+mysql+oracle 注入整理文档(详细图解)access+mssql+mysql+oracle 注入整理文档(详细图解)access+mssql+mysql+oracle 注入整理文档(详细图解)access+mssql+mysql+oracle 注入整理文档(详细图解)access+...

    竞赛算法+剑指offer面试+Mysql数据库+整理的学习资料.zip

    这份压缩包文件“竞赛算法+剑指offer面试+Mysql数据库+整理的学习资料.zip”包含了一系列与编程竞赛、面试准备以及MySQL数据库相关的学习资源。这些资料对于提升编程技能,特别是应对算法竞赛和求职面试,以及掌握...

    java+++mysql++BS结构的进销存系统源码整理

    【标题】"java+++mysql++BS结构的进销存系统源码整理"涉及的主要知识点是基于Java编程语言和MySQL数据库构建的BS(Browser-Server,浏览器-服务器)架构的进销存系统。进销存系统是企业管理的核心部分,用于跟踪和...

    mysql优化笔记+资料

    MySQL是世界上最受欢迎的关系型数据库管理系统之一,用于存储和管理各种数据。优化MySQL是提升系统性能、减少资源消耗和提高响应速度的关键。以下是一份详细的MySQL优化笔记,涵盖了多个方面: 一、查询优化 1. ...

    PHP8.1+nginx+mysql8+redis7+go redis asynqmon管理界面+rabbitmq docker

    PHP8.1+nginx+mysql8+redis7+go redis asynqmon管理界面+rabbitmq docker ...自己整理的,需要的拿走,可以直接部署,也可以改改后部署 附带2个实用shell脚本, 以及 docker compose 源文件, 不好直接去官网下载的,这里 有

    SpringBoot+Mybatis+Atomikos+Mysql+Oracle 多数据源分布式事物后台搭建

    SpringBoot+Mybatis+Atomikos+Mysql+Oracle 多数据源分布式事物后台搭建 完整demo包,直接下下来解压,数据库配成自己的库,表自己的表,修改下脚本直接跑,网上大把资料,没一个能直接用的,这里花了点时间稍做...

    APACHE2.2+MYSQL5.1+PHP5.3+LINUX+SMARTY2.6+JQUERY1.4+CSS3.0 手册集合

    APACHE2.2+MYSQL5.1+...最近在linux上开发,把所有之前在windows有很多chm手册整理一下。包含了常用的php开发技术包含前端和后端的,和linux教程。希望能够为你带来方便 2010-7-26

    mysql优化精华整理文档

    MySQL优化精华整理文档是针对数据库性能提升的一份详细指南,涵盖了多个关键方面,旨在帮助管理员和开发者提升数据库的运行效率。以下是对各个知识点的详细解释: 1. **我们可以且应该优化什么?** - 优化的目标...

    MySQL笔记整理+练习所用数据库

    MySQL+自学

    MySQL源码分析整理稿

    MySQL源码分析整理稿,来自ibm大牛的分析,是不可多得的好资料

    MySQL+8.0+OCP+1Z0-908

    针对给定文件信息,我们可以整理出以下知识点: 1. MySQL代理账户的创建和授权:在MySQL中可以创建代理账户,并将其与实际账户关联起来,使得代理账户可以代表实际账户执行操作。文件中的命令示例展示了如何创建一...

    java+mysql进销存管理系统源码整理

    【标题】"java+mysql进销存管理系统源码整理"涉及的是使用Java编程语言和MySQL数据库构建的一个进销存管理系统的源代码集合。这个系统旨在帮助企业或个人有效地管理日常的进货、销售和库存活动,提高运营效率。进销...

    mysql基础知识和mysql优化整理

    MySQL是世界上最受欢迎的关系型数据库管理系统之一,广泛应用于各种规模的企业和项目中。本文将深入探讨MySQL的基础知识和优化策略。 一、MySQL基础知识 1. 数据库与表:MySQL中的数据库是一个逻辑存储单元,用于...

    MySql8+VS2010访问(含远程访问).docx

    此文档是本人自己在使用VS2010链接MySQL8的时候遇到无法进行远程访问的时候,整理出来的方法,希望能给大家提供帮助

    python爬虫+mysql+网页数据分析

    在"python爬虫+mysql"的组合中,爬取到的数据会被清洗和整理后存储到MySQL数据库中,便于后续的数据查询和分析。使用Python的`mysql-connector-python`库可以方便地与MySQL进行交互,执行CRUD(创建、读取、更新、...

    经典mysql数据库知识整理

    ### 经典MySQL数据库知识整理 #### 概述 本文档旨在为初学者及有一定基础的用户快速掌握MySQL的核心操作提供便利。从基础的数据库创建、表结构设计,到更高级的功能如触发器、索引、函数以及存储过程等,都通过实际...

    常见面试题 :分布式+微服务+MYSQL+Redis+JVM+Spring等等(0积分下载)

    3. 垃圾回收:GC算法(标记-清除、复制、标记-整理、分代收集),以及GC调优。 4. 性能监控:如何使用JVisualVM、JConsole等工具分析和诊断JVM性能问题。 Spring框架是Java企业级应用的基石,涵盖: 1. IOC(控制...

    mysql转换为doc文档

    "mysqlתdoc"和"mysql转doc"可能是转换过程中的关键步骤或者软件的名称,但具体信息不足,无法给出详细说明。在进行转换时,需要注意的是,不仅要考虑SQL语句的结构,还要关注特殊字符、注释、换行等格式的保留,以...

    php+mysql+apache[整理].pdf

    【MySQL】MySQL是一个关系型数据库管理系统(RDBMS),由Oracle公司维护。它是开源的,支持SQL语言,广泛应用于网站和应用程序的数据存储。MySQL5.0.37是该软件的一个版本,可能包含了一些新特性、修复和性能提升。...

Global site tag (gtag.js) - Google Analytics