MySQL常用命令

数据库

创建数据库:

CREATE DATABASE 数据库名

选择数据库:

USE 数据库名

删除数据库:

DROP DATABASE 数据库名

CREATE

CREATE TABLE 表名称(列名称1 数据类型,列名称2 数据类型,列名称3 数据类型,....)

ALTER

删除字段
ALTER TABLE 表名 DROP 字段名;
添加字段
ALTER TABLE 表名 ADD 字段名 类型;
修改字段类型
ALTER TABLE 表名 MODIFY 字段名 类型
修改字段名
ALTER TABLE 表名 CHANGE 字段名 新字段名 类型;
修改字段约束
ALTER TABLE 表名 MODIFY 字段名 类型 NOT NULL DEFAULT 100 
修改表名
ALTER TABLE 表名 RENAME TO 新表名;
修改表结构(添加索引)
ALTER table 表名 ADD INDEX 索引名(字段)

INSERT

INSERT INTO 表名(字段,字段...) VALUES (字段值,字段值)

DROP

DROP TABLE 表名

DELETE 、TRUNCATE

delete 删除一条或者多条数据
truncate 删除整张表数据,保留表结构、索引、键

DELETE FROM 表名 WHERE 条件

TRUNCATE TABLE 表名

UPDATE

UPDATE 表名 SET 跟新内容 WHERE 条件

SELECT

SELECT * FROM 表名 WHERE 条件
LIKE模糊查询
SELECT * FROM 表名 WHERE 字段名 LIKE “_xx%
BERWEEN范围之内
SELECT * FROM 表名 WHERE 字段名 BETWEEN 0 and 100
GROUP BY分组
SELECT * FROM 表名 WHERE GROUP BY 字段名 HAVING 条件
ORDER BY排序
SELECT * FROM 表名 ORDER BY 字段名 [DESC|ASC];

[DESC(降序)|ASC(升序)]

IN举例查询
SELECT * FROM 表名 WHERE 字段名 IN (xx,xxx,xxxx)

常用数据类型

整数型:

类型大小范围(有符号)范围(无符号)用途
TINYINT1字节(-128 , 127)(0 , 255)小整数值
SMALLINT2字节(-32768 , 32767)(0 , 65535)大整数值
MEDIUMINT3字节(-8388608 , 8388607)(0 , 16777215)大整数值
INT4字节(-2147483648 , 2147483647)(0 , 4294967295)大整数值
BIGINT8字节(负的2的32次方减1,2的32次方减1)(0 , 2 的 64 次方减 1)极大整数值

浮点型:

FLOAT(m,d )4 字节单精度浮点型备注: m 代表总个数, d 代表小数位个数
DOUBLE(m,d )8 字节双精度浮点型备注: m 代表总个数, d 代表小数位个数

定点型:

DECIMAL(m,d )大小依赖于 M 和 D 的值备注: m 代表总个数, d 代表小数位个数

字符串类型:

CHAR0-255 字节定长字符串
VARCHAR0-65535 字节变长字符串
TINYTEXT0-255 字节短文本字符串
TEXT0-65535 字节长文本数据
MEDIUMTEXT0-16777215 字节中等长度文本数据
LONGTEXT0-4294967295 字节极大文本数据
ps:char的优缺点:存取速度比varchar更快,但是比varchar更占用空间
       varchar的优缺点:比char省空间。但是存取速度没有char快

时间型:

数据类型大小格式备注
date3字节yyyy-MM-dd存储日期值
time3字节HH:mm:ss存储时分秒
year1字节yyyy存储年
datetime8字节yyyy-MM-dd HH:mm:ss存储日期 + 时间
timestamp4字节yyyy-MM-dd HH:mm:ss存储日期 + 时间,可作时间戳

视图

视图简介:

视图(view)是一种虚拟的表,并不在数据库中实际存在。通俗的来说,视图就是执行select语句后返回的结果。

视图的优点:

1、简单
对于数据库的用户来说,很多时候,需要的关键信息是来自多张复杂关联表的。这时用户就不得不使用十分复杂的SQL语句进行查询,给用户造成极差的体验感。使用视图之后,可以极大的简化操作,使用视图的用户不需要关心相应表的结构、关联条件等。对于用户来说,视图就是他们想要查询的结果集。

2、安全
使用视图的用户只能访问被允许查询的结果,使用视图可以限制用户访问一些敏感信息列。

创建视图的语法:

CREATE VIEW 自定义名 AS SELECT <字段|字段|字段> FROM 表名 

WHERE 条件;

修改视图:

ALTER VIEW <视图名> AS <SELECT语句>

索引

普通索引

创建索引

CREATE INDEX 索引名 ON 表名 (字段)

修改表结构(添加索引)

ALTER table 表名 ADD INDEX 索引名(字段)

创建表的时候直接指定

CREATE TABLE mytable(  
ID INT NOT NULL,   
username VARCHAR(16) NOT NULL,  
INDEX [indexName] (username(length))  
);  

删除索引的语法

DROP INDEX [索引名] ON 表名; 

唯一索引

它与前面的普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。它有以下几种创建方式:

创建索引

CREATE UNIQUE INDEX 索引名 ON 表名(字段(length)) 

修改表结构

ALTER TABLE 表名 ADD UNIQUE [索引名] (字段(length))

创建表的时候直接指定

CREATE TABLE 表名(  
ID INT NOT NULL,   
username VARCHAR(16) NOT NULL,  
UNIQUE [索引名] (字段(length))  
);  

使用ALTER 命令添加和删除索引

ALTER TABLE tbl_name ADD PRIMARY KEY (column_list): 该语句添加一个主键,这意味着索引值必须是唯一的,且不能为NULL。
ALTER TABLE tbl_name ADD UNIQUE index_name (column_list): 这条语句创建索引的值必须是唯一的(除了NULL外,NULL可能会出现多次)。
ALTER TABLE tbl_name ADD INDEX index_name (column_list): 添加普通索引,索引值可出现多次。
ALTER TABLE tbl_name ADD FULLTEXT index_name (column_list):该语句指定了索引为 FULLTEXT ,用于全文索引

还可以在 ALTER 命令中使用 DROP 子句来删除索引。尝试以下实例删除索引:

 ALTER TABLE testalter_tbl DROP INDEX c;

显示索引信息

SHOW INDEX 命令来列出表中的相关的索引信息。可以通过添加 \G 来格式化输出信息。

SHOW INDEX FROM table_name; \G

MySQL事务

MySQL事务主要处理操作量大,复杂度高的数据,比如在人员管理系统中,删除一个人员要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作就构成了一个事务。

在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。
事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行。
事务用来管理 insert,update,delete 语句

一般来说,事务是必须满足4个条件(ACID):
原子性(Atomicity,或称不可分割性):
一个事务的所有操作,要么全部完成,要么全部不完成,不会结束再某个中间环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。

一致性(Consistency):
在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这表示写入的资料必须完全符合所有的预设规则,这包含资料的精确度、串联性以及后续数据库可以自发性地完成预定的工作。

隔离性(Isolation,又称独立性):
数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。事务隔离分为不同级别,包括

读未提交(Read uncommitted)
读提交(read committed)
可重复读(repeatable read)
串行化(Serializable)。

持久性(Durability):
事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。

事务控制语句:

BEGIN 或 START TRANSACTION 显式地开启一个事务;

COMMIT 也可以使用 COMMIT WORK,不过二者是等价的。COMMIT 会提交事务,并使已对数据库进行的所有修改成为永久性的;

ROLLBACK 也可以使用 ROLLBACK WORK,不过二者是等价的。回滚会结束用户的事务,并撤销正在进行的所有未提交的修改;

SAVEPOINT identifier,SAVEPOINT 允许在事务中创建一个保存点,一个事务中可以有多个 SAVEPOINT;

RELEASE SAVEPOINT identifier 删除一个事务的保存点,当没有指定的保存点时,执行该语句会抛出一个异常;

ROLLBACK TO identifier 把事务回滚到标记点;

SET TRANSACTION 用来设置事务的隔离级别。InnoDB 存储引擎提供事务的隔离级别有READ UNCOMMITTED、READ COMMITTED、REPEATABLE READ 和 SERIALIZABLE。

MYSQL 事务处理主要有两种方法:

1、用 BEGIN, ROLLBACK, COMMIT来实现

BEGIN 开始一个事务
ROLLBACK 事务回滚
COMMIT 事务确认
2、直接用 SET 来改变 MySQL 的自动提交模式:

SET AUTOCOMMIT=0 禁止自动提交
SET AUTOCOMMIT=1 开启自动提交

菜鸟教程

相关连接:

https://blog.csdn.net/weixin_44096448/article/details/102987895
https://blog.csdn.net/tomatofly/article/details/5949070
https://blog.csdn.net/qq_20477885/article/details/106687673

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值