MySQL的语法及其使用指南

数据库的选取,创建,丢弃和变更 数据表和索引的创建,变更和丢弃从数据表检索信息

先看看MySQL支持的SQL语句的分类
1, 数据库的选取,创建,丢弃和变更
use
create database
drap database
alter database
2, 数据表和索引的创建,变更和丢弃
create table
drop table
create index
drop index
alter index
3, 从数据表检索信息
select
union
4, 事务处理
begin
commit
rollback
set autocommit
5, 对数据表里面的信息进行修改
delete
insert
load data
replace
update
6, 管理型命令
flush
grant
revoke
一,命名规则
1MySQL允许用在名字中的系统字符.
任何字母数字加上”_” 或 “$”
2名字的长度.
数据库,数据表,数据列,索引等名字最多64个字母
256别名最多256个字母
3名字的限定符
依据不同的上下文,有时需要给某些名字加上某个限制:如数据列的全限定,部分限定,以及无限制.这一点比较容易理解
select * from db_name.tbl_name…
二,MySQL中的大小写问题
关键字和函数名:不区别
数据库名数据表名:根据服务器主机系统而定
数据列名索引名:不区别
别名:区别大小写
一般来说,不管系统是否区分数据库名和数据表名中的字母大小写情况,我们都应该在同一个查询语句里面以前后一致的字母大小写形式来写出这些名字,这是一个非常好的编程习惯。
三,MySQL支持的名种数据表类型详解
1,ISAM数据表
这是3.23版本之前的MySQL支特的唯一一种表类型,目前己经过时,MyIASM处理程库逐步取代了ISAM处理程序,这种老式的表类型己经没有人在用了

2,MyIASM数据表
• 这是目前中MySQL默认使用的数据表类型。其优点是
• 如果主机操作系统支持大尺寸文件,数据表长度就能够很大,就能客纳更多的数据.
• 数据表内容独立于硬件也就是说可以把数据表在机器之间随意拷贝
• 提高了索引方面的功能
• 提供了更好的索引键压缩效果
• auto_incremnet能力加强
• 改进了对数据表的完整性检查机制
• 支持进行fulltext全文本搜索

3,Merge数据表
这是一种把相同结构的MyIASM数据表组织为一个逻辑单元的方法
4,HEAP数据表
这是一种使用内存的数据表,而且各个数据行的长度固定,这两个特性使得这种类型数据表的检索速度非常快,作为一种临时性的数据表,HEAP在某些特定情况下很有用。
5,BDB数据表
这种数据表支持事务处理机制
具有良好的并发性能
6,InnoBDB数据表
这是最近加入MySQL的数据表类型,有许多新的特性
支持事务处理机制
崩溃后能够立刻恢复
支持外键功能,包括级联删除
具有并发功能
7这种数据表在硬盘上的文件存储方式
IASM Frm isd ism
MyISAM Frm myd myi
Merge Frm mrg
Heap Frm
BDB Frm db
InnoBDB frm
8数据表的可移植性
通用方法:吧数据表的内容导出到一个文本文件中,然后拷贝到目的地硬盘上,在用脚本加载到数据库里面,这是首先我们应该掌握的方法。但就文件层次的操作来说,某些数据表是可以单独拷贝的。看表了
ISAM No
MyIASM Yes
BDB No
InnoBDB Yes

四,索引的初步知识
1,索引是加快数据表内容访问性能的基本手段,其基本特性:
为可以索引单独的数据列也可以构造包含多个数据列的复合索引
索引可以包含重复键值
可以为一个数据表建立多个索引
2,不同的数据表有着不同的索引特性使用的时候需要区别对待
3,如何创建索引
①用alter table命令创建索引
②用create index 命令创建索引
③在create table 时创建索引

五,变更数据表的结构
当发现某个数据表的结构己经不能满足我们的使用要求时,就要对其结构进行变更.可能需要这个数据表存放比以前更多的信息;也可能是这个数据表里面的某些信息己经没用;了或许是现有的某个数据列宽度太窄…在这些情况下都要用到alter 语匀
1,重新命名数据表
alter table A rename to B //数据表A改名为B
rename table A to B //数据表A改名为B
rename A toC,B to A,C to A //数据表A和数据表B互换名字
alter table S.A rename to T.A //数据库S里面的表A移动到数据库B里面
rename table S.A to T.A //数据库S里面的表A移动到数据库B里面
2,改变数据列的类型
我们现在要把数据表A里面的一个smallint unsigned类型的数据列I再次改动为 mediumint unsigned 类型
alter table A motify I mediumint unsigned
alter table A change I I mediumint unsigned
注意change子句的特点:不仅能够改变数据列的类型,还能改变数据列的名字。这是modify子句所不能完成的。下面就把这个数据列改名了。
alter table A change I J mediumint unsigned
3,将数据表由可变长度数据行转变成固定长度数据行
有的时候为了提高性能,需要做这样的转变,但有一点需要注意:必须用同一条alter命令来一次改变所有的数据列,不能仅仅改变一个数据列!举例如下:
create table A(name varchar(40),address varchar(80))
我们开始修改命令就应该是:
alter table A modify name char(40),modify address char(80);
4,将数据表由固定长度数据行转变成可变长度数据行
如果觉得空间利用率不高,那就需要再转变回来,这个就很简单了,没有特别要求
alter table A modify name varchar(40)
5,转换数据表类型
我们知道,MySQL数据库存在多种数据表类型,但每一种类型的特性并不相同。
如果你想让你的数据表支持事务处理机制。那就必须把它搞成BDB或innoBDB格式
alter table A type= BDB
alter table A type= InnoBDB

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/814888.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
Redmi K70至尊版性能揭秘:天玑9300+调校究竟有多激进?
上一篇 2025年11月27日 00:32:37
箱包类App开发,应用公园黑科技教你自己制作
下一篇 2025年11月27日 00:32:38

相关推荐

  • composer require-dev和require有什么不同_Composer Require与Require-Dev区别解析

    require用于声明项目运行必需的依赖,如框架、数据库组件和第三方SDK,这些包会随项目部署到生产环境;2. require-dev用于声明仅在开发和测试阶段需要的工具,如PHPUnit、PHPStan、Faker等,不会默认部署到生产环境;3. 安装时composer install根据环境决定…

    2026年5月10日
    1000
  • 开源免费PHP工具 PHP开发效率提升利器

    推荐开源免费PHP开发工具以提升效率:VS Code、Sublime Text轻量高效,PhpStorm专业强大;调试用Xdebug、Kint、Ray;依赖管理选Composer;代码质量工具包括PHPStan、Psalm、PHP_CodeSniffer;数据库管理可用%ignore_a_1%MyA…

    2026年5月10日
    000
  • php常量怎么用_PHP常量(define/const)定义与使用方法

    PHP中可通过define函数和const关键字定义常量,用于存储不可变值。define适用于全局作用域,支持动态名称和条件定义,如define(‘SITE_NAME’, ‘MyWebsite’);const在编译时生效,语法简洁但限制多,只能在类或全…

    2026年5月10日
    000
  • 如何插入查询结果数据_SQL插入Select查询结果方法

    如何插入查询结果数据_SQL插入Select查询结果方法如何插入查询结果数据_SQL插入Select查询结果方法如何插入查询结果数据_SQL插入Select查询结果方法如何插入查询结果数据_SQL插入Select查询结果方法

    使用INSERT INTO…SELECT语句可高效插入数据,通过NOT EXISTS、LEFT JOIN、MERGE语句或唯一约束避免重复;表结构不一致时可通过别名、类型转换、默认值或计算字段处理;结合存储过程可提升可维护性,支持参数化与动态SQL。 将查询结果数据插入到另一个表中,可以…

    2026年5月10日 用户投稿
    000
  • MySQL数据库不支持中文的解决办法

    接上一篇文章,在解决了mysql+flask环境配置问题之后,往数据库存中文字符串会报1366错误,提示不正确的字符。继而发现默认的mysql采用了latin1字符集,这种编码是不支持中文的。 如果想支持中文的话,需要设置一下mysql字符集。 众所周知utf-8是可以的,gbk也没问题,为了可扩展…

    用户投稿 2026年5月10日
    000
  • Go语言接口与切片:如何识别和操作[]interface{}

    本文将深入探讨Go语言中如何识别和操作`[]interface{}`类型的切片。我们将介绍类型断言(Type Assertion)的关键作用,并通过`switch`语句演示如何安全地检测`[]interface{}`类型,并进而遍历其内部元素。文章旨在提供清晰的示例代码和专业指导,帮助开发者有效地处…

    2026年5月10日
    000
  • c++中头文件和源文件的区别_c++头文件与源文件作用对比

    头文件声明接口,源文件实现逻辑。头文件含类、函数声明及宏定义,通过#include被多文件共享,用include守卫防重;源文件实现具体功能,编译为目标文件后由链接器合并。声明与实现分离提升模块化与编译效率,模板和内联函数因需编译时可见故常置于头文件,命名空间避免符号冲突,整体结构使项目更清晰易维护…

    2026年5月10日
    000
  • Go语言连接外部MySQL数据库:DSN配置与常见错误解析

    本文详细阐述了go语言使用`go-sql-driver/mysql`驱动连接外部mysql数据库的正确方法。重点介绍了数据源名称(dsn)的规范格式,特别是主机地址部分的配置,以避免常见的“getaddrinfow: the specified class was not found.”等网络解析错…

    2026年5月10日
    000
  • Go语言中复制数组的几种方法详解

    本文介绍了在 Go 语言中复制数组和切片的几种方法,重点讲解了内置的 `copy` 函数的使用方式,以及在多维切片场景下深拷贝与浅拷贝的区别,并提供了相应的代码示例。通过本文,你将掌握在不同场景下选择合适的复制方法,避免潜在的陷阱。 在 Go 语言中,复制数组和切片是一个常见的操作。根据不同的需求,…

    2026年5月10日
    000
  • HTML的语法详解

    这次给大家带来html的语法详解,怎么使用html的语法?使用html语法的注意事项有哪些,下面就是实战案例,一起来看一下。 什么是HTML标记语言? HTML是表示网页信息的符号标记语言。 2.HTML的标记和他的属性 1.HTML文档的保存格式:.html、.htm、.xhtml 立即学习“前端…

    用户投稿 2026年5月10日
    000
  • 后缀php怎么打开_php文件打开方式与运行环境搭建指南

    要打开PHP文件需根据用途选择方式:查看代码可用文本编辑器或IDE,运行则需服务器环境。推荐新手使用XAMPP、WAMP等集成环境,将文件放入htdocs目录后访问localhost;开发者可利用PHP内置服务器,命令行执行php -S localhost:8000运行;高级用户可手动配置Apach…

    2026年5月10日
    000
  • 解决PHP foreach循环中变量“继承”问题:理解与避免意外数据泄露

    本文探讨PHP foreach循环中一个常见的陷阱:当循环内部的数组或变量未被显式初始化时,其值可能会“继承”自上一次循环迭代,导致意外的数据泄露和逻辑错误。文章将深入分析这一现象的根源,并通过示例代码展示如何通过在每次迭代开始时正确初始化变量来解决此问题,确保代码行为的预期一致性。 引言:fore…

    2026年5月10日
    100
  • Pandas:基于条件和 Groupby 替换列中的特定字符

    本文介绍了如何使用 Pandas 库,结合 groupby 函数和字符串操作,根据特定条件替换 DataFrame 列中的字符。通过累积计数和字典映射,能够灵活地修改列中的特定部分,并根据替换值调整相关文本,实现数据清洗和转换的目的。 在数据分析和处理中,经常需要根据特定条件修改 DataFrame…

    2026年5月10日
    000
  • PHP动态网页数据库备份恢复_PHP动态网页MySQL数据库备份教程

    答案:PHP动态网页的MySQL数据库备份与恢复需通过定期导出SQL文件并安全存储来保障数据安全,核心方法包括使用mysqldump命令行工具实现高效灵活的自动化备份,利用phpMyAdmin图形化工具进行手动导出导入以降低操作门槛,以及通过PHP脚本调用系统命令将备份过程集成到应用中;恢复时可采用…

    2026年5月10日
    000
  • HTML文档脚本怎么加载_HTML加载JavaScript教程

    脚本应优先通过defer或async异步加载以避免阻塞渲染;将脚本放在body底部可防阻塞,但推荐使用defer确保DOM解析完成后再执行;async适用于独立脚本,defer用于依赖DOM或需顺序执行的脚本;优化方式包括代码分割、懒加载、CDN加速和浏览器缓存;加载失败时应重试、降级处理并监控错误…

    2026年5月10日
    000
  • Go语言中sync.WaitGroup的深度解析与实践

    sync.WaitGroup是Go语言中用于并发编程的重要同步原语,它允许主协程等待一组子协程执行完毕。本文将深入探讨WaitGroup的工作原理、典型使用模式及其与sync.Mutex等其他同步机制的区别,并通过实际代码示例,帮助读者掌握其在并发控制中的应用,避免常见的误区,确保并发程序的正确性和…

    2026年5月10日
    000
  • php登录怎么实现_php用户登录系统完整实现

    <blockquote>PHP用户登录系统的核心是安全验证与会话管理。首先创建POST提交的登录表单,避免敏感信息暴露;后端通过session_start()启动会话,使用trim()和htmlspecialchars()清理输入,防止XSS攻击;利用PDO预处理语句查询数据库,防止SQ…

    用户投稿 2026年5月10日
    000
  • Python怎么实现一个上下文管理器_Python上下文管理器协议实现

    自定义Python上下文管理器需实现__enter__和__exit__方法,前者在进入with块时获取资源并返回对象,后者在退出时释放资源并可处理异常;通过类或contextlib.contextmanager装饰生成器函数均可创建;文件操作中with open()自动关闭文件是典型应用;__ex…

    2026年5月10日
    000
  • JavaScript解释器_javascript代码执行

    JavaScript通过引擎解析执行,先语法分析生成AST,再编译为字节码或机器码,最后执行;执行时创建上下文并入栈,同步代码直接运行,异步任务由API处理后回调入队,事件循环在调用栈空时将回调推入执行;此机制解释了变量提升、暂时性死区及宏任务与微任务执行顺序差异。 JavaScript代码的执行依…

    2026年5月10日
    000
  • 远程MySQL数据库连接指南:从本地PHP应用访问GCP实例数据库

    本文详细指导如何在本地php应用中连接到google cloud platform (gcp) 虚拟机实例上的远程mysql数据库。教程涵盖了数据库连接参数的配置、使用php pdo建立连接的方法、gcp环境下的网络配置要点,以及常见的安全和故障排除建议,旨在帮助开发者顺利实现跨环境的数据库通信。 …

    2026年5月10日
    000

发表回复

登录后才能评论
关注微信