详细了解Mysql的基础操作
一、表复制
1、复制表结构 将表hello的结构复制一份为表hello3
2、复制数据
a、如果两张表的结构一样且你要复制所有列的数据
mysql> insert into hello3 select * from hello;
b、两张表结可能不一样且你只要复制部分列的数据
mysql> insert into hello3 (name,sex,degree) select name,sex,degree from hello;
二、索引
1、create 创建索引(只能创建普通索引和唯一索引)
创建普通索引:mysql> create index in_name on hello(name); 给表hello中的name列创建名为 in_name的索引。
创建唯一索引:mysql> create unique index un_name on hello(name); 给表hello中的name列创建唯一索引名为 un_name的索引。
查看索引:mysql> show index from hello; 查看表 hello的索引。
删除索引:mysql> drop index in_name on hello; 删除hello表中名为in_name的索引。
2、alter 创建索引(创建索引的通用方式)
创建普通索引:mysql> alter table hello add index in_name(name); 给表hello中的name列创建名为 in_name的索引。
删除(普通/唯一)索引:mysql> alter table hello drop index in_name; 删除表hello中名为in_name的普通索引。
删除自增:mysql> alter table hello modify id int unsigned not null;删除表hello中 id列(int类型) 的自增特性。
删除主键索引:mysql> alter table hello drop PRIMARY KEY;
创建唯一索引:mysql> alter table hello add unique(name); 给hello表的 name创建唯一索引 索引名是默认的。
创建主键索引:mysql> alter table hello add primary key(id); 给hello表的id字段创建主键索引。
将主键索引设置为自增:mysql> alter table hello modify id int unsigned not null auto_increment;将hello表中的主键id列设置为自增。
三、视图
主表数据的变化,视图会时时做相应的变化。如果视图所依赖的表出现错误(被删除)则视图也会发生错误。
创建视图:mysql> create view v_hello as select * from hello where id >5;
删除视图:mysql> drop view v_hello;
查看视图的创建过程:mysql> show create view v_hello; 查看视图v_hello 的创建过程。
四、内置函数
字符函数
1、CONCAT(str1,str2,....) 字符链接函数
mysql> select concat('A','B' );
2、LCASE(str1) 转为小写
mysql> select lcase("MYSQL");
3、UCASE(str1) 转大写
mysql> select UCASE("Mysql");
4、LENGTH(str) str的长度
mysql> select length('mysql');
5、LTRIM(Str) 去除前段空格
mysql> select LTRIM(' mysql');
6、RTRIM(str) 去除后端空格
mysql> select RTRIM(' mysql ');
7、REPEAT(str,count) 重复count次
mysql> select repeat('mysql',2);
8、REPLACE(str,search_str,replcae_str) 将str中的search_str 替换为replac_str
mysql> select REPLACE('mysql','m','M');
9、SUBSTRING(str,postion,length) 从str的postion开始取length个字符
mysql> select substring('mysql',1,2); 从1开始
10、SPACE(count) 生成count个空格
mysql> select concat(space(3),'mysql');
数学函数
1、BIN(decimal number): 将十进制转二进制
2、CEILING(number) 向上取整 mysql> select ceiling(10.12); 结果:11
3、FLOOR(number) 向下取整 mysql> select ceiling(10.12); 结果:10
4、MAX(column) 获取 最大列
5、MIN(column) 获取最小列
6、SQRT(num) 开平方
7、RAND() 返回0-1之间的随机数值
日期函数
1、CURDATE() 返回当前日期格式 yyyy-MM-dd
2、CURTIME()返回档期时间 12:11:56
3、NOW()返回当前时间 2017-05-12 21:12:34
4、UNIX_TIMESTAMP(date) 返回当前date的时间戳
5、FROM_UNIXTIME()返回UNIX时间戳的日期值
6、WEEK(date)返回当前时间date为一年中的第几周
7、YEAR(data)返回当前时间date的年份
8、DATEDIFF(expr1,expr2) 返回expr1与expr2之间的天数
五、预处理语句
无变量:
创建预处理语句:mysql> prepare stmt1 from 'select * from hello where id>5';创建一个名为stmt1的预处理语句
执行预处理语句:mysql> execute stmt1;执行stmt1预处理语句
带变量:
创建带参数的预处理语句:mysql> prepare stmt1 from 'select * from hello where id>?'
设置变量:mysql> set @i=6;
执行预处理语句:mysql> execute stmt2 using @i;
删除预处理语句:mysql> drop prepare stmt2; #mysql> DEALLOCATE PREPARE stmt2;
注意:每一次执行完EXECUTE时,养成好习惯,须执行DEALLOCATE PREPARE … 语句,这样可以释放执行中使用的所有数据库资源(如游标)。
不仅如此,如果一个session的预处理语句过多,可能会达到max_prepared_stmt_count的上限值。
六、事务处理
mysql默认事务是自动提交的。在做mysql事务处理时请将数据库或者表的ENGINE 设置为InnoDB
将表的存储引擎设置为INNODB:mysql> alter table hello engine=innodb;
设置mysql为非自动提交:mysql> set autocommit=0;
产生事务:mysql> delete from hello where id>7;
事务回滚:mysql> rollback;
事务提交:mysql> commit;
关于事务中的还原点:
创建一个事务:mysql> insert into hello (sex,degree,name) values(1,12312.32,'HHH');
对该事务设置还原点:mysql> savepoint p1;
回滚到指定的还原点:mysql> rollback to p1; 此时事务恢复到p1,也就是p1之后的事务p2 ,p3..这些还原点将失效。
回滚到原始的还原点:mysql> rollback;
七、存储过程
<!-- 创建存储过程 hello1()--> CREATE PROCEDURE hello1() BEGIN SET @i=0; WHILE @i<100 DO insert INTO hello (sex,degree,name) VALUES(1,@i,CONCAT('name',@i)); SET @i=@i+1; END WHILE; end; <!-- 查看存储--> SHOW PROCEDURE STATUS; <!-- 查看hello1()存储过程--> show CREATE PROCEDURE hello1; <!-- 执行存储过程--> CALL hello1;
八、重排auto_increment值
mysql中我们的主键id如果设置为主键自增策略,那我们如何清空表,并且恢复自增列id的值。
方式一:使用truncate table tableName; 该方式在清空表的同时恢复auto_increment 的值。
方式二:
1、mysql> delete from hello3; 清空表 (该方式效率较低)
2、mysql> alter table hello3 auto_increment=1; 恢复auto_increment 的起始值为1
以上是详细了解Mysql的基础操作的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

MySQL是一种开源的关系型数据库管理系统,主要用于快速、可靠地存储和检索数据。其工作原理包括客户端请求、查询解析、执行查询和返回结果。使用示例包括创建表、插入和查询数据,以及高级功能如JOIN操作。常见错误涉及SQL语法、数据类型和权限问题,优化建议包括使用索引、优化查询和分表分区。

MySQL在数据库和编程中的地位非常重要,它是一个开源的关系型数据库管理系统,广泛应用于各种应用场景。1)MySQL提供高效的数据存储、组织和检索功能,支持Web、移动和企业级系统。2)它使用客户端-服务器架构,支持多种存储引擎和索引优化。3)基本用法包括创建表和插入数据,高级用法涉及多表JOIN和复杂查询。4)常见问题如SQL语法错误和性能问题可以通过EXPLAIN命令和慢查询日志调试。5)性能优化方法包括合理使用索引、优化查询和使用缓存,最佳实践包括使用事务和PreparedStatemen

Apache 连接数据库需要以下步骤:安装数据库驱动程序。配置 web.xml 文件以创建连接池。创建 JDBC 数据源,指定连接设置。从 Java 代码中使用 JDBC API 访问数据库,包括获取连接、创建语句、绑定参数、执行查询或更新以及处理结果。

选择MySQL的原因是其性能、可靠性、易用性和社区支持。1.MySQL提供高效的数据存储和检索功能,支持多种数据类型和高级查询操作。2.采用客户端-服务器架构和多种存储引擎,支持事务和查询优化。3.易于使用,支持多种操作系统和编程语言。4.拥有强大的社区支持,提供丰富的资源和解决方案。

在 Docker 中启动 MySQL 的过程包含以下步骤:拉取 MySQL 镜像创建并启动容器,设置根用户密码并映射端口验证连接创建数据库和用户授予对数据库的所有权限

MySQL在Web应用中的主要作用是存储和管理数据。1.MySQL高效处理用户信息、产品目录和交易记录等数据。2.通过SQL查询,开发者能从数据库提取信息生成动态内容。3.MySQL基于客户端-服务器模型工作,确保查询速度可接受。

Laravel 是一款 PHP 框架,用于轻松构建 Web 应用程序。它提供一系列强大的功能,包括:安装: 使用 Composer 全局安装 Laravel CLI,并在项目目录中创建应用程序。路由: 在 routes/web.php 中定义 URL 和处理函数之间的关系。视图: 在 resources/views 中创建视图以呈现应用程序的界面。数据库集成: 提供与 MySQL 等数据库的开箱即用集成,并使用迁移来创建和修改表。模型和控制器: 模型表示数据库实体,控制器处理 HTTP 请求。

优雅安装 MySQL 的关键在于添加 MySQL 官方仓库。具体步骤如下:下载 MySQL 官方 GPG 密钥,防止钓鱼攻击。添加 MySQL 仓库文件:rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm更新 yum 仓库缓存:yum update安装 MySQL:yum install mysql-server启动 MySQL 服务:systemctl start mysqld设置开机自启动
