mysql 文法總結

來源:互聯網
上載者:User

標籤:變化   database   查詢條件   username   ant   show   定位   負數   date   

設定SQL語句所用的字元編碼:set names UTF8;

判斷指定的資料庫是否存在:DROP DATABASE IF EXISTS  庫;

開始使用指定的資料庫:USE 庫;

建立資料庫CREATE DATABASE 庫;

建立資料表和欄位設定檔案類型為UTF8;

INSERT INTO 表 VALUES(欄位);

 SQL語句分類:

(1)ddl:資料定義語言 (Data Definition Language)--定義表的列----》   Create、DROP、alter、truncate

(2)dml:資料操作語言----動作表的記錄行 ------》   INSERT、DELETE、UPDATE

(3)dql:資料查詢語言---不影響表的行和列-----》  SELECT

(4)dcl:資料控制語言--控制使用者的許可權 ------》  GRANT、REVOKE

查詢文法:

尋找所有資料庫:show databases  “s”指的是負數

尋找庫中所有的表:show tables;

尋找表中所有資料:select * from 表;  "*" 指的是全域變數

尋找某個欄位的資料資料:select 欄位 from 表;

查詢資料:select * from xxx;
例子:
(1)select id,username,password from t_user;
(2)select id,username,password,gender from t_user where gender = ‘男‘;
(3)select id,username,password,gender from t_user where gender is null;
添加資料:insert xxx(id, username) values(xx, "xxx");
例子:
insert into t_user(id, username) values(10, "hehehe");
insert into t_user(id, gender, username, age, password) values(15, ‘男‘, ‘shihu‘, 18, ‘123456‘);
insert into t_user values(16, ‘benladeng‘, ‘123456‘, ‘拉登‘, ‘nan‘, 18);
3
修改資料:update tablename set xx=xx,xxx=xx where xxx=xxx and xxx=xxx;
4
刪除資料:delete from tablename where xx=xxx and xxx = xxx or xxx = xxx;

查詢日期型資料
 SELECT * FROM 表 WHERE 時間欄位= ‘2011-04-08‘
 注:不同資料庫對日期型資料存在差異: :
 (1)MySQL:SELECT * from tb_name WHERE birthday = ‘2011-04-08‘
 (2)SQL Server:SELECT * from tb_name WHERE birthday = ‘2011-04-08‘
 (3)Access:SELECT * from tb_name WHERE birthday = #2011-04-08#
 

查詢非空資料
 SELECT * FROM tb_name WHERE address <>‘‘ order by addtime desc
 注:<>相當於PHP中的!=

查詢前n條記錄
 SELECT * FROM tb_name LIMIT 0,$N;
 limit語句與其他語句,如order by等語句聯合使用,會使用SQL語句千變萬化,使程式非常靈活
 
查詢後n條記錄
 SELECT * FROM tb_stu ORDER BY id ASC LIMIT $n
 
查詢從指定位置開始的n條記錄
 SELECT * FROM tb_stu ORDER BY id ASC LIMIT $_POST[begin],$n
 注意:資料的id是從0開始的
 
查詢統計結果中的前n條記錄
 SELECT * ,(yw+sx+wy) AS total FROM tb_score ORDER BY (yw+sx+wy) DESC LIMIT 0,$num
 
查詢指定時間段的資料
 SELECT  要尋找的欄位 FROM 表名 WHERE 欄位名 BETWEEN 初始值 AND 終止值
 SELECT * FROM tb_stu WHERE age BETWEEN 0 AND 18
 
按月查詢統計資料
 SELECT * FROM tb_stu WHERE month(date) = ‘$_POST[date]‘ ORDER BY date ;
 註:SQL語言中提供了如下函數,利用這些函數可以很方便地實現按年、月、日進行查詢
 year(data):返回data運算式中的公元年分所對應的數值
 month(data):返回data運算式中的月分所對應的數值
 day(data):返回data運算式中的日期所對應的數值
 
查詢大於指定條件的記錄
 SELECT * FROM tb_stu WHERE age>$_POST[age] ORDER BY age;
 
查詢結果不顯示重複記錄
 SELECT DISTINCT 欄位名 FROM 表名 WHERE 查詢條件 
注:SQL語句中的DISTINCT必須與WHERE子句聯合使用,否則輸出的資訊不會有變化 ,且欄位不能用*代替
 
NOT與謂詞進行組合條件的查詢
 (1)NOT BERWEEN … AND … 對介於起始值和終止值間的資料時行查詢 可改成 <起始值 AND >終止值
 (2)IS NOT NULL 對非空值進行查詢 
 (3)IS NULL 對空值進行查詢
 (4)NOT IN 該式根據使用的關鍵字是包含在列表內還是排除在列表外,指定運算式的搜尋,搜尋運算式可以是常量或列名,而列名可以是一組常量,但更多情況下是子查詢
 
顯示資料表中重複的記錄和記錄條數
 SELECT  name,age,count(*) ,age FROM tb_stu WHERE age = ‘19‘ group by date
 
對資料進行降序/升序查詢
 SELECT 欄位名 FROM tb_stu WHERE 條件 ORDER BY 欄位 DESC 降序
 SELECT 欄位名 FROM tb_stu WHERE 條件 ORDER BY 欄位 ASC  升序
 注:對欄位進行排序時若不指定排序方式,則預設為ASC升序
 
對資料進行多條件查詢
 SELECT 欄位名 FROM tb_stu WHERE 條件 ORDER BY 欄位1 ASC 欄位2 DESC  …
 注意:對查詢資訊進行多條件排序是為了共同限制記錄的輸出,一般情況下,由於不是單一條件限制,所以在輸出效果上有一些差別。
 
對統計結果進行排序
 函數SUM([ALL]欄位名) 或 SUM([DISTINCT]欄位名),可實現對欄位的求和,函數中為ALL時為所有該欄位所有記錄求和,若為DISTINCT則為該欄位所有不重複記錄的欄位求和
 如:SELECT name,SUM(price) AS sumprice  FROM tb_price GROUP BY name
 
SELECT * FROM tb_name ORDER BY mount DESC,price ASC
 
單列資料分組統計
 SELECT id,name,SUM(price) AS title,date FROM tb_price GROUP BY pid ORDER BY title DESC
 注:當分組語句group by排序語句order by同時出現在SQL語句中時,要將分組語句書寫在排序語句的前面,否則會出現錯誤
 
多列資料分組統計
 多列資料分組統計與單列資料分組統計類似 
SELECT *,SUM(欄位1*欄位2) AS (新欄位1) FROM 表名 GROUP BY 欄位 ORDER BY 新欄位1 DESC
 SELECT id,name,SUM(price*num) AS sumprice  FROM tb_price GROUP BY pid ORDER BY sumprice DESC
 註:group by語句後面一般為不是彙總函式的數列,即不是要分組的列
多表分組統計
 SELECT a.name,AVG(a.price),b.name,AVG(b.price) FROM tb_demo058 AS a,tb_demo058_1 AS b WHERE a.id=b.id GROUP BY b.type;

 

mysql 文法總結

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.