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