MySQL命令行

说明 How 示例(s)
运行MySQL mysql -uusername -ppassword mysql -ucusack2RO -pegbdf5s
导入 mysql -uusername -ppassword < filename mysql -usomeDB -pblah < myNewDB.sql
Dumping
(保存)
mysqldump -uusername -ppassword database [tables] > filename mysqldump -ume -pblah myDB > My.sql
mysqldump -ume -pblah myDB table1 
        table2 > my.sql

常见的MySQL列类型

说明 数据类型 示例
整数 int(M) int(5)
浮点数(实数) float(M,D) float(12,3)
双精度浮点 double(M,D) double(20,3)
日期和时间 timestamp(M) timestamp(8) (for YYYYMMDD)
timestamp(12) (for YYYYMMDDHHMMSS)
固定长度字符串 char(M) char(10)
可变长度字符串 varchar(M) varchar(20)
大量的文本 blob blob
从列表中选择的值 enum('value1',value2',...) enum('apples','oranges','bananas')
 
M是最大显示,D是小数右边的精度。

MySQL数学函数

说明 用法
计算每个组的行数 COUNT(column | *)
组的平均值 AVG(column)
组的最小值 MIN(column)
组的最大值 MAX(column)
组中的值总和 SUM(column)
绝对值 abs(number)
四舍五入 round(number)
最大整数 floor(number)
最小整数 ceiling(number)
平方根 sqrt(number)
n次方 pow(base,exponent)
随机数n,0 <n <1 rand()
sin(类似cos等) sin(number)

MySQL字符串函数

说明 示例
比较字符串 strcmp(string1,string2)
转换为小写 lower(string)
转换为大写 upper(string)
去掉左边的空格(类似右) ltrim(string)
截取字符串子串 substring(string,index1,index2)
加密密码 password(string)
编码字符串 encode(string,key)
解码字符串 decode(string,key)
获取日期 curdate()
获取时间 curtime()
日期字符串中提取日期名称 dayname(string)
从日期字符串中提取天数 dayofweek(string)
从日期字符串提取月份 monthname(string)

基本MySQL命令

说明 命令 示例(s)
列出所有数据库 SHOW DATABASES; SHOW DATABASES;
创建数据库 CREATE DATABASE database; CREATE DATABASE PhoneDB;
使用数据库 USE database; USE PhonDB;
列出数据库中的表 SHOW TABLES; SHOW TABLES;
显示表的结构 DESCRIBE table;
SHOW COLUMNS FROM table;
DESCRIBE Animals;
SHOW COLUMNS FROM Animals;
删除数据库(小心!) DROP DATABASE database; DROP DATABASE PhoneDB;

SQL命令:修改

说明 语句 示例(s)
创建表 CREATE TABLE table ( 
        column1 type [[NOT] NULL] 
                [AUTO_INCREMENT],
        column2 type [[NOT] NULL] 
                [AUTO_INCREMENT],
        ...
        other options,
        PRIMARY KEY (column(s))    );
CREATE TABLE Students (
        LastName varchar(30) NOT NULL,
        FirstName varchar(30) NOT NULL,
        StudentID int NOT NULL,
        Major varchar(20),
        Dorm varchar(20),
        PRIMARY KEY (StudentID)     );
插入数据 INSERT INTO table VALUES 
        (list of values);
INSERT INTO table SET
        column1=value1,
        column2=value2,
        ...
        columnk=valuek;
INSERT INTO table (column1,column2,...)
        VALUES (value1,value2...);
INSERT INTO Students VALUES
        ('Smith','John',123456789,'Math','Selleck');
INSERT INTO Students SET
        FirstName='John',
        LastName='Smith',
        StudentID=123456789,
        Major='Math';
INSERT INTO Students
        (StudentID,FirstName,LastName)
        VALUES (123456789,'John','Smith');
插入另一张表的数据 INSERT INTO table (column1,column2,...)
        SELECT statement;
        (See below)
INSERT INTO Students
        (StudentID,FirstName,LastName)
        SELECT StudentID,FirstName,LastName 
        FROM OtherStudentTable;
        WHERE LastName like '%son';
删除数据 DELETE FROM table
        [WHERE condition(s)];



(Omit WHERE to delete all data)
DELETE FROM Students 
        WHERE LastName='Smith';
DELETE FROM Students 
        WHERE LastName like '%Smith%';
        AND FirstName='John';
DELETE FROM Students;
更新数据 UPDATE table SET
        column1=value1,
        column2=value2,
        ...
        columnk=valuek
        [WHERE condition(s)];
UPDATE Students SET 
        LastName='Jones' WHERE
        StudentID=987654321;
UPDATE Students SET 
        LastName='Jones', Major='Theatre' 
        WHERE StudentID=987654321 OR
        (MAJOR='Art' AND FirstName='Pete');
插入列 ALTER TABLE table ADD COLUMN 
        column type options;
ALTER TABLE Students ADD COLUMN 
        Hometown varchar(20);
删除列 ALTER TABLE table
        DROP COLUMN column;
ALTER TABLE Students 
        DROP COLUMN Dorm;
删除表名(小心操作!) DROP TABLE [IF EXISTS] table; DROP TABLE Animals;

SQL命令:查询

说明 命令 示例(s)
所有列 SELECT * FROM table; SELECT * FROM Students;
一些列 SELECT column1,column2,... FROM table; SELECT LastName, FirstName FROM Students;
一些行/列 SELECT column1,column2,...
        FROM table
        [WHERE condition(s)];
SELECT LastName,FirstName
        FROM Students
        WHERE StudentID LIKE '%123%';
去重 SELECT [DISTINCT] column(s)
        FROM table;
SELECT DISTINCT LastName
        FROM Students;
排序 SELECT column1,column2,...
        FROM table
        [ORDER BY column(s) [DESC]];
SELECT LastName,FirstName
        FROM Students
        ORDER BY LastName, FirstName DESC;
列别名 SELECT column1 [AS alias1],
        column2 [AS alias2], ...
        FROM table1;
SELECT LastName,FirstName AS First
        FROM Students;
分组 SELECT column1,column2,...
        FROM table
        [GROUP BY column(s)];
SELECT LastName,COUNT(*)
        FROM Students
        GROUP BY LastName;
分组过滤 SELECT column1,column2,...
        FROM table
        [GROUP BY column(s)]
        [HAVING condition(s)];
SELECT LastName,COUNT(*)
        FROM Students
        GROUP BY LastName
        HAVING LastName like '%son';
Joins SELECT column1,column2,...
        FROM table1,table2,...
        [WHERE condition(s)];
SELECT LastName,Points
        FROM Students,Assignments 
        WHERE AssignmentID=12 AND
        Students.StudentID=Assignments.StudentID;
表别名 SELECT column1,column2,...
        FROM table1 [alias1],
        table2 [alias2],...
        [WHERE condition(s)];
SELECT LastName,Points
        FROM Students S,Assignments A 
        WHERE S.StudentID=A.StudentID AND 
        A.AssignmentID=12;
全部 SELECT [DISTINCT] 
        column1 [AS alias1],
        column2 [AS alias2], ...
        FROM table1 [alias1],
        table2 [alias2],...
        [WHERE condition(s)]
        [GROUP BY column(s)]
        [HAVING condition(s)]
        [ORDER BY column(s) [DESC]];
SELECT Points, COUNT(*) AS Cnt
        FROM Students S,Assignments A 
        WHERE S.StudentID=A.StudentID AND 
        A.AssignmentID=12
        GROUP BY Points
        HAVING Points > 10
        ORDER BY Cnt, Points DESC;