您的位置:首页 > 数据库 > MySQL

MySQL学习 - Sql语句汇总

2017-12-19 15:48 375 查看
/*
创建数据库
*/
CREATE DATABASE 数据库名;

/*
切换到指定数据库
*/
USE 数据库名;

/*
创建表
*/
CREATE TABLE 表名(
/*字段*/
字段名 字段数据类型 约束;
id INT AUTO_INCREMENT PRIMARY KEY NOT NULL,(字段id INT类型 自增长 主键 不能为空)

`name` VARCHAR(255) NOT NULL(字段`name` VARCHAR类型长度255 不能为空)
);

/*
修改指定表中字段的字段名和类型
*/
ALTER TABLE 表名 CHANGE 字段名 新字段名 新字段名类型;

/*
向表中指定字段插入数据
*/
INSERT INTO 表名 (字段名) VALUE (字段值);

/*
向指定表中所有字段插入数据,顺序为创建表时的字段顺序
*/
INSERT INTO 表名 VALUE (值);

-- 删除指定表中,符合条件的所有数据
DELETE FROM 表名 WHERE 条件;

/*
给指定表中字段更新数据
*/
UPDATE 表名 SET 字段名=字段值,....;

/*
给指定表中符合要求的所有字段更新数据
*/
UPDATE 表名 SET 字段=字段值,..... WHILE 条件;

/*
删除指定表
*/
DELETE FROM 表名 [WHILE 条件];或者TRUNCATE TABLE 表名;(两者区别: DELETE是一条一条删除,不删除AUTO_INCREMENT记录数。TRUNCATE 是直接删除表,重新建表,AUTO_INCREMENT记录数被置为零)

/*
单表查询
*/

-- 查询表中所有数据
SELECT * FROM 表名;

-- 查询表中指定字段
SELECT 字段名,字段名 FROM 表名;

-- 别名查询
SELECT 字段 AS '字段别名' FROM 表名; 或者 SELECT 字段 字段别名 FROM 表名;

-- 给指定字段去重
SELECT DISTINCT 字段名 FROM 表名;

-- 给指定字段+10
SELECT 字段名+10 FROM 表名;

-- 查询指定字段中值为指定字符串内容的所有信息
SELECT * FROM 表名 WHERE  字段名='';

-- 查询指定字段中值等于指定数的所有信息
SELECT * FROM 表名 WHERE 字段名=指定数;

-- 查询指定字段中值不等于指定数的所有信息
SELECT * FROM 表名 WHERE 字段名!=指定数; 或者 SELECT * FROM 表名 WHERE NOT (指定字段=指定数);

-- 模糊查询,查询指定字段中包含指定字符的所有信息
SELECT * FROM 表名 WHERE 字段名 LIKE '%指定字符%';

-- 模糊查询,查询指定字段中以指定字符开头的所有信息
SELECT * FROM 表名 WHERE 字段名 LIKE '指定字符%';

-- 模糊查询,查询指定字段中第二个字为指定字符的所有信息
SELECT * FROM 表名 WHERE 字段名 LIKE '_指定字符%';

-- 查询指定字段值为空的所有信息
SELECT * FROM 表名 WHERE 字段名 IS NULL;

-- 查询指定字段中不为空的所有信息
SELECT * FROM 表名 WHERE 字段名 IS NOT NULL;

-- 查询表中所有所有信息总条数
SELECT COUNT(*) FROM 表名;

-- 查询表中符合指定条件的所有信息总条数
SELECT COUNT(*) FROM 表名 WHERE 条件;(WHERE为分组前查询)

-- 求和
SELECT SUM(字段名) FROM 表名 WHERE 条件;

-- 求平均值
SELECT AVG(字段名) FROM 表名 WHERE 条件;

-- 求最大值、最小值
SELECT MAX(字段名) FROM 表名 WHERE 条件;
SELECT MIN(字段名) FROM 表名 WHERE 条件;

-- 分组查询
SELECT 字段1,字段2… FROM 表名 GROUP BY分组字段 HAVING 分组条件;(必须与聚合函数配合使用,且HAVING为分组后进行筛选)

/*
多表查询
*/

-- 添加字段
ALTER TABLE 表名 ADD COLUMN 字段名 字段类型;

-- 添加外键约束
ALTER TABLE 表名 ADD CONSTRAINT 字段别名 FOREIGN KEY(字段名) REFERENCES 主表表名(主表字段);

-- 交叉连接查询
SELECT * FROM A,B;

/*
内连接查询
*/
-- 隐式内连接
SELECT * FROM A,B WHERE 条件;

-- 显式外连接
SELECT * FROM A INNER JOIN B ON 条件;

-- 左外连接
SELECT * FROM A LEFT OUTER JOIN B ON 条件;

-- 右外连接
SELECT * FROM A RIGHT OUTER JOIN B ON 条件;

/*
查看数据库中的所有表
*/
SHOW TABLES;

/*
查看表结构
*/
DESC 表名;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据库 mysql sql