mysql常用操作总结

数据库基本操作

修改数据库编码

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

发表评论

[/0o0] [..^v^..] [0_0] [T.T] [=3-❤] [❤.❤] [^v^] [-.0] [!- -] [=x=] [→_→] [><] 更多 »
昵称

抢沙发~