数据库基本操作
修改数据库编码
ALTER DATABASE 库名 DEFAULT CHARACTER SET 编码 COLLATER 编码_bin
查看表信息
DESCRIBE(DESC) 表名
修改表名
ALTER TABLE 旧表名 RENAME [TO] 新表名
修改字段名
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型
修改字段数据类型
ALTER TABLE 表名 MODIFY 字段名 数据类型
添加字段
ALTER TABLE 表名 ADD 新字段名 数据类型 [约束条件] [FIRST|AFTER 已存在字段名]
删除字段
ALTER TABLE 表名 DROP 字段名
修改字段排列位置
ALTER TABLE 表名 MODIFY 待修改字段名 数据类型 FIRST|AFTER 已存在字段名
约束条件、索引
PRIMARY KEY ——主键约束
FOREIGN KEY ——外键约束
NOT NULL ——非空约束
UNIQUE ——唯一约束
DEFAULT ——默认值约束
FULLTEXT ——全文索引
SPATIAL ——空间索引
多字段主键
PRIMARY KEY (字段名1,字段名2,……)
自动增长
AUTO_INCREMENT
新增索引
ALTER TABLE 表名 ADD [UNIQUE|FULLTEXT|SPATIAL] INDEX 索引名 (字段名 [(长度)] [ASC|DESC])
删除索引
ALTER TABLE 表名 DROP INDEX 索引名
DROP INDEX 索引名 ON 表名
设置数据库引擎
ENGINE=InnoDB|MyISAM
增删改操作
添加数据
INSERT INTO 表名(字段名1,字段名2,…) VALUES(值1,值2,…)
INSERT INTO 表名 VALUES(值1,值2,…)
INSERT INTO 表名 SET 字段名1=值1,字段名2=值2,……
INSERT INTO 表名(字段名1,字段名2,…) VALUES(值1,值2,…), (值1,值2,…),…
更新数据
UPDATE 表名 SET 字段名1=值1[字段名2=值2,…]
删除数据
DELETE FROM 表名 [WHERE 表达式]
清空表
TRUNCATE [TABLE] 表名
按条件查询
排序
ORDER BY 字段名 [ASC|DESC] DESC:降序
结果范围
LIMIT [记录条数]
LIMIT [偏移量,记录条数]
在集合中
WHERE 字段名 [NOT] IN (元素1,元素2…)
在范围内
WHERE 字段名 [NOT] BETWEEN 值1 AND 值2
空值
WHERE IS [NOT] NULL
去重复
SELECT DISTINCT 字段名 FROM 表名
模糊查询
WHERE 字段名 [NOT] LISKE ‘匹配字符串’
%:任意长度字符 _:单个字符
高级查询
聚合函数(只出现在select,group by,having,order by中)
COUNT(字段名) 计数
SUN(字段名) 求和
AVG(字段名) 求平均值
MAX(字段名) 求最大值
MIN(字段名) 求最小值
排序
ORDER BY 字段名1 [ASC|DESC],字段名2 [ASC|DESC]…
分组查询(一般和聚合函数一块使用)
GROUP BY 字段名1,字段名2,…[HAVING 条件表达式]
多表操作
添加外键
ALTER TABLE 表名 add constraint FK_ID foreign key(外键字段名) REFERENCES 外键表(主键)
删除外键
ALTER TABLE 表名 DROP foreign key 外键名
交叉连接
SELECT * FROM 表1 CROSS JOIN 表2
内连接,左连接,右连接
SELECT 字段 FROM 表1 [LEFT|RIGHT]JOIN 表2 ON 表1.关系字段=表2.关系字段
事物
开启事物
START TRANSACTION
提交
COMMIT
回滚
ROLLBACK
设置隔离级别
SET SESSION TRANSACTION ISOLATION LEVEL 级别
读未提交:READ UNCOMMITED
读提交:READ COMMITED
可重复读:REPEATABLE READ
可串行化:SERIALIZABLE
存储过程
创建存储过程
CREATE PROCEDURE sp_name([proc_parameter]) [characteristics…] routine_body
存储过程的名称:sp_name
参数列表:proc_parameter
[IN|OUT|INOUT] param_name type
例:
DELIMITER //
CREATE PROCEDURE Proc()
BEGIN
SELECT * FROM student;
END //
新建变量
DECLARE var_name [,varname]… date_type [DEFAULT value]
变量赋值
SET var_name = expr [,var_name = expr]…
变量赋值
SELECT col_name[…] INTO var_name[…] table_expr
IF语句
IF expr THEN statement_list
[ELSEIF expr THEN statement_list]
[ELSE statement_list]
END IF
CASE语句
CASE val
WHEN vlaue THEN statement_list;
[WHEN value THEN statement_list]…
[ELSE statement_list]
END CASE
LOOP语句
[loop_label:]LOOP
Statement_list
END LOOP [loop_label]
跳出循环
LEAVE label
再次循环
ITERATE label
WHILE语句
[while_label:]WHILE expr DO
Statement_list
END WHILE [while_label]
调用存储过程
CALL sp_name(参数列表)
查看存储过程
SHOW {PROCEDURE|FUNCTION} STATUS [LIKE ‘pattern’]
删除存储过程
DROP {PROCEDURE|FUNCTION} [IF EXISTS] sp_name
视图管理
创建视图
CREATE [OR REPLACE] VIEW view_name AS SELECT_statement
删除视图
DROP VIEW [IF EXISTS] view_name,…
数据库高级操作
备份单个数据库
Mysqldump –uusername –ppassword dbname [tbname1,…]>filename.sql
备份多个数据库
Mysqldump –uusername –ppassword dbname1 [dbname2 …]>filename.sql
数据库还原
Mysql –uusername –ppassword [dbname] <filename.sql
发表评论
抢沙发~