Time of Update: 2017-01-13
mysql查詢當天的所有資訊: 代碼如下複製代碼 select * from test where year(regdate)=year(now()) and month(regdate)=month(now()) and day(regdate)=day(now()) 這個有一些繁瑣,還有簡單的寫法: 代碼如下複製代碼 select * from table where date(regdate) = curdate();
Time of Update: 2017-01-13
我們來看一些測試執行個體 代碼如下複製代碼 select * from dlog_user order by online_status, username 先看上面這個內聯的SQL語句,username是dlog_user表的主鍵,dlog_friend有一個由 username和 friend_username組合而成的複合主鍵。測試條件一:dlog_user 和 dlog_friend 兩個表除了主鍵外沒有建任何索引,對這條SQL語句EXPLAIN的結果是 dlog_
Time of Update: 2017-01-13
當開發與生產環境在同一台機器上,或需要在一台機器上部署多套測試環境時,往往需要同時起多個mysqld進程,最近幫測試搭環境的時候就碰到了這樣的問題。還是從安裝mysql開始,下載tarball安裝,安裝mysql 代碼如下複製代碼 groupadd mysqluseradd -g mysql mysqlcmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql5.5.27/
Time of Update: 2017-01-13
mysql最常用的索引結構是btree(O(log(n))),但是總有一些情況下我們為了更好的效能希望能使用別的類型的索引。hash就是其中一種選擇,例如我們在通過使用者名稱檢索使用者id的時候,他們總是一對一的關係,用到的操作符只是=而已,假如使用hash作為索引資料結構的話,時間複雜度可以降到O(1)。不幸的是,目前的mysql版本(5.6)中,hash只支援MEMORY和NDB兩種引擎,而我們最常用的INNODB和MYISAM都不支援hash類型的索引。不管怎樣,還是要瞭解一下這兩種索引的
Time of Update: 2017-01-13
區別對比儲存TIMESTAMP1.4個位元組儲存(Time stamp value is stored in 4 bytes)2.值以UTC格式儲存( it stores the number of milliseconds)3.時區轉化 ,儲存時對當前的時區進行轉換,檢索時再轉換回當前的時區。datetime1.8個位元組儲存(8 bytes storage)2.實際格式儲存(Just stores what you have stored and retrieves the same
Time of Update: 2017-01-13
最初我的構想是用php的for迴圈來多次執行sql語句,可後來一想,這麼做在資料不多的時候還好,要是資料多了,查詢這麼多次不知道要消耗多少資源。 想破頭皮之後,終於找到瞭解決方案。用count()函數和"<="來統計數目。具體思路如下,首先用select語句查詢該行資料的唯一id值,然後用 代碼如下複製代碼 select count(id) from table where id<=xxx來統計。
Time of Update: 2017-01-13
話說有一文章表article,儲存文章的添加文章的時間是add_time欄位,該欄位為int(5)類型的,現需要查詢今天添加的文章總數並且按照時間從大到小排序,則查詢語句如下: 代碼如下複製代碼 1 select * from `article` where date_format(from_UNIXTIME(`add_time`),’%Y-%m-%d’) = date_format(now(),’%Y-%m-%d’);
Time of Update: 2017-01-13
如下表: 代碼如下複製代碼 CREATE TABLE `t1` (`userid` INT(11) DEFAULT NULL,`atime` datetime DEFAULT NULL,KEY `idx_userid` (`userid`)) ENGINE=InnoDB DEFAULT CHARSET=utf8; 資料如下: 代碼如下複製代碼 MySQL> SELECT * FROM t1;+--------+-------------------
Time of Update: 2017-01-13
MySQL update 語句基礎用法更新資料庫中的資料UPDATE 語句用於在資料庫表中修改資料。文法 代碼如下複製代碼 UPDATE table_nameSET column_name = new_valueWHERE column_name = some_value 例如果您在一個運算式中通過tbl_name訪問一列,則UPDATE使用列中的當前值。例如,以下語句把年齡列設定為比當前值多一: 代碼如下複製代碼 MySQL> UPDATE
Time of Update: 2017-01-13
mysqldump工具,基本用法是: shell> mysqldump [OPTIONS] database [tables] 如果你不給定任何錶,整個資料庫將被匯出。 通過執行mysqldump --help,你能得到你mysqldump的版本支援的選項表。
Time of Update: 2017-01-13
mysql limit文法 代碼如下複製代碼 SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset LIMIT 子句可以被用於強制 SELECT 語句返回指定的記錄數。LIMIT 接受一個或兩個數字參數。參數必須是一個整數常量。如果給定兩個參數,第一個參數指定第一個返回記錄行的位移量,第二個參數指定返回記錄行的最大數目。初始記錄行的位移量是 0(而不是 1): 為了與 PostgreSQL
Time of Update: 2017-01-13
mysql語句中group by 很容易理解 是分組查詢。比如 select sum(score) from user group by name 意思是查詢每個人的分數總和但是, select sum(score) from user group by item, sex 呢?下面是測試結果。測試資料如下:查詢結果如下:根據結果分析group by 多個欄位的含義是,分別以每個欄位的不同組合分組本例 item=數學 sex=1 和 item=數學 sex=2
Time of Update: 2017-01-13
具體方法當sql where 條件等於一串特殊符號時候 就容易報錯,切斷,甚至不執行,或者造成資料庫危險。下面我們簡單測試下建立測試資料 代碼如下複製代碼 DROP TABLE IF EXISTS `user`; CREATE TABLE `user` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, PRIMARY
Time of Update: 2017-01-13
如果有很多表需要刪除,而表中有相同的首碼,我們可能需要如下語句: 代碼如下複製代碼 drop table pre_tablename1;drop table pre_tablename2;drop table pre_tablename3; .......如果我們手動寫,可能需要很多重複性的工作而且可能還不知道表名稱。因此我們可以通過sql語句輸出上面的刪除表語句執行sql語句: 代碼如下複製代碼 Select CONCAT( 'drop table '
Time of Update: 2017-01-13
面對大資料量,大檔案的sql操作,我們需要藉助mysql強大的命令操作:1. 資料庫匯入命令 代碼如下複製代碼 mysql -h localhost -u root -p use dbnamesource backup.sql 說明:需要使用命令串連上資料庫並選擇相應資料庫才能使用。2. Database Backup命令MySQL的匯出命令mysqldump,基本用法是: 代碼如下複製代碼 mysqldump [OPTIONS]
Time of Update: 2017-01-13
最近更換了部落格的代碼高亮外掛程式,以前用的是SyntaxHighlighter:代碼格式:<pre class="brush: php; gutter: true">//代碼區......</pre>現在換成了Crayon Syntax Highlighter:<pre class="lang_php
Time of Update: 2017-01-13
ySQL查看使用者權限命令的兩方法:一. 使用MySQL grants使用方法: 代碼如下複製代碼 mysql> show grants for username@localhost;執行個體:mysql> show grants for root@localhost;+---------------------------------------------------------------------+| Grants for root@localhost&
Time of Update: 2017-01-13
文法介紹: 把所有的列插入新表 代碼如下複製代碼 SELECT * INTO new_table_name [IN externaldatabase] FROM old_tablename 只把希望的列插入新表 代碼如下複製代碼 SELECT column_name1, column_name2 INTO new_table_name [IN externaldatabase] FROM
Time of Update: 2017-01-13
當你第一次在機器上安裝MySQL時,mysql資料庫中的授權表是這樣初始化的:你可以從本地主機(localhost)上以root串連而不指定口令。root使用者擁有所有許可權(包括系統管理權限) 並可做任何事情。(順便說明,MySQL超級使用者與Unix超級使用者有相同的名字,他們彼此毫無關係。)匿名訪問被授予使用者可從本地串連名為test和任何名字以test_開始的資料庫。匿名使用者可對資料庫做任
Time of Update: 2017-01-13
mysql下載地址:http://dev.mysql.com/downloads/mysql/ MySQL資料庫安裝步驟: