標籤:迴圈 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