MySQL编程中的6个重要的实用技巧_MySQL
1.每一行命令都是用分号(;)作为结束
对于MySQL,第一件你必须牢记的是它的每一行命令都是用分号(;)作为结束的,但当一行MySQL被插入在PHP代码中时,最好把后面的分号省略掉,例如:
<ol class="dp-j"><li class="alt"><span><span>mysql_query(</span><span class="string">"INSERT INTO tablename(first_name,last_name)VALUES('$first_name',$last_name')"</span><span>); </span></span></li></ol>
这是因为PHP也是以分号作为一行的结束的,额外的分号有时会让PHP的语法分析器搞不明白,所以还是省略掉的好。在这种情况下,虽然省略了分号,但是PHP在执行MySQL命令时会自动的帮你加上的。
2.采用关联数组存取查询结果
看下面的例子:
<ol class="dp-j"> <li class="alt"><span><span>$connection=mysql_connect(</span><span class="string">"localhost"</span><span>,</span><span class="string">"albert"</span><span>,</span><span class="string">"shhh"</span><span>); </span></span></li> <li><span> </span></li> <li class="alt"><span>mysql_select_db(<span class="string">"winestore"</span><span>,$connection); </span></span></li> <li><span> </span></li> <li class="alt"><span>$result=mysql_query("SELECT cust_id,surname, </span></li> <li><span> </span></li> <li class="alt"><span>firstname FROM customer",$connection); </span></li> <li><span> </span></li> <li class="alt"><span><span class="keyword">while</span><span>($row=mysql_fetch_array($result)) </span></span></li> <li><span> </span></li> <li class="alt"><span>{ </span></li> <li><span> </span></li> <li class="alt"><span>echo<span class="string">"ID:t{$row["</span><span>cust_id</span><span class="string">"]}n"</span><span>; </span></span></li> <li><span> </span></li> <li class="alt"><span>echo<span class="string">"Surnamet{$row["</span><span>surname</span><span class="string">"]}n"</span><span>; </span></span></li> <li><span> </span></li> <li class="alt"><span>echo<span class="string">"First name:t{$row["</span><span>firstname</span><span class="string">"]}nn"</span><span>; </span></span></li> <li><span> </span></li> <li class="alt"><span>} <br></span></li> </ol>
函数mysql_fetch_array()把查询结果的一行放入数组,可以同时用两种方式引用,例如cust_id可以同时用下面两种方式:$row[“cust_id”]或者$row[0]。显然,前者的可读性要比后者好多了。
在多表连查中,如果两个列名字一样,最好用别名分开:
<ol class="dp-j"><li class="alt"><span><span>SELECT winery.name AS wname,region.name AS rname,FROM winery,region WHERE winery.region_id=region.region_id; </span></span></li></ol>
列名的引用为:$row[“wname”]和$row[“rname”]
在指定表名和列名的情况下,只引用列名:
<ol class="dp-j"> <li class="alt"><span><span>SELECT winery.region_id </span></span></li> <li><span> </span></li> <li class="alt"><span>FROM winery </span></li> </ol>
列名的引用为:$row[“region_id”]
聚集函数的引用就是引用名:
<ol class="dp-j"> <li class="alt"><span><span>SELECT count(*) </span></span></li> <li><span> </span></li> <li class="alt"><span>FROM customer; </span></li> </ol>
列名的引用为:$row[“count(*)”]
3.TEXT、DATE、和SET数据类型
MySQL数据表的字段必须有定义一个数据类型。这有大约25种选择,大部分都是直接明了的,就不多费口舌了。但有几个有必要提一下。
TEXT不是一种数据类型,虽然可能有些书上是这么说的。它实际上应该是“LONG VARCHAR”或者“MEDIUMTEXT”。
DATE数据类型的格式是YYYY-MM-DD,比如:1999-12-08。你可以很容易的用date函数来得到这种格式的当前系统时间:date(“Y-m-d”)并且,在DATA数据类型之间可以作减法,得到相差的时间天数:
<ol class="dp-j"><li class="alt"><span><span>$age=($current_date-$birthdate); </span></span></li></ol>
集合SET是一个有用的数据类型,它和枚举ENUM有点相似,只不过是SET能够保存多个值而ENUM只能保存一个值而已。而且,SET类型最多只能够有64个预定的值,而ENUM类型却能够处理最多65,535个预定义的值。而如果需要有大于64个值的集合,该怎么办呢,这时就需要定义多个集合来一起解决这个问题了。
4.用mysql_unbuffered_query()开发快速的脚本
这个函数能用来替换mysql_query()函数,主要的区别就是mysql_unbuffered_query()执行完查询后马上返回,不需要等待或者对数据库加锁。但是返回的行数不能用mysql_num_rows()函数来检查,因为输出的结果集大小未知。
5.通配符
SQL的通配符有两种:“*”和“%”。分别用在不同的情况下。例如:如果你想看到数据库的所有内容,可以像这样来查询:
<ol class="dp-j"><li class="alt"><span><span>SELECT*FROM dbname WHERE USER_ID LIKE</span><span class="string">'%'</span><span>; </span></span></li></ol>
这里,两个通配符都被用上了。他们表示相同的意思??都是用来匹配任何的字符串,但是他们用在不同的上下文中。“*”用来匹配字段名,而“%”用来匹配字段值。另外一个不容易引起注意的地方是“%”通配符需要和LIKE关键字一起使用。还有一个通配符,就是下划线“_”,它代表的意思和上面不同,是用来匹配任何单个的字符的。
6.NOT NULL和空记录
如果用户在没有填任何东西的情况下按了submit按钮,会怎样呢?如果你确实需要一个值,那么可以用客户端脚本或者服务器端脚本来进行数据验证。但是,在数据库中却是允许一些字段被空出来什么也不填。对此类纪录,MySQL将要为之执行一些事情:插入值NULL,即缺省的操作。
如果你在字段定义中为之声明了NOT NULL(在建立或者修改这个字段的时候),MySQL将把这个字段空出来什么东西也不填。对于一个ENUM枚举类型的字段,如果你为之声明了NOT NULL,MySQL将把枚举集的第一个值插入到字段中。也就是说,MySQL把枚举集的第一个值作为这个枚举类型的缺省值。
一个值为NULL的纪录和一个空纪录是有一些区别的。%通配符可以匹配空纪录,但是却不能匹配NULL纪录。在某些时候,这种区别会造成一些意想不到的后果。就我的经验而言,任何字段都应该声明为NOT NULL。这样许多的SELECT查询语句就能够正常运转了。注意在搜索NULL时,必须用“IS”关键字,而LIKE是不会正常工作的。在最后要提到的是,如果你在加入或者修改一个新的字段之前,数据库中已经有了一些记录了,这时新加入的字段在原来的纪录中的值,可能是NULL,也可能为空。这也算是 MySQL的一个Bug吧,所以在这种情况下,使用SELECT查询要特别的小心。

熱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設置開機自啟動
