迴圈漸進學習mysql(1)

來源:互聯網
上載者:User

標籤:迴圈   msyql   

create database menagerie;
show databases;
use menagerie;
show tables;
create table pet (name varchar(20),owner varchar(20),sepcies varchar(20),sex char(1),birth date,death date);
describe pet;
INSERT INTO pet
     VALUES (‘Puffball‘,‘Diane‘,‘hamster‘,‘f‘,‘1999-03-30‘,NULL);
INSERT INTO pet
     VALUES (‘cat‘,‘dd‘,‘hamster‘,‘d‘,‘1949-03-30‘,NULL);
INSERT INTO pet
     VALUES (‘jon‘,‘Diane‘,‘hamster‘,‘f‘,‘1999-03-30‘,NULL);
INSERT INTO pet
     VALUES (‘dog‘,‘de‘,‘cc‘,‘f‘,‘1999-03-30‘,NULL);
INSERT INTO pet
     VALUES (‘cat‘,‘ge‘,‘hamster‘,‘f‘,‘1999-03-30‘,NULL);
INSERT INTO pet
     VALUES (‘bird‘,‘Diane‘,‘hamster‘,‘f‘,‘1999-03-30‘,NULL);
INSERT INTO pet
     VALUES (‘niao‘,‘Diane‘,‘hamster‘,‘f‘,‘1999-03-30‘,NULL);
INSERT INTO pet
     VALUES (‘wangba‘,‘gh‘,‘de‘,‘f‘,‘1999-03-30‘,NULL);
INSERT INTO pet
     VALUES (‘zhu‘,‘Diane‘,‘hamster‘,‘f‘,‘1999-03-30‘,NULL);
INSERT INTO pet
     VALUES (‘peg‘,‘Diane‘,‘hamster‘,‘f‘,‘1999-03-30‘,NULL);
INSERT INTO pet
     VALUES (‘houzi‘,‘Diane‘,‘hamster‘,‘f‘,‘1999-03-30‘,NULL);
INSERT INTO pet
     VALUES (‘file‘,‘Diane‘,‘hamster‘,‘u‘,‘1999-03-30‘,NULL);
INSERT INTO pet
     VALUES (‘she‘,‘Diane‘,‘gg‘,‘f‘,‘1999-03-30‘,NULL);
INSERT INTO pet
     VALUES (‘ji‘,‘oo‘,‘kk‘,‘f‘,‘1999-03-30‘,NULL);
select * from pet order by name desc;

/**SELECT what_to_select
FROM which_table
WHERE conditions_to_satisfy;
what_to_select指出你想要看到的內容,可以是列的一個表,或*表示“所有的列”。which_table指出你想要從其檢索資料的表。
WHERE子句是可選項,如果選擇該項,conditions_to_satisfy指定行必須滿足的檢索條件。

**/
UPDATE pet SET birth = ‘1959-08-31‘ WHERE name = ‘wangba‘;

select * from pet where name=‘cat‘;
select * from pet where name=‘cat‘ and owner=‘ge‘;
SELECT owner FROM pet;            --  這個地方的要加一個owner欄位      
select  name,owner,sex from pet  where name=‘she‘ or owner=‘gh‘;
SELECT * FROM pet
     ORDER BY  birth DESC;


/***
MySQL提供了幾個函數,可以用來計算日期,例如,計算年齡或提取日期部分。

要想確定每個寵物有多大,可以計算當前日期的年和出生日期之間的差。如果當前日期的日曆年度比出生日期早,
則減去一年。以下查詢顯示了每個寵物的出生日期、當前日期和年齡數值的年數字。

*****/
 SELECT name, birth, CURDATE(),
    (YEAR(CURDATE())-YEAR(birth)),
    (RIGHT(CURDATE(),5)<RIGHT(birth,5))
     AS age
    FROM pet;



/***
此處,YEAR()提取日期的年部分,RIGHT()提取日期的MM-DD (日曆年度)部分的最右面5個字元。比較MM-DD值的運算式
部分的值一般為1或0,如果CURDATE()的年比birth的年早,則年份應減去1。整個運算式有些難懂,使用alias (age)
來使輸出的列標記更有意義。儘管查詢可行,如果以某個順序排列行,則能更容易地瀏覽結果。添加ORDER BY name子
句按照名字對輸出進行排序則能夠實現。

****/
SELECT name, birth, CURDATE(),
     (YEAR(CURDATE())-YEAR(birth)),
     (RIGHT(CURDATE(),5)<RIGHT(birth,5))
    AS age
    FROM pet ORDER BY name;


/**
為了按age而非name排序輸出,只要再使用一個ORDER BY子句:

**/
SELECT name, birth, CURDATE(),
     (YEAR(CURDATE())-YEAR(birth))
     - (RIGHT(CURDATE(),5)<RIGHT(birth,5))
     AS age
     FROM pet ORDER BY age;

/***
可以使用一個類似的查詢來確定已經死亡動物的死亡年齡。你通過檢查death值是否是NULL來確定是哪些動物,然後,對於那些非NULL值的動物,
需要計算出death和birth值之間的差:

**/
 SELECT name, birth, death,
    (YEAR(death)-YEAR(birth)) - (RIGHT(death,5)<RIGHT(birth,5))
     AS age
    FROM pet WHERE death IS NOT NULL ORDER BY age;

SELECT name, birth, MONTH(birth) FROM pet;      -- 查看生日


SELECT name, birth FROM pet WHERE MONTH(birth) = 3;   -- 查看生日在三月份的鳥名字和 生日日期


本文出自 “ghost” 部落格,請務必保留此出處http://caizi.blog.51cto.com/5234706/1537342

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.