MySQL之基本语法

MySQL基本命令

数据库操作

# 查询所有数据库
SHOW DATABASES;
# 查询当前数据库
SHOW DATABASE();
# 创建
CREATE DATABASE [IF NOT EXISTS] 数据库名 [DEFAULT CHARSET 字符集(如utf8mb4)] [COLLATE 排序规则];
# 删除
DROP DATABASE [IF EXISTS] 数据库名;
# 使用
USE 数据库名;

表操作

# 查询所有表
SHOW TABLES;
# 查询表结构
DESC 表名;
# 查询指定表的建表语句
SHOW CREATE TABLE 表名;
# 表结构的创建
CREATE TABLE 表名(
	字段1 字段1类型[COMMENT 字段1注释],
	字段2 字段2类型[COMMENT 字段2注释],
	字段3 字段3类型[COMMENT 字段3注释]
)[COMMENT 表注释];
# 表结构添加字段
ALTER TABLE 表名 ADD 字段名 类型(长度) [COMMENT 注释] [约束];
# 表结构修改数据类型
ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度);
# 表结构修改字段名和字段类型
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度) [COMMENT 注释][约束];
# 表结构删除字段
ALTER TABLE 表名 DROP 字段名;
# 修改表名
ALTER TABLE 表名 RENAME TO 新表名;
# 删除表
DROP TABLE [IF EXISTS] 表名;
# 删除表并重新创建
TRUNCATE TABLE 表名;

数据操作

# 添加数据(给指定字段)
INSERT INTO 表名(字段1,字段2,) VALUES (1,2,);
# 添加数据(给全部字段)
INSERT INTO 表名 VALUES (1,2,);
# 批量添加数据
INSERT INTO 表名(字段1,字段2,) VALUES (1,2,),(1,2,);
INSERT INTO 表名 VALUES (1,2,),(1,2,);

# 修改数据
UPDATE 表名 SET 字段名1=1, 字段名2=2,[WHERE 条件];
# 删除数据
DELETE FROM 表名 [WHERE 条件];

查询操作

# 查询语句
SELECT 字段 FROM 表名 WHERE 条件 GROUP BY 分组字段 
HAVING 分组后条件 ORDER BY 排序字段 LIMIT 分页;
# 基本查询
SELECT [DISTINCT(去除重复记录)] 字段1[AS 别名1],字段2[AS 别名2] FROM 表名;
# 聚合函数(count,max,min,avg,sum),NULL值不参与聚合函数运算。
SELECT 聚合函数(字段列表) FROM 表名;
# 分组查询(WHERE不能对聚合函数进行判断,而HAVING可以,如HAVING count(*) > 5)
SELECT 字段 FROM 表名 [WHERE 条件] GROUP BY 分组字段名 [HAVING 分组后过滤条件];
# 排序查询(默认值为ASC:升序;DESC:降序。多字段表示先按第一个字段排序,第一个字段相同,再按第二个字段排序)
SELECT 字段 FROM 表名 [WHERE 条件] ORDER BY 字段1 排序方式1, 字段2 排序方式2;
# 分页查询(查询第一页可以省略起始索引)
SELECT 字段 FROM 表名 LIMIT 起始索引, 查询记录数;

注:执行顺序为:FROM>WHERE>GROUP BY>HAVING>SELECT>ORDER BY>LIMIT

用户管理(主机名为%表示可以在任意主机上访问数据库)

# 查询用户
USE mysql;
SELECT * FROM user;
# 创建用户
CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';
# 修改用户密码
ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码';
# 删除用户
DROP USER '用户名'@'主机名';

权限控制

# 查询权限
SHOW GRANTS FOR '用户名'@'主机名';
# 授予权限
GRANT 权限 ON 数据库名.表名 TO '用户名'@'主机名';
# 撤销权限
REVOKE 权限 ON 数据库名.表名 FROM '用户名'@'主机名';

MySQL数据类型

MySQL中的数值类型

类型解释有符号范围无符号范围
TINYINT小整数值(-128,127)(0,255)
SMALLINT大整数值(-32768,32767)(0, 65535)
MEDIUMINT大整数值(-8388608,8388607)(0,16777215)
INT或者INTEGER大整数值(-214783648, 214783647)(0,4294967295)
BIGINT极大整数值(- 2 63 2^{63} 263, 2 63 2^{63} 263-1)(0, 2 64 2^{64} 264-1)
FLOAT单精度浮点数值
DOUBLE双精度浮点数值
DECIMAL小数值(精确定点数)依赖于M(精度,总长度)和D(标度,小数点后的长度)的值依赖于M(精度)和D(标度)的值

MySQL中的字符串类型

类型解释大小
CHAR定长字符串0~255 bytes
VARCHAR变长字符串0~65535 bytes
TINYBLOB不超过255个字符的二进制数据0~255 bytes
TINYTEXT短文本字符串0~255 bytes
BLOB二进制形式的长文本0~65535 bytes
TEXT长文本数据0~65535 bytes
MEDIUMBLOB中等长度的二进制形式的文本0~16777215 bytes
MEDIUMTEXT中等长度文本数据0~16777215 bytes
LONGBLOB二进制形式的极大文本数据0~4294967295 bytes
LONGTEXT极大文本数据0~4294967295 bytes

注:char(10),性能好,不满会用空格填充,varchar(10),性能较差

MySQL中的日期类型

类型解释大小范围格式
DATE日期值31000-01-01 到 9999-12-31YYYY-MM-DD
TIME时间值3-838:59:59 到 838:59:59HH:MM:SS
TEAR年份值11901 到 2155YYYY
DATETIME混合日期和时间值81000-01-01 00:00:00 到 9999-12-31 23:59:59YYYY-MM-DD HH:MM:SS
TIMESTAMP混合日期和时间值,时间戳41970-01-01 00:00:01 到 2038-01-19 03:14:07YYYY-MM-DD HH:MM:SS

查询条件

运算符作用
>大于
>=大于等于
<小于
<=小于等于
=等于
<>或!=不等于
BETWEEN … AND …在某个范围之间(包含最小值和最大值)
IN(…)在in之后的列表中
LIKE 占位符模糊匹配(_匹配单个字符,%匹配任意个字符)
IS NULL是NULL
AND 或 &&并且
OR 或 ||或者
NOT 或 !非,不是

权限控制

权限含义
ALL,ALL PRIVILEGES所有权限
SELECT查询数据
INSERT插入数据
UPDATE修改数据
DELETE删除数据
ALTER修改表
DROP删除数据库,表,试图
CREATE创建数据库,表
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值