���ߣ����� ([email protected]�� ��ҳ��http://nrdoc.com
��һ��, ǰһ��, ��һ��, ���һ����Ŀ¼.
����ͨ����ʾ���ʹ��mysql
�ͻ��������ʹ��һ�������ݿ⣬�ṩһ��MySQL�����Ž̡̳�mysql
����ʱ��Ϊ���ն˼���������ֻ�ǡ����ӡ�)��һ������ʽ��������������һ��MySQL�����������в�ѯ���쿴�����mysql
����������ģʽ����Ԥ�ȰѲ�ѯ����һ���ļ��У�Ȼ�����mysql
ִ���ļ������ݡ�ʹ��mysql
�������������������漰��
Ϊ�˿�����mysql
�ṩ��һ��ѡ����Ŀ���ˣ���--help
ѡ���������
shell> mysql --help
���¼ٶ�mysql
�Ѿ�����װ����Ļ����ϣ�������һ��MySQL��������������ӡ�����ⲻ����ģ��������MySQL����Ա����������ǹ���Ա���㽫��Ҫ����Ȿ�ֲ�������½ڡ���
��������������ʹ��һ�����ݿ��ȫ���̡����������Դ�ȡһ���Ѿ��������ݿ����Ȥ���������Ҫ�������������������ݿ⼰���������ı����½ڡ�
��Ȼ���±�������һ���̳̣�����ϸ���б�Ҫ��ʡ�ԡ������������漰�Ļ���ĸ�����Ϣ����ѯ���ֲ������½ڡ�
Ϊ�����ӷ��������������mysql
ʱ����ͨ������Ҫ�ṩһ��MySQL�û����ͺܿ��ܣ�һ�������������������ڲ������¼��һ̨�����ϣ���Ҳ����Ҫָ������������ϵ��Ĺ���Ա���ҳ���Ӧ��ʹ��ʲô���Ӳ�����������(�����Ǹ��������û����ֺ�ʹ�õĿ���)��һ����֪����ȷ�IJ�������Ӧ�������������ӣ�
shell> mysql -h host -u user -p Enter password: ********
********
������Ŀ����mysql
��ʾEnter
password:
��ʾʱ��������
����ܹ�������Ӧ�ÿ���mysql>
��ʾ���һЩ������Ϣ��
shell> mysql -h host -u user -p Enter password: ******** Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 459 to server version: 3.22.20a-log Type 'help' for help. mysql>
��ʾ��������mysql
�����������
һЩMySQL��װ�����û��ԡ�anoymous��(����)�û������ڱ������������еķ��������������Ļ����������������Ӧ����ͨ��û���κ�ѡ��ص���mysql
��÷��������ӣ�
shell> mysql
����ɹ������Ӻ��������mysql>
��ʾ�´���QUIT
��ʱ�Ͽ���
mysql> QUIT Bye
��Ҳ���Լ���control-D�Ͽ���
�������½ڵĴ�������Ӷ����������ӵ�����������mysql>
��ʾָ�����ǡ�
ȷ�����������˷�������������ǰ���½����۵ġ���������������ѡ���κ����ݿ��������������Ǻܺá�����㽲��֪��������γ�ѯ�ʵ�һ��֪ʶ��������������������������װ�����ݲ��Ҵ����Ǽ�������Ҫ������Ҫд������������������Ļ���ԭ��ʹ�ü�����ѯ�����ܳ������Լ�mysql
����ι����ġ�
����һ�������Ҫ����������������İ汾�ź͵�ǰ���ڡ���mysql>
��ʾ��������������س�����
mysql> SELECT VERSION(), CURRENT_DATE; +--------------+--------------+ | version() | CURRENT_DATE | +--------------+--------------+ | 3.22.20a-log | 1999-03-19 | +--------------+--------------+ 1 row in set (0.01 sec) mysql>
��ѯ��˵������mysql
������:
QUIT
������֮һ�����ǽ��Ժ���������mysql
������������������ʾ�����Ȼ��������һ��mysql>
��ʾ�����ý�����������
mysql
��һ�ű���(�к���)��ʾ��ѯ�������һ�а����еı�ǩ����������ѯ�ʽ����ͨ����
�б�ǩ����ȡ�����ݿ�����е����֡���������ڼ���һ������ʽ���DZ��е�ֵ(��ղŵ�����)��mysql
�ñ���ʽ��������С�
mysql
��ʾ�����б����أ��Ͳ�ѯ���˶ִ�У��������ṩ���������ܵ�һ�����¸����Ϊ���DZ�ʾʱ��ʱ��(����
CPU �����ʱ��)��������Ϊ�����ܵ�������������غ�������ʱ��Ӱ�죬�����Щֵ�Dz���ȷ�ġ���Ϊ�˼�࣬�ڱ���ʣ�µ������в�����ʾ�������е��С������ؼ��ʿ������κδ�Сд�ַ������롣����ѯ���ǵȼ۵ģ�
mysql> SELECT VERSION(), CURRENT_DATE; mysql> select version(), current_date; mysql> SeLeCt vErSiOn(), current_DATE;
����������һ����ѯ����˵�����ܽ�mysql
����һ���ļ�������
mysql> SELECT SIN(PI()/4), (4+1)*5; +-------------+---------+ | SIN(PI()/4) | (4+1)*5 | +-------------+---------+ | 0.707107 | 25 | +-------------+---------+
������ʾ���������൱�̵ģ�������䡣���������ڵ��������������䣬ֻ����һ���ֺŽ���ÿһ����
mysql> SELECT VERSION(); SELECT NOW(); +--------------+ | version() | +--------------+ | 3.22.20a-log | +--------------+ +---------------------+ | NOW() | +---------------------+ | 1999-03-19 00:15:33 | +---------------------+
һ�������ȫ��һ�������и�����������Ҫ���еĽϳ������һ�����⡣mysql
ͨ��Ѱ����ֹ�ķֺŶ�����Ѱ�������еĽ������������������Ķ������������仰˵��mysql
�������ɸ�ʽ���룺���ռ������е�ִ������ֱ���������ֺš���
������һ���Ķ����������ӣ�
mysql> SELECT -> USER() -> , -> CURRENT_DATE; +--------------------+--------------+ | USER() | CURRENT_DATE | +--------------------+--------------+ | joesmith@localhost | 1999-03-18 | +--------------------+--------------+
����������У���������һ�����в�ѯ�ĵ�һ�к�Ҫע����ʾ����δ�mysql>
��Ϊ->
��������mysql
���ָ����û������������䲢�����ڵȴ�ʣ��IJ��֡���ʾ����������ѣ���Ϊ���ṩ�м�ֵ�ķ����������ʹ�ø÷������㽫����֪��mysql
���ڵȴ�ʲô��
�����������㲻��Ҫִ��������������������һ���������\c
ȡ������
mysql> SELECT -> USER() -> \c mysql>
����ҲҪע����ʾ�����������\c
�Ժ����л��ص�mysql>
���ṩ�����Ա���mysql
������һ�������
�±���ʾ������Կ����ĸ�����ʾ�����ܽ�������ζ��mysql
��ʲô״̬�£�
��ʾ�� | ��˼ |
mysql> |
���ý��������� |
-> |
�ȴ������������һ�� |
'> |
�ȴ���һ�У��ռ��Ե�����(��'��)��ʼ���ַ��� |
"> |
�ȴ���һ�У��ռ���˫����(��"��)��ʼ���ַ��� |
���������һ�������Ϸ���һ������ʱ���������ͨ����żȻ�����֣�����������ֹ�ķֺš�����������У�mysql
�ȴ���һ�����룺
mysql> SELECT USER() ->
����ⷢ����������(����Ϊ����������䵫��Ψһ�ķ�Ӧ��һ��->
��ʾ��)���ܿ���mysql
���ڵȴ��ֺš������û��ע���ʾ�����ڸ�����ʲô������ʶ������Ҫ��ʲô֮ǰ������ܻ�һ���ʱ��������Ƕ�������һ���ֺ������䣬����mysql
��ִ������
mysql> SELECT USER() -> ; +--------------------+ | USER() | +--------------------+ | joesmith@localhost | +--------------------+
'>
��">
��ʾ�����������ַ����ռ��ڼ䡣��MySQL�У������д����'������"���ַ����������ַ���
(���磬'hello'
��"goodbye"
)������mysql
��������Խ���е��ַ��������㿴��һ��'>
��">
��ʾ��ʱ������ζ�����Ѿ������˰�������'������"�������ַ���ʼ���ַ�����һ�У����ǻ�û��������ֹ�ַ�����ƥ�����š������ȷʵ��������һ�������ַ������ܺã����ǹ�������𣿲���Ȼ���������ģ�'>
��">
��ʾ����ʾ����ĵ�ʡ����һ�������ַ������磺
mysql> SELECT * FROM my_table WHERE name = "Smith AND age < 30; ">
����������SELECT
��䣬Ȼ�س������ȴ������ʲô��û�г��֡���Ҫ���ȣ���Ϊʲô�ò�ѯ��ô���أ�����ע��">
��ʾ���ṩ����������������mysql
��������һ��δ��ֹ�ַ��������²��֡�����������п����������ַ���"Smith
���ö�ʧ�ڶ������š���
�ߵ���һ���������ʲô�������ȡ�����Ȼ��������������£��㲻��ֻ�Ǵ���\c
����Ϊmysql
��Ϊ�������ռ����ַ�����һ���������������෴������رյ������ַ�(����mysql
֪����������ַ���)��Ȼ�����\c
��
mysql> SELECT * FROM my_table WHERE name = "Smith AND age < 30; "> "\c mysql>
��ʾ���ص�mysql>
����ʾmysql
���ý���һ���������ˡ�
֪��'>
��">
��ʾ����ζ��ʲô�Ǻ���Ҫ�ģ���Ϊ�������������һ��δ��ֹ���ַ������κα�����һ��������к���Ҫ��mysql
����--��������QUIT
���У�������൱�������ر���������ȡ����ǰ����ǰ������㲻֪������Ҫ�����ֹ���š�
������һЩѧϰ�����MySQL���һЩ������������ӡ�
һЩ����ʹ�����ݿ����shop��������ij�����˵�ÿƪ����(��Ʒ��)�ļ۸ٶ�ÿ�����˵�ÿƪ������һ�������Ĺ̶��۸���ô(��Ʒ������)�Ǽ�¼��������
�������������������ݿ����
CREATE TABLE shop ( article INT(4) UNSIGNED ZEROFILL DEFAULT '0000' NOT NULL, dealer CHAR(20) DEFAULT '' NOT NULL, price DOUBLE(16,2) DEFAULT '0.00' NOT NULL, PRIMARY KEY(article, dealer)); INSERT INTO shop VALUES (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),(3,'C',1.69), (3,'D',1.25),(4,'D',19.95);
���ˣ����������������ģ�
SELECT * FROM shop +---------+--------+-------+ | article | dealer | price | +---------+--------+-------+ | 0001 | A | 3.45 | | 0001 | B | 3.99 | | 0002 | A | 10.99 | | 0003 | B | 1.45 | | 0003 | C | 1.69 | | 0003 | D | 1.25 | | 0004 | D | 19.95 | +---------+--------+-------+
��������Ʒ����ʲô����
SELECT MAX(article) AS article FROM shop +---------+ | article | +---------+ | 4 | +---------+
���ҳ��������µı�š����˺ͼ۸�
��ANSI-SQL�����������һ���Ӳ�ѯ������
SELECT article, dealer, price FROM shop WHERE price=(SELECT MAX(price) FROM shop)
��MySQL�У���û���Ӳ�ѯ)����2��������
SELECT
���ӱ��еõ����ֵ�� SELECT article, dealer, price FROM shop WHERE price=19.95
��һ����������ǰ��۸������������в���MySQL�ض�LIMIT
�Ӿ�ֻ�õ��ĵ�һ�У�
SELECT article, dealer, price FROM shop ORDER BY price DESC LIMIT 1
ע��:����ж����������( ����ÿ��19.95)��LIMIT
�������������ʾ����֮һ��
��ÿƪ���µ���ߵļ۸���ʲô����
SELECT article, MAX(price) AS price FROM shop GROUP BY article +---------+-------+ | article | price | +---------+-------+ | 0001 | 3.99 | | 0002 | 10.99 | | 0003 | 1.69 | | 0004 | 19.95 | +---------+-------+
����ÿƪ���£��ҳ������ļ۸�Ľ����ߡ���
��ANSI SQL
�У��ҿ���������һ���Ӳ�ѯ������
SELECT article, dealer, price FROM shop s1 WHERE price=(SELECT MAX(s2.price) FROM shop s2 WHERE s1.article = s2.article)
��MySQL�У�����Ƿּ���������
����Ժ�������һ����ʱ��������
CREATE TEMPORARY TABLE tmp ( article INT(4) UNSIGNED ZEROFILL DEFAULT '0000' NOT NULL, price DOUBLE(16,2) DEFAULT '0.00' NOT NULL); LOCK TABLES article read; INSERT INTO tmp SELECT article, MAX(price) FROM shop GROUP BY article; SELECT article, dealer, price FROM shop, tmp WHERE shop.article=tmp.articel AND shop.price=tmp.price; UNLOCK TABLES; DROP TABLE tmp;
����㲻ʹ��һ��TEMPORARY
������Ҳ����������tmp������
������һ��������ѯ�����𣿡�
�ǵģ�����ֻ��ʹ���ҳ�֮Ϊ��MAX-CONCAT��ơ���һ���൱��Ч�Ĺ�ƣ�
SELECT article, SUBSTRING( MAX( CONCAT(LPAD(price,6,'0'),dealer) ), 7) AS dealer, 0.00+LEFT( MAX( CONCAT(LPAD(price,6,'0'),dealer) ), 6) AS price FROM shop GROUP BY article; +---------+--------+-------+ | article | dealer | price | +---------+--------+-------+ | 0001 | B | 3.99 | | 0002 | A | 10.99 | | 0003 | C | 1.69 | | 0004 | D | 19.95 | +---------+--------+-------+
������ӵ�Ȼ��ͨ���ڿͻ������зָ��������ʹ������Чһ�㡣
����Ҫ�������2������
MySQL
Ψһ������������CHECK
�Ա�֤��ʹ�õļ�ȷʵ�����������ñ��д��ڣ����������Զ�����һ���������ı���ɾ���С��������ƽ������ʹ����ļ�ֵ�����������úܺã�
CREATE TABLE persons ( id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT, name CHAR(60) NOT NULL, PRIMARY KEY (id) ); CREATE TABLE shirts ( id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT, style ENUM('t-shirt', 'polo', 'dress') NOT NULL, color ENUM('red', 'blue', 'orange', 'white', 'black') NOT NULL, owner SMALLINT UNSIGNED NOT NULL REFERENCES persons, PRIMARY KEY (id) ); INSERT INTO persons VALUES (NULL, 'Antonio Paz'); INSERT INTO shirts VALUES (NULL, 'polo', 'blue', LAST_INSERT_ID()), (NULL, 'dress', 'white', LAST_INSERT_ID()), (NULL, 't-shirt', 'blue', LAST_INSERT_ID()); INSERT INTO persons VALUES (NULL, 'Lilliana Angelovska'); INSERT INTO shirts VALUES (NULL, 'dress', 'orange', LAST_INSERT_ID()), (NULL, 'polo', 'red', LAST_INSERT_ID()), (NULL, 'dress', 'blue', LAST_INSERT_ID()), (NULL, 't-shirt', 'white', LAST_INSERT_ID()); SELECT * FROM persons; +----+---------------------+ | id | name | +----+---------------------+ | 1 | Antonio Paz | | 2 | Lilliana Angelovska | +----+---------------------+ SELECT * FROM shirts; +----+---------+--------+-------+ | id | style | color | owner | +----+---------+--------+-------+ | 1 | polo | blue | 1 | | 2 | dress | white | 1 | | 3 | t-shirt | blue | 1 | | 4 | dress | orange | 2 | | 5 | polo | red | 2 | | 6 | dress | blue | 2 | | 7 | t-shirt | white | 2 | +----+---------+--------+-------+ SELECT s.* FROM persons p, shirts s WHERE p.name LIKE 'Lilliana%' AND s.owner = p.id AND s.color <> 'white'; +----+-------+--------+-------+ | id | style | color | owner | +----+-------+--------+-------+ | 4 | dress | orange | 2 | | 5 | polo | red | 2 | | 6 | dress | blue | 2 | +----+-------+--------+-------+
��Ȼ��֪������������������Ǵ�ȡһ�����ݿ��ʱ���ˡ�
�ٶ�����ļ�(��ġ�������)���кܶ������������ٹ������Ǹ��ָ������͵���Ϣ�������ͨ��������������������ݲ���������Ҫ����Ϣװ������������Ȼ�������ͨ���ӱ��м����������ش������Ķ��ﲻͬ��������⡣������ʾ�������������Щ���飺
�������ݿ⽫���Ǽ�(�����)�����Dz��Ѱ�������ɿ����õ������������ݿ����ʵ������������磬������һ�����ݿ��ܱ�һ��ũ�������ټ�����һ����ҽ�ٲ����¼��
ʹ��SHOW
����ҳ��ڷ������ϵ�ǰ����ʲô���ݿ⣺
mysql> SHOW DATABASES; +----------+ | Database | +----------+ | mysql | | test | | tmp | +----------+
���ݿ��б���������Ļ������Dz�ͬ�ģ�����mysql
��test
���ݿ�ܿ��ܵ�����䡣mysql
�DZ���ģ���Ϊ�������û���ȡȨ�ޣ�test
���ݿ⾭����Ϊһ���������ṩ���û��������֡�
���test
���ݿ���ڣ����Դ�ȡ����
mysql> USE test Database changed
ע�⣬USE
������QUIT
������Ҫһ���ֺš��������ϲ�����������һ���ֺ���ֹ��������䣻���ް�)USE
�����ʹ����Ҳ������һ������ĵط�����������һ�������ϸ�����
������ں����������ʹ��test
���ݿ�(������ܷ�����)���������ڸ����ݿⴴ�����κζ������Ա����������������ɾ����Ϊ�����ԭ�������Ӧ��ѯ�����MySQL����Ա�������Լ�ʹ�õ�һ�����ݿ⡣�ٶ�����Ҫ�������menagerie
������Ա��Ҫִ��һ�����������
mysql> GRANT ALL ON menagerie.* TO your_mysql_name;
����your_mysql_name
�Ƿ�������MySQL�û�����
������������Ȩ��ʱ������ԱΪ�㴴�������ݿ⣬����Կ�ʼʹ��������������Ҫ�Լ���������
mysql> CREATE DATABASE menagerie;
��Unix�£����ݿ����������ִ�Сд��(����SQL�ؼ���)����������������menagerie
����������ݿ⣬����Menagerie
��MENAGERIE
��һЩ�������֡��Ա���Ҳ�������ġ�����Windows�£������Ʋ����ã������������һ�������IJ�ѯ��ʹ��ͬ���Ĵ�Сд���������ݿ�ͱ�����
������һ�����ݿⲢ��ѡ����ʹ�������������ȷ��������¡�Ϊ��ʹmenagerie
��Ϊ��ǰ�����ݿ⣬ʹ��������
mysql> USE menagerie Database changed
������ݿ�ֻ��Ҫ����һ�Σ������������ÿ������һ��mysql
�ỰʱΪʹ�ö�ѡ������������ɷ�������һ��USE
������������⣬�������ʱmysql
���������������ѡ�����ݿ⣬�����������Ҫ�ṩ���κ����Ӳ���֮��ָ�������֡����磺
shell> mysql -h host -u user -p menagerie Enter password: ********
ע�⣬menagerie
�������ڸղ���ʾ����Ŀ���������Ҫ������������-p
ѡ����ṩ��Ŀ�����������û�ж���Ŀո�(���磬��-pmypassword
������-p
mypassword
)��Ȼ�������������Ŀ�������������ϣ���Ϊ������������¶�������ܱ�����Ļ����ϵ�¼�������û���̽����
�������ݿ������IJ��֣���������ʱ���ǿյģ�����SHOW
TABLES
�������㣺
mysql> SHOW TABLES; Empty set (0.00 sec)
���ѵIJ����Ǿ���������ݿ�ṹӦ����ʲô���㽫��Ҫʲô���ݿ����������������ʲô�����С�
�㽫��Ҫһ��������ÿ������ļ�¼�ı������ɳ�Ϊpet
����������Ӧ�ð��������٣�ÿ����������֡���Ϊ���ֱ������Ǻ���Ȥ����Ӧ�ð����������Ϣ�����磬������㻿������ļ�ͥ�г���һ���ˣ��������Ҫ�г�ÿ����������ˡ������Ҳ��Ҫ��¼����������Ա��һЩ������������Ϣ��
�����أ��ǿ�����Ȥ��������һ�����ݿ��д洢����һ�������顣��������ʱ�����Ŷ��仯������ζ���㽫Ҫ���ϵظ�����ļ�¼���෴, �洢һ���̶�ֵ�������ձȽϺã���ô�����ۺ�ʱ����Ҫ���䣬������Ե�ǰ���ںͳ�������֮��IJ������������MySQLΪ���������ṩ�˺���������Ⲣ�����ѡ��洢�������ڶ�������Ҳ�������ŵ㣺
������뵽pet
�����������õ�����������Ϣ�����ǵ�ĿǰΪֹ��Щ�������㹻�ˣ����֡����ˡ����࣬�Ա𡢳������������ڡ�
ʹ��һ��CREATE TABLE
���ָ��������ݿ���IJ��֣�
mysql> CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20), -> species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);
VARCHAR
��name
��owner
��species
���Ǹ��õ�ѡ����Ϊ��ֵ�����DZ䳤�ġ���Щ�еij��ȶ���������ͬ�ģ����Ҳ�����20
���������ѡ��1
��255
���κγ��ȣ������ĸ�������˵���������������������˽ϲ��ѡ���Ժ��������Ҫһ���������ֶΣ�MySQL�ṩһ��ALTER
TABLE
��䡣��
�����Ա��������������ʾ�����磬"m"
��"f"
����Ҳ��"male"
��"female"
��ʹ�õ����ַ�"m"
��"f"
����ġ�
Ϊbirth
��death
��ʹ��DATE
�����������൱���Ե�ѡ��
��Ȼ�㴴����һ������SHOW TABLES
Ӧ�ò���һЩ�����
mysql> SHOW TABLES; +---------------------+ | Tables in menagerie | +---------------------+ | pet | +---------------------+
Ϊ����֤��ı��ǰ��������ķ�ʽ��������ʹ��һ��DESCRIBE
��䣺
mysql> DESCRIBE pet; +---------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+-------------+------+-----+---------+-------+ | name | varchar(20) | YES | | NULL | | | owner | varchar(20) | YES | | NULL | | | species | varchar(20) | YES | | NULL | | | sex | char(1) | YES | | NULL | | | birth | date | YES | | NULL | | | death | date | YES | | NULL | | +---------+-------------+------+-----+---------+-------+
������ʱDESCRIBE
�����磬���������������е��е����ֻ�������ʲô���͡�
���㴴����������Ҫ��ʵ����LOAD DATA
��INSERT
������ڴˡ�
�ٶ���ij����¼�������¡����۲쵽MySQL��������ʱ��YYYY-MM-DD
��ʽ�����������ϰ�ߵIJ�ͬ����
name | owner | species | sex | birth | death |
Fluffy | Harold | cat | f | 1993-02-04 | �� |
Claws | Gwen | cat | m | 1994-03-17 | �� |
Buffy | Harold | dog | f | 1989-05-13 | �� |
Fang | Benny | dog | m | 1990-08-27 | �� |
Bowser | Diane | dog | m | 1998-08-31 | 1995-07-29 |
Chirpy | Gwen | bird | f | 1998-09-11 | �� |
Whistler | Gwen | bird | �� | 1997-12-09 | �� |
Slim | Benny | snake | m | 1996-04-29 | �� |
��Ϊ���Ǵ�һ�ſձ���ʼ�ģ���ʵ����һ���������Ǵ�������Ϊ��Ķ����һ��һ���ı��ļ���Ȼ����һ���������װ���ļ������ݵ����С�
����Դ���һ���ı��ļ���pet.txt����ÿ�а���һ����¼���ö�λ��(tab)��ֵ�ֿ�����������CREATE
TABLE
������г����д�����������ڶ�ʧ��ֵ(����δ֪���Ա𣬻���Ȼ���ŵĶ������������)�������ʹ��NULL
ֵ��Ϊ��������ı��ļ���ʾ��Щ��ʹ��\N
�����磬��Whistler��ļ�¼��������������(������ֵ֮��Ŀհ���һ�������Ķ�λ�ַ�)��
Whistler |
Gwen |
bird |
\N |
1997-12-09 |
\N |
Ϊ��װ���ı��ļ���pet.txt����pet
���У�ʹ��������
mysql> LOAD DATA LOCAL INFILE "pet.txt" INTO TABLE pet;
�����Ը�⣬������ȷ����LOAD DATA
�����ָ����ֵ�ķָ�������β��ǣ�����ȱʡ�Ƕ�λ���ͻ��з�����Щ����ȡ�����ļ���pet.txt����������㹻�ġ�
������Ҫһ������һ���¼�¼ʱ��INSERT
��������õġ����������ʽ����Ϊÿһ���ṩֵ��������CREATE
TABLE
��䱻�г���˳�ٶ�Diane��һֻ�²�������ΪPuffball�������ʹ��һ������INSERT
�������һ���¼�¼��
mysql> INSERT INTO pet -> VALUES ('Puffball','Diane','hamster','f','1999-03-30',NULL);
ע�⣬�����ַ���������ֵ��ָ��Ϊ�������������ַ��������⣬��INSERT
������ֱ�Ӳ���NULL
���������ڵ�ֵ���㲻��ʹ��\N
����������LOAD
DATA
����������
��������ӣ���Ӧ���ܿ����漰�ܶ�ļ����ö��INSERT
�����ǵ���LOAD
DATA
���װ����ij�ʼ��¼��
SELECT
��䱻������һ������������Ϣ������һ���ʽ�ǣ�
SELECT what_to_select FROM which_table WHERE conditions_to_satisfy
what_to_select
ָ������Ҫ�����ģ���������е�һ�ű�����*
�������������which_table
ָ������Ҫ����������ݵı���WHERE
�Ӿ��ǿ�ѡ�ģ�������ڣ�conditions_to_satisfy
ָ���б�������ļ���������
SELECT
�����ʽ�Ǵ�һ�ű��м���ÿ��������
mysql> SELECT * FROM pet; +----------+--------+---------+------+------------+------------+ | name | owner | species | sex | birth | death | +----------+--------+---------+------+------------+------------+ | Fluffy | Harold | cat | f | 1993-02-04 | NULL | | Claws | Gwen | cat | m | 1994-03-17 | NULL | | Buffy | Harold | dog | f | 1989-05-13 | NULL | | Fang | Benny | dog | m | 1990-08-27 | NULL | | Bowser | Diane | dog | m | 1998-08-31 | 1995-07-29 | | Chirpy | Gwen | bird | f | 1998-09-11 | NULL | | Whistler | Gwen | bird | NULL | 1997-12-09 | NULL | | Slim | Benny | snake | m | 1996-04-29 | NULL | | Puffball | Diane | hamster | f | 1999-03-30 | NULL | +----------+--------+---------+------+------------+------------+
�������Ҫ������������������ʽ��SELECT
�Ǻ����õġ����磬����ոո���װ������ij�ʼ���ݼ�װ�Ժ�������ʱ���ղ���ʾ�������ʾ������������ļ���һ��������Bowser�����Ժ�������Ҫ�����ˣ������ԭ���ļ��ף��㷢����ȷ�ij�������1989��������1998��
������һЩ�������ķ�����
DELETE
��LOAD
DATA
Ū�ձ������ٴ�װ����: mysql> DELETE FROM pet; mysql> LOAD DATA LOCAL INFILE "pet.txt" INTO TABLE pet;
Ȼ��, ��������������������������Puffball��¼��
UPDATE
�������������¼�� mysql> UPDATE pet SET birth = "1989-08-31" WHERE name = "Bowser";
������ʾ�����������������ģ�����һ���㲻�����������ر�ص�����úܴ�ʱ���෴����ͨ���Իش�һ���ر�����������Ȥ���������������������Ҫ����Ϣ��ָ��һЩ���ơ������ǿ�һЩ���ǻش��й������������ѡ���ѯ��
���ܴ���ı���ֻѡ���ض����С����磬�������Ҫ��֤���Bowser�ij������������ĸı䣬��������ѡBowser�ļ�¼��
mysql> SELECT * FROM pet WHERE name = "Bowser"; +--------+-------+---------+------+------------+------------+ | name | owner | species | sex | birth | death | +--------+-------+---------+------+------------+------------+ | Bowser | Diane | dog | m | 1989-08-31 | 1995-07-29 | +--------+-------+---------+------+------------+------------+
���֤ʵ���������ȷ��¼Ϊ1989��������1998��
�ַ����Ƚ�ͨ���Ǵ�СЩ�صģ���������ָ������Ϊ"bowser"
��"BOWSER"�ȵȣ���ѯ���������ͬ�ġ�
�������κ�����ָ����������ֻ��name
�����磬�������Ҫ֪���ĸ�������1998�Ժ�����ģ�����birth
�У�
mysql> SELECT * FROM pet WHERE birth >= "1998-1-1"; +----------+-------+---------+------+------------+-------+ | name | owner | species | sex | birth | death | +----------+-------+---------+------+------------+-------+ | Chirpy | Gwen | bird | f | 1998-09-11 | NULL | | Puffball | Diane | hamster | f | 1999-03-30 | NULL | +----------+-------+---------+------+------------+-------+
����������������磬�ҳ����ԵĹ���
mysql> SELECT * FROM pet WHERE species = "dog" AND sex = "f"; +-------+--------+---------+------+------------+-------+ | name | owner | species | sex | birth | death | +-------+--------+---------+------+------------+-------+ | Buffy | Harold | dog | f | 1989-05-13 | NULL | +-------+--------+---------+------+------------+-------+
����IJ�ѯʹ��AND
����������Ҳ��һ��OR
��������
mysql> SELECT * FROM pet WHERE species = "snake" OR species = "bird"; +----------+-------+---------+------+------------+-------+ | name | owner | species | sex | birth | death | +----------+-------+---------+------+------------+-------+ | Chirpy | Gwen | bird | f | 1998-09-11 | NULL | | Whistler | Gwen | bird | NULL | 1997-12-09 | NULL | | Slim | Benny | snake | m | 1996-04-29 | NULL | +----------+-------+---------+------+------------+-------+
AND
��OR
���Ի��á��������������ʹ������ָ������Ӧ����α�������һ�������⣺
mysql> SELECT * FROM pet WHERE (species = "cat" AND sex = "m") -> OR (species = "dog" AND sex = "f"); +-------+--------+---------+------+------------+-------+ | name | owner | species | sex | birth | death | +-------+--------+---------+------+------------+-------+ | Claws | Gwen | cat | m | 1994-03-17 | NULL | | Buffy | Harold | dog | f | 1989-05-13 | NULL | +-------+--------+---------+------+------------+-------+
����㲻��Ҫ������ı��������У������������Ȥ���У��ö��ŷֿ������磬�������Ҫ֪����Ķ���ʲôʱ������ģ���ѡname
��birth
�У�
mysql> SELECT name, birth FROM pet; +----------+------------+ | name | birth | +----------+------------+ | Fluffy | 1993-02-04 | | Claws | 1994-03-17 | | Buffy | 1989-05-13 | | Fang | 1990-08-27 | | Bowser | 1989-08-31 | | Chirpy | 1998-09-11 | | Whistler | 1997-12-09 | | Slim | 1996-04-29 | | Puffball | 1999-03-30 | +----------+------------+
�ҳ�˭ӵ�г��ʹ�������ѯ��
mysql> SELECT owner FROM pet; +--------+ | owner | +--------+ | Harold | | Gwen | | Harold | | Benny | | Diane | | Gwen | | Gwen | | Benny | | Diane | +--------+
Ȼ����ע���ѯ�ؼ���ÿ����¼��owner
�ֶΣ����������е�һЩ���ֶ�Ρ�Ϊ��ʹ����������٣�ͨ�����ӹؼ���DISTINCT
������ÿ��Ψһ�������¼��
mysql> SELECT DISTINCT owner FROM pet; +--------+ | owner | +--------+ | Benny | | Diane | | Gwen | | Harold | +--------+
����ʹ��һ��WHERE
�Ӿ����ѡ������ѡ�����ϡ����磬Ϊ��ֻ�õ�����è�ij������ڣ�ʹ�������ѯ��
mysql> SELECT name, species, birth FROM pet -> WHERE species = "dog" OR species = "cat"; +--------+---------+------------+ | name | species | birth | +--------+---------+------------+ | Fluffy | cat | 1993-02-04 | | Claws | cat | 1994-03-17 | | Buffy | dog | 1989-05-13 | | Fang | dog | 1990-08-27 | | Bowser | dog | 1989-08-31 | +--------+---------+------------+
������Ѿ�ע�ǰ��������н����û�����ض��Ĵ�����ʾ��Ȼ����������ij��������ķ�ʽ�������ѯ���ͨ���Ǹ����ġ�Ϊ����������ʹ��һ��ORDER
BY
�Ӿ䡣
�����Ƕ������գ�����������
mysql> SELECT name, birth FROM pet ORDER BY birth; +----------+------------+ | name | birth | +----------+------------+ | Buffy | 1989-05-13 | | Bowser | 1989-08-31 | | Fang | 1990-08-27 | | Fluffy | 1993-02-04 | | Claws | 1994-03-17 | | Slim | 1996-04-29 | | Whistler | 1997-12-09 | | Chirpy | 1998-09-11 | | Puffball | 1999-03-30 | +----------+------------+
����������������DESC
���½� )�ؼ��ֵ�����������������ϣ�
mysql> SELECT name, birth FROM pet ORDER BY birth DESC; +----------+------------+ | name | birth | +----------+------------+ | Puffball | 1999-03-30 | | Chirpy | 1998-09-11 | | Whistler | 1997-12-09 | | Slim | 1996-04-29 | | Claws | 1994-03-17 | | Fluffy | 1993-02-04 | | Fang | 1990-08-27 | | Bowser | 1989-08-31 | | Buffy | 1989-05-13 | +----------+------------+
�����ڶ�������������磬���������������Ȼ�����գ������Ƕ���������������Ķ��ʹ�����в�ѯ��
mysql> SELECT name, species, birth FROM pet ORDER BY species, birth DESC; +----------+---------+------------+ | name | species | birth | +----------+---------+------------+ | Chirpy | bird | 1998-09-11 | | Whistler | bird | 1997-12-09 | | Claws | cat | 1994-03-17 | | Fluffy | cat | 1993-02-04 | | Fang | dog | 1990-08-27 | | Bowser | dog | 1989-08-31 | | Buffy | dog | 1989-05-13 | | Puffball | hamster | 1999-03-30 | | Slim | snake | 1996-04-29 | +----------+---------+------------+
ע��DESC
�ؼ��ʽ������ڽ�������֮ǰ��������(birth
)��species
ֵ��Ȼ����������
MySQL�ṩ������������������ִ���������ϵļ��㣬���磬�����������ȡ���ڵIJ��֡�
Ϊ�˾������ÿ�������ж���ó������ں͵�ǰ����֮��IJ��������䡣ͨ���任2�����ڵ�������ȡ��ֵ��������365��(��һ���������)��
mysql> SELECT name, (TO_DAYS(NOW())-TO_DAYS(birth))/365 FROM pet; +----------+-------------------------------------+ | name | (TO_DAYS(NOW())-TO_DAYS(birth))/365 | +----------+-------------------------------------+ | Fluffy | 6.15 | | Claws | 5.04 | | Buffy | 9.88 | | Fang | 8.59 | | Bowser | 9.58 | | Chirpy | 0.55 | | Whistler | 1.30 | | Slim | 2.92 | | Puffball | 0.00 | +----------+-------------------------------------+
���ܲ�ѯ���У������������ܱ��Ľ���һЩ���顣���ȣ��������ij�������ʾ�������ܸ����ױ�ɨ�衣�ڶ��������еı��ⲻ�Ǻ�������ġ�
��һ������ͨ������һ��ORDER BY name
�Ӿ䰴������������������Ϊ�˴����б��⣬Ϊ���ṩһ�������Ա�һ����ͬ�ı�ǩ�����������(�ⱻ��Ϊһ���б���)��
mysql> SELECT name, (TO_DAYS(NOW())-TO_DAYS(birth))/365 AS age -> FROM pet ORDER BY name; +----------+------+ | name | age | +----------+------+ | Bowser | 9.58 | | Buffy | 9.88 | | Chirpy | 0.55 | | Claws | 5.04 | | Fang | 8.59 | | Fluffy | 6.15 | | Puffball | 0.00 | | Slim | 2.92 | | Whistler | 1.30 | +----------+------+
Ϊ�˰�age
����name
���������ֻҪʹ��һ����ͬORDER
BY
�Ӿ䣺
mysql> SELECT name, (TO_DAYS(NOW())-TO_DAYS(birth))/365 AS age -> FROM pet ORDER BY age; +----------+------+ | name | age | +----------+------+ | Puffball | 0.00 | | Chirpy | 0.55 | | Whistler | 1.30 | | Slim | 2.92 | | Claws | 5.04 | | Fluffy | 6.15 | | Fang | 8.59 | | Bowser | 9.58 | | Buffy | 9.88 | +----------+------+
һ�����ƵIJ�ѯ���Ա�����ȷ���Ѿ�����������������䡣��ͨ�����death
ֵ�Ƿ���NULL
��������Щ����Щ���Ȼ������Щ�з�NULL
ֵ��������death
��birth
ֵ֮��IJ��
mysql> SELECT name, birth, death, (TO_DAYS(death)-TO_DAYS(birth))/365 AS age -> FROM pet WHERE death IS NOT NULL ORDER BY age; +--------+------------+------------+------+ | name | birth | death | age | +--------+------------+------------+------+ | Bowser | 1989-08-31 | 1995-07-29 | 5.91 | +--------+------------+------------+------+
��ѯʹ��death IS NOT NULL
����death != NULL
����ΪNULL
�������ֵ�����Ժ����͡���8.4.4.6 ��NULL
ֵ������
�������Ҫ֪���ĸ������¸��¹����գ���ô�죿����������㣬��������صģ������Ҫ��ȡbirth
�е��·ݲ��֡�MySQL�ṩ�������ڲ��ֵ���ȡ����������YEAR()
��MONTH()
��DAYOFMONTH()
��������MONTH()
���ʺϵĺ�����Ϊ�˿�����������������һ���IJ�ѯ����ʾbirth
��MONTH(birth)
��ֵ��
mysql> SELECT name, birth, MONTH(birth) FROM pet; +----------+------------+--------------+ | name | birth | MONTH(birth) | +----------+------------+--------------+ | Fluffy | 1993-02-04 | 2 | | Claws | 1994-03-17 | 3 | | Buffy | 1989-05-13 | 5 | | Fang | 1990-08-27 | 8 | | Bowser | 1989-08-31 | 8 | | Chirpy | 1998-09-11 | 9 | | Whistler | 1997-12-09 | 12 | | Slim | 1996-04-29 | 4 | | Puffball | 1999-03-30 | 3 | +----------+------------+--------------+
���¸��µ������ҳ�����Ҳ�����ġ��ٶ���ǰ����4�£���ô��ֵ��4
������Ѱ����5�³����Ķ���
(5��)�� ��������
mysql> SELECT name, birth FROM pet WHERE MONTH(birth) = 5; +-------+------------+ | name | birth | +-------+------------+ | Buffy | 1989-05-13 | +-------+------------+
��Ȼ�����ǰ�·���12�£����е㸴���ˡ��㲻��ֻ�Ѽ�1���·���(12
)�ϲ���Ѱ����13�³����Ķ����Ϊû���������·ݡ��෴����Ѱ����1�³����Ķ���(1��)
��
���������Ա�д��ѯ�Ա㲻�ܵ�ǰ�·���ʲô�����ܹ��������ַ����㲻���ڲ�ѯ��ʹ��һ���ض����·����֣�DATE_ADD()
�������ʱ�����ӵ�һ�����������ڡ�������һ���¼ӵ�NOW()
ֵ�ϣ�Ȼ����MONTH()
��ȡ�·ݲ��֣��������Ѱ�����յ��·ݣ�
mysql> SELECT name, birth FROM pet -> WHERE MONTH(birth) = MONTH(DATE_ADD(NOW(), INTERVAL 1 MONTH));
���ͬ�������һ����ͬ�����Ǽ�1
�Եó���ǰ�·ݵ���һ����(��ʹ��ȡģ����(MOD
)���������ǰ��12
�����ƻء��·ݵ�ֵ0
)��
mysql> SELECT name, birth FROM pet -> WHERE MONTH(birth) = MOD(MONTH(NOW()), 12) + 1;
ע�⣬MONTH
������1��12֮���һ�����֣���MOD(something,12)
������0��11֮���һ�����֣���˱�����MOD()
�Ժ��1���������ǽ���11��(
11 )����1��(1)��
NULL
ֵ����NULL
ֵ���ܺ����ֱ����ϰ�������������ϣ�NULL
��ζ�š�û��ֵ����δֵ֪���������������е����ڲ�ͬ��ֵ��Ϊ�˲���NULL
���㲻��ʹ�������Ƚ����������=
��<
��!=
��Ϊ��˵�������������в�ѯ��
mysql> SELECT 1 = NULL, 1 != NULL, 1 < NULL, 1 > NULL; +----------+-----------+----------+----------+ | 1 = NULL | 1 != NULL | 1 < NULL | 1 > NULL | +----------+-----------+----------+----------+ | NULL | NULL | NULL | NULL | +----------+-----------+----------+----------+
����������Щ�Ƚ��еõ���������Ľ�����෴ʹ��IS NULL
��IS
NOT NULL
��������
mysql> SELECT 1 IS NULL, 1 IS NOT NULL; +-----------+---------------+ | 1 IS NULL | 1 IS NOT NULL | +-----------+---------------+ | 0 | 1 | +-----------+---------------+
��MySQL�У�0��ζ�żٶ�1��ζ���档
NULL
��������Ĵ�����Ϊʲô����ǰ����½��У�Ϊ�˾����ĸ����ﲻ���ǻ��ŵģ�ʹ��death
IS NOT NULL
������death != NULL
�DZ�Ҫ�ġ�
MySQL�ṩ����SQLģʽƥ�䣬�Լ�һ�ֻ�����Unixʵ�ó�����vi
��grep
��sed
����չ�������ʽģʽƥ��ĸ�ʽ��
SQL��ģʽƥ��������ʹ����_��ƥ���κε����ַ�������%��ƥ��������Ŀ�ַ�(��������ַ�)����
MySQL�У�SQL��ģʽȱʡ�Ǻ��Դ�Сд�ġ�������ʾһЩ���ӡ�ע������ʹ��SQLģʽʱ���㲻��ʹ��=
��!=
����ʹ��LIKE
��NOT
LIKE
�Ƚϲ�������
Ϊ���ҳ�����b����ͷ�����֣�
mysql> SELECT * FROM pet WHERE name LIKE "b%"; +--------+--------+---------+------+------------+------------+ | name | owner | species | sex | birth | death | +--------+--------+---------+------+------------+------------+ | Buffy | Harold | dog | f | 1989-05-13 | NULL | | Bowser | Diane | dog | m | 1989-08-31 | 1995-07-29 | +--------+--------+---------+------+------------+------------+
Ϊ���ҳ�����fy����β�����֣�
mysql> SELECT * FROM pet WHERE name LIKE "%fy"; +--------+--------+---------+------+------------+-------+ | name | owner | species | sex | birth | death | +--------+--------+---------+------+------------+-------+ | Fluffy | Harold | cat | f | 1993-02-04 | NULL | | Buffy | Harold | dog | f | 1989-05-13 | NULL | +--------+--------+---------+------+------------+-------+
Ϊ���ҳ�����һ����w�������֣�
mysql> SELECT * FROM pet WHERE name LIKE "%w%"; +----------+-------+---------+------+------------+------------+ | name | owner | species | sex | birth | death | +----------+-------+---------+------+------------+------------+ | Claws | Gwen | cat | m | 1994-03-17 | NULL | | Bowser | Diane | dog | m | 1989-08-31 | 1995-07-29 | | Whistler | Gwen | bird | NULL | 1997-12-09 | NULL | +----------+-------+---------+------+------------+------------+
Ϊ���ҳ���������5���ַ������֣�ʹ����_��ģʽ�ַ���
mysql> SELECT * FROM pet WHERE name LIKE "_____"; +-------+--------+---------+------+------------+-------+ | name | owner | species | sex | birth | death | +-------+--------+---------+------+------------+-------+ | Claws | Gwen | cat | m | 1994-03-17 | NULL | | Buffy | Harold | dog | f | 1989-05-13 | NULL | +-------+--------+---------+------+------------+-------+
��MySQL�ṩ��ģʽƥ�������������ʹ����չ�������ʽ�����������ģʽ����ƥ�����ʱ��ʹ��REGEXP
��NOT
REGEXP
������(��RLIKE
��NOT RLIKE
��������ͬ���)��
��չ�������ʽ��һЩ�ַ��ǣ�
Ϊ��˵����չ�������ʽ��ι�����������ʾ��LIKE
��ѯ������ʹ��REGEXP
���
Ϊ���ҳ�����b����ͷ�����֣�ʹ����^��ƥ�����ֵĿ�ʼ������[bB]��ƥ��Сд���д�ġ�b����
mysql> SELECT * FROM pet WHERE name REGEXP "^[bB]"; +--------+--------+---------+------+------------+------------+ | name | owner | species | sex | birth | death | +--------+--------+---------+------+------------+------------+ | Buffy | Harold | dog | f | 1989-05-13 | NULL | | Bowser | Diane | dog | m | 1989-08-31 | 1995-07-29 | +--------+--------+---------+------+------------+------------+
Ϊ���ҳ�����fy����β�����֣�ʹ����$��ƥ�����ֵĽ�β��
mysql> SELECT * FROM pet WHERE name REGEXP "fy$"; +--------+--------+---------+------+------------+-------+ | name | owner | species | sex | birth | death | +--------+--------+---------+------+------------+-------+ | Fluffy | Harold | cat | f | 1993-02-04 | NULL | | Buffy | Harold | dog | f | 1989-05-13 | NULL | +--------+--------+---------+------+------------+-------+
Ϊ���ҳ�����һ����w�������֣�ʹ����[wW]��ƥ��Сд���д�ġ�w����
mysql> SELECT * FROM pet WHERE name REGEXP "[wW]"; +----------+-------+---------+------+------------+------------+ | name | owner | species | sex | birth | death | +----------+-------+---------+------+------------+------------+ | Claws | Gwen | cat | m | 1994-03-17 | NULL | | Bowser | Diane | dog | m | 1989-08-31 | 1995-07-29 | | Whistler | Gwen | bird | NULL | 1997-12-09 | NULL | +----------+-------+---------+------+------------+------------+
��Ȼ���һ���������ʽ������ֵ���κεط�����ģʽƥ���ˣ��Ͳ�������ǰ�IJ�ѯ����ģʽ�����������һ��ͨ�����ʹ����ƥ������ֵ�����������ʹ����һ��SQLģʽ������
Ϊ���ҳ���������5���ַ������֣�ʹ����^������$��ƥ�����ֵĿ�ʼ�ͽ�β����5����.��ʵ��������֮�䣺
mysql> SELECT * FROM pet WHERE name REGEXP "^.....$"; +-------+--------+---------+------+------------+-------+ | name | owner | species | sex | birth | death | +-------+--------+---------+------+------------+-------+ | Claws | Gwen | cat | m | 1994-03-17 | NULL | | Buffy | Harold | dog | f | 1989-05-13 | NULL | +-------+--------+---------+------+------------+-------+
��Ҳ����ʹ����{n}�����ظ�n
�Ρ���������д��ǰ�IJ�ѯ��
mysql> SELECT * FROM pet WHERE name REGEXP "^.{5}$"; +-------+--------+---------+------+------------+-------+ | name | owner | species | sex | birth | death | +-------+--------+---------+------+------------+-------+ | Claws | Gwen | cat | m | 1994-03-17 | NULL | | Buffy | Harold | dog | f | 1989-05-13 | NULL | +-------+--------+---------+------+------------+-------+
���ݿ⾭�����ڻش�������⣬��ij�����͵�������һ�ű��г��ֵ�Ƶ��?�����磬�������Ҫ֪�����ж��ٳ����ÿλ�����ж��ٳ�����������Ҫ����Ķ�����ʩ�и������͵��ղ顣
������ӵ�ж�����������롰��pet
�����ж�����?����ͬ�������⣬��Ϊÿ��������һ����¼��COUNT()
����������NULL
�������Ŀ����������Ķ���IJ�ѯ��������������
mysql> SELECT COUNT(*) FROM pet; +----------+ | COUNT(*) | +----------+ | 9 | +----------+
��ǰ�棬�������ӵ�г�����˵����֡��������Ҫ֪��ÿ�������ж��ٳ�������ʹ��COUNT()������
mysql> SELECT owner, COUNT(*) FROM pet GROUP BY owner; +--------+----------+ | owner | COUNT(*) | +--------+----------+ | Benny | 2 | | Diane | 2 | | Gwen | 3 | | Harold | 2 | +--------+----------+
ע�⣬ʹ��GROUP BY
��ÿ��owner
�������м�¼��û��������õ���һ����һ��������Ϣ��
mysql> SELECT owner, COUNT(owner) FROM pet; ERROR 1140 at line 1: Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no GROUP columns is illegal if there is no GROUP BY clause
COUNT()
��GROUP BY
���Ը��ַ�ʽ����������ݺ����á�����������ʾ��ʵʩ�����ղ�����IJ�ͬ��ʽ��
ÿ�ֶ���������
mysql> SELECT species, COUNT(*) FROM pet GROUP BY species; +---------+----------+ | species | COUNT(*) | +---------+----------+ | bird | 2 | | cat | 2 | | dog | 3 | | hamster | 1 | | snake | 1 | +---------+----------+
ÿ���Ա�Ķ���������
mysql> SELECT sex, COUNT(*) FROM pet GROUP BY sex; +------+----------+ | sex | COUNT(*) | +------+----------+ | NULL | 1 | | f | 4 | | m | 4 | +------+----------+
������������NULL
��ʾ��δ֪�Ա𡱡���
��������Ա���ϵĶ���������
mysql> SELECT species, sex, COUNT(*) FROM pet GROUP BY species, sex; +---------+------+----------+ | species | sex | COUNT(*) | +---------+------+----------+ | bird | NULL | 1 | | bird | f | 1 | | cat | f | 1 | | cat | m | 1 | | dog | f | 1 | | dog | m | 2 | | hamster | f | 1 | | snake | m | 1 | +---------+------+----------+
����ʹ��COUNT()
ʱ���㲻�ؼ�������һ�ű�������,
��ǰ�IJ�ѯ����ֻ�ڹ���è��ʩ��ʱ����������������
mysql> SELECT species, sex, COUNT(*) FROM pet -> WHERE species = "dog" OR species = "cat" -> GROUP BY species, sex; +---------+------+----------+ | species | sex | COUNT(*) | +---------+------+----------+ | cat | f | 1 | | cat | m | 1 | | dog | f | 1 | | dog | m | 2 | +---------+------+----------+
����������Ҫ֪����֪�Ա�İ��Ա�Ķ�����Ŀ��
mysql> SELECT species, sex, COUNT(*) FROM pet -> WHERE sex IS NOT NULL -> GROUP BY species, sex; +---------+------+----------+ | species | sex | COUNT(*) | +---------+------+----------+ | bird | f | 1 | | cat | f | 1 | | cat | m | 1 | | dog | f | 1 | | dog | m | 2 | | hamster | f | 1 | | snake | m | 1 | +---------+------+----------+
pet
���������ĸ�����������Ҫ��¼���ǵ�������Ϣ������������һ�����¼�����ҽ���ʱ�������������Ҫ����ı������ű�Ӧ����ʲô�أ�
��������Щ���ǣ�Ϊevent
����CREATE TABLE
�����ܿ�������������
mysql> CREATE TABLE event (name VARCHAR(20), date DATE, -> type VARCHAR(15), remark VARCHAR(255));
����pet
����������ʾͨ������������Ϣ��һ����λ���ָ����ı��ļ�װ�س�ʼ��¼��
Fluffy | 1995-05-15 | litter | 4 kittens, 3 female, 1 male |
Buffy | 1993-06-23 | litter | 5 puppies, 2 female, 3 male |
Buffy | 1994-06-19 | litter | 3 puppies, 3 female |
Chirpy | 1999-03-21 | vet | needed beak straightened |
Slim | 1997-08-03 | vet | broken rib |
Bowser | 1991-10-12 | kennel | |
Fang | 1991-10-12 | kennel | |
Fang | 1998-08-28 | birthday | Gave him a new chew toy |
Claws | 1998-03-17 | birthday | Gave him a new flea collar |
Whistler | 1998-12-09 | birthday | First birthday |
������װ�ؼ�¼��
mysql> LOAD DATA LOCAL INFILE "event.txt" INTO TABLE event;
��������Ѿ�������pet
���ϵIJ�ѯ��ѧ���ģ���Ӧ����ִ����event
���м�¼�ļ�����ԭ����һ���ġ�����ʲôʱ����event
�����������Իش�������ʵ������أ�
����������һ��С����ʱ���ٶ�����Ҫ�ҳ�ÿֻ��������䡣 event
��ָ����ʱ����������Ϊ�˼���ĸ�����䣬����Ҫ���ij������ڡ���Ȼ�����洢��pet
���У�Ϊ�˲�ѯ����Ҫ���ű���
mysql> SELECT pet.name, (TO_DAYS(date) - TO_DAYS(birth))/365 AS age, remark -> FROM pet, event -> WHERE pet.name = event.name AND type = "litter"; +--------+------+-----------------------------+ | name | age | remark | +--------+------+-----------------------------+ | Fluffy | 2.27 | 4 kittens, 3 female, 1 male | | Buffy | 4.12 | 5 puppies, 2 female, 3 male | | Buffy | 5.10 | 3 puppies, 3 female | +--------+------+-----------------------------+
���ڸò�ѯҪע��ļ������飺
FROM
�Ӿ��г�����������Ϊ��ѯ��Ҫ����������������Ϣ��
name
�С���ѯʹ��WHERE
�Ӿ����name
ֵ��ƥ��2�����еļ�¼��
name
�г������������У���������ʱ����һ��Ҫָ���ĸ�������ͨ���ѱ�����������ǰ������
�㲻����2����ͬ�ı���ִ��һ�����ᡣ�������Ҫ��һ�����ļ�¼��ͬһ������������¼���бȽϣ�����һ������������ʱ�����õġ����磬Ϊ������ij���֮�з�ֳ��ż���������pet
������������������������۴���ԣ�
mysql> SELECT p1.name, p1.sex, p2.name, p2.sex, p1.species -> FROM pet AS p1, pet AS p2 -> WHERE p1.species = p2.species AND p1.sex = "f" AND p2.sex = "m"; +--------+------+--------+------+---------+ | name | sex | name | sex | species | +--------+------+--------+------+---------+ | Fluffy | f | Claws | m | cat | | Buffy | f | Fang | m | dog | | Buffy | f | Bowser | m | dog | +--------+------+--------+------+---------+
�������ѯ�У�����Ϊ����ָ�������Ա��������в���ʹ��ÿһ�������ù������ĸ���ʵ����ֱ�ۡ�
���������һ�����ݿ��������֣���һ�������ı��Ľṹ��ʲô(���磬�����н�ʲô)����ô�죿 MySQLͨ���ṩ���ݿ⼰��֧�ֵı�����Ϣ�ļ��������������⡣
���Ѿ�������SHOW DATABASES
�����г��ɷ��������������ݿ⡣Ϊ���ҳ���ǰѡ�����ĸ����ݿ⣬ʹ��DATABASE()
������
mysql> SELECT DATABASE(); +------------+ | DATABASE() | +------------+ | menagerie | +------------+
����㻹ûѡ���κ����ݿ⣬����ǿյġ�
Ϊ���ҳ���ǰ�����ݿ����ʲô��(���磬���㲻��ȷ��һ����������)��ʹ��������
mysql> SHOW TABLES; +---------------------+ | Tables in menagerie | +---------------------+ | event | | pet | +---------------------+
�������Ҫ֪��һ�����Ľṹ��DESCRIBE
�������к��õģ�����ʾ�й�һ������ÿ���е���Ϣ��
mysql> DESCRIBE pet; +---------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+-------------+------+-----+---------+-------+ | name | varchar(20) | YES | | NULL | | | owner | varchar(20) | YES | | NULL | | | species | varchar(20) | YES | | NULL | | | sex | char(1) | YES | | NULL | | | birth | date | YES | | NULL | | | death | date | YES | | NULL | | +---------+-------------+------+-----+---------+-------+
Field
��ʾ�����֣�Type
��Ϊ�е��������ͣ�Null
��ʾ���Ƿ��ܰ���NULL
ֵ��Key
��ʾ���Ƿ�������Default
ָ���е�ȱʡֵ��
�������һ��������������SHOW INDEX FROM tbl_name
�����й����ǵ���Ϣ��
mysql
��ǰ����½��У��㽻��ʽ��ʹ��mysql
�����ѯ���Ҳ鿴�������Ҳ��������ģʽ����mysql
��Ϊ��������Щ��������Ҫ���е��������һ���ļ��У�Ȼ�����mysql
���ļ���ȡ�������룺
shell> mysql < batch-file
�������Ҫ����������ָ�����Ӳ�����������ܿ�������������
shell> mysql -h host -u user -p < batch-file Enter password: ********
��������ʹ��mysql
ʱ�������ڴ���һ���ű��ļ���Ȼ��ִ�нű���
ΪʲôҪʹ��һ���ű����кܶ�ԭ��
mysql
�ٴ�ִ������
shell> mysql < batch-file | more
shell> mysql < batch-file > mysql.out
cron
���������в�ѯʱ������������£������ʹ����ģʽ��
��������ģʽ����mysql
ʱ�������㽻����ʹ����ʱ����ȱʡ�����ʽ�Dz�ͬ��(������Щ)�����磬������ʽ����SELECT
DISTINCT species FROM pet
ʱ�������������������
+---------+ | species | +---------+ | bird | | cat | | dog | | hamster | | snake | +---------+
���ǵ�����ģʽ����ʱ����������
species bird cat dog hamster snake
�������Ҫ����ģʽ�еõ������������ʽ��ʹ��mysql -t
��Ϊ�˻����������ִ�е����ʹ��mysql
-vvv
��
��Analytikerna �� Lentus������Ϊһ������о���Ŀ����һֱ����ϵͳ���ֳ������������Ŀ��Institute of Environmental Medicine at Karolinska Institutet Stockholm �� the Section on Clinical Research in Aging and Psychology at the University of Southern California�ĺ�����Ŀ��
˫��̥�о��ĸ�����Ϣ�������������ҵ���
http://www.imm.ki.se/TWIN/TWINUKW.HTM
��Ŀ�ĺ��沿������һ����Perl��MySQL��д��web�ӿ���������
ÿ���������л�̸�����ݱ�����һ��MySQL���ݿ⡣
���в�ѯ��������˭������Ŀ�ĵڶ����֣�
select concat(p1.id, p1.tvab) + 0 as tvid, concat(p1.christian_name, " ", p1.surname) as Name, p1.postal_code as Code, p1.city as City, pg.abrev as Area, if(td.participation = "Aborted", "A", " ") as A, p1.dead as dead1, l.event as event1, td.suspect as tsuspect1, id.suspect as isuspect1, td.severe as tsevere1, id.severe as isevere1, p2.dead as dead2, l2.event as event2, h2.nurse as nurse2, h2.doctor as doctor2, td2.suspect as tsuspect2, id2.suspect as isuspect2, td2.severe as tsevere2, id2.severe as isevere2, l.finish_date from twin_project as tp /* For Twin 1 */ left join twin_data as td on tp.id = td.id and tp.tvab = td.tvab left join informant_data as id on tp.id = id.id and tp.tvab = id.tvab left join harmony as h on tp.id = h.id and tp.tvab = h.tvab left join lentus as l on tp.id = l.id and tp.tvab = l.tvab /* For Twin 2 */ left join twin_data as td2 on p2.id = td2.id and p2.tvab = td2.tvab left join informant_data as id2 on p2.id = id2.id and p2.tvab = id2.tvab left join harmony as h2 on p2.id = h2.id and p2.tvab = h2.tvab left join lentus as l2 on p2.id = l2.id and p2.tvab = l2.tvab, person_data as p1, person_data as p2, postal_groups as pg where /* p1 gets main twin and p2 gets his/her twin. */ /* ptvab is a field inverted from tvab */ p1.id = tp.id and p1.tvab = tp.tvab and p2.id = p1.id and p2.ptvab = p1.tvab and /* Just the sceening survey */ tp.survey_no = 5 and /* Skip if partner died before 65 but allow emigration (dead=9) */ (p2.dead = 0 or p2.dead = 9 or (p2.dead = 1 and (p2.death_date = 0 or (((to_days(p2.death_date) - to_days(p2.birthday)) / 365) >= 65)))) and ( /* Twin is suspect */ (td.future_contact = 'Yes' and td.suspect = 2) or /* Twin is suspect - Informant is Blessed */ (td.future_contact = 'Yes' and td.suspect = 1 and id.suspect = 1) or /* No twin - Informant is Blessed */ (ISNULL(td.suspect) and id.suspect = 1 and id.future_contact = 'Yes') or /* Twin broken off - Informant is Blessed */ (td.participation = 'Aborted' and id.suspect = 1 and id.future_contact = 'Yes') or /* Twin broken off - No inform - Have partner */ (td.participation = 'Aborted' and ISNULL(id.suspect) and p2.dead = 0)) and l.event = 'Finished' /* Get at area code */ and substring(p1.postal_code, 1, 2) = pg.code /* Not already distributed */ and (h.nurse is NULL or h.nurse=00 or h.doctor=00) /* Has not refused or been aborted */ and not (h.status = 'Refused' or h.status = 'Aborted' or h.status = 'Died' or h.status = 'Other') order by tvid;
һЩ���ͣ�
concat(p1.id, p1.tvab) + 0 as tvid
id
��tvab
�����������������������0
ʹ��MySQL�ѽ������һ�����֡�
id
tvab
1
��2
�� ptvab
tvab
һ���档��tvab
��1
������2
�����ҷ�����Ҳ��ˡ��������Ա�����벢��ʹ��������ΪMySQL�Ż���ѯ��
�����ѯ����������������(p1
��p2
)��ͬһ�����в��ұ����������У��ⱻ�������˫��̥��һ���Ƿ���65��ǰ���ˡ������ˣ��в����ء�
��������˫��̥��Ϣ���������б��С�������id,tvab
�����ϵļ�ֵ�����б�)����id,ptvab
�ϵļ�(person_data
)��ʹ��ѯ���졣
�����ǵ�����������(һ̨200MHz UltraSPARC)�������ѯ���ش�Լ 150-200 �в��Ҳ�����һ���ʱ�䡣
�������õı��ĵ�ǰ��¼���ǣ�
�� | ���� |
person_data |
71074 |
lentus |
5291 |
twin_project |
5286 |
twin_data |
2012 |
informant_data |
663 |
harmony |
381 |
postal_groups |
100 |
ÿһ�λ�����һ����Ϊevent
��״̬�������������ʾ�IJ�ѯ��������ʾ���¼���ϵ�����˫��̥�ı�����������ٶ�˫��̥�Ѿ���ɣ����ٶԵ�����֮һ����ɶ���һ���ܾ��ˣ��ȵȡ�
select t1.event, t2.event, count(*) from lentus as t1, lentus as t2, twin_project as tp where /* We are looking at one pair at a time */ t1.id = tp.id and t1.tvab=tp.tvab and t1.id = t2.id /* Just the sceening survey */ and tp.survey_no = 5 /* This makes each pair only appear once */ and t1.tvab='1' and t2.tvab='2' group by t1.event, t2.event;