1、查看数据库列表

SHOW DATABASES;



2、查看数据库

SHOW TABLES;



3、查看表

USE mydatabase;

//下面这些语句作用是相同的
DESCRIBE students;
DESC students;
EXPLAIN students;
SHOW COLUMNS FROM students;
SHOW FIELDS FROM students;



4、导入数据

可以用SOURCE命令读入文件

source insert.sql



如果文件记录项是以纯数据形式来存放,可以利用LOAD DATA 或 mysqlimport 

LOAD DATA LOCAL INFILE 'students.txt' INTO TABLE students;



5、对输出进行求值和命名

将字段合并

SELECT CONCAT(first_name, ' ', last_name) FROM students;

上句可将查询结果first_name 和 last_name 合并,中间用空格连接。

6、与日期有关

mysql中日期格式 为2011-11-25,可用YEAR()、MONTH()、DAYOFMONTH()分别分离出来

例如,查询生日在3月的学生:

SELECT last_name FROM students WHERE MONTH(birth) = 3;


如果你想知道某两个日期之间的时间间隔,拿他们做减法即可。例如想知道哪位总统寿命最长:

SELECT last_name TIMESTAMPDIFF(YEAR, birth, death) AS age FROM president WHERE death IS NOT NULL ORDER BY age DESC LIMIT 5;


计算日期的另一种方法是TO_DAYS,他将日期都转化为天数。这个函数可以计算出距离某个特定日期时间还有多长。

例如需要计算60天内需要续费的会员:用会员到期时间减去今天的日期,如果小于60则表示该会员近期内需要续费:

SELECT last_name FROM member WHERE (TO_DAYS(expiration) - TO_DAYS(CURDATE())) < 60;


使用TIMESTAMPDIFF()函数也可以完成:

SELECT last_name FROM member WHERE TIMESTAMPDIFF(DAY, CURDATE(), expiration) < 60;



DATE_ADD() 或 DATE_SUB() 函数输入的参数是一个日期值和一个时间间隔,返回结果则是一个新日期,还是上例中的会员费,可以这样:

SELECT last_name FROM member WHERE expiration < DATE_ADD(CURDATE(), INTERVAL 60 DAY);



7、如何设置和使用变量

mysql允许使用自定义变量。我们可以使用查询结果来设置变量,这使我们能够方便把一些值保存起来以供今后查询。例如想知道生日在david之前的人。可以这样:

SELECT @birth := birth FROM students WHERE last_name = 'david';
SELECT last_name FROM students WHERE birth<@birth ORDER BY birth;

变量命名语法  @变量名  ,前面的问题可以通过联接或子查询来解决。而有时候使用变量可能更容易。

8、如何生成统计

MySql 最有用的功能之一就是生成多种统计汇总信息

统计有多少会员:

SELECT COUNT(*) FROM member;



特别需要注意的是,COUNT(*)是统计所有选中数据行的总数,而COUNT(列名)则统计所有选中非NULL值的个数。

如果要统计有多少个州曾经出过总统:

SELECT COUNT(DISTINCT state)  FROM president;

使用DISTINCT去除重复项

除此之外,可用GROUP BY 子句统计,如统计每个州出过多少总统:

SELECT state, COUNT(*) FROM president GROUP BY state ;
SELECT state, COUNT(*) as count  FROM president GROUP BY state ORDER BY count DESC;
CREATE TABLE......LIKE
CREATE TABLE......SELECT
CREATE TABLE......LIKE  
INSERT INTO ......SELECT