Mysql基础语法快速上手,ddl,dml,dql,dcl语句速查

Mysql基础语法快速上手,ddl,dml,dql,dcl语句速查

ddl语句

创建数据库
CREATE DATABASE [IF NOT EXISTS] 数据库名 [DEFAULT CHARSET 字符集] [COLLATE 排序规则];
查询所有数据库
SHOW DATABASES;
查询当前数据库
SELECT DATABASE();
删除数据库
DROP DATABASE [IF EXISTS] 数据库名;
使用数据库
USE 数据库名;
创建表
CREATE TABLE 表名(
	字段1 类型 ...
    字段2 类型 ...
);
CREATE TABLE student(
    id int,
	name varchar(16),
    gender varchar(10),
    age int
);
查看表
(查看所有表)SHOW TABLES;
	
(查看表结构)DESC 表名;
	
(查看指定表)SHOW CREATE TABLE 表名;
修改表
以下的加号不代表语句,只是以直观的形式将两个语句组合起来

例:
ALTER TABLE table_name ADD new_val VARCHAR(16);

ALTER TABLE 表名 
(添加字段)+ ADD 字段名 数据类型...
	
(修改数据类型)+ MODIFY 字段名 新数据类型
	
(修改字段名及数据类型类型)+ CHANGE 旧字段名 新字段名 数据类型;
	
(删除字段)+ DROP 字段;
	
(修改表名)+ RENAME TO 新表名;
删除表
(删除)DROP TABLE [IF EXISTS] 表名;
	
(先删除表,再重新创建表结构)TRUNCATE TABLE 表名;
数据类型
TINYINT		1 byte
SMALLINT 	2 bytes
MEDIUMINT 	3 bytes
INT&INTEGER 4 bytes
BIGINT		8 bytes
FLOAT		4 bytes
DOUBLE		8 bytes
DECIMAL		依赖于M(精度)与D(标度)的值

CHAR 			0-255 bytes			定长字符串
VARCHAR			0-65535 bytes		可变长字符串
TINYBLOB		0-255 bytes			不超过255字节的二进制数据
BLOB			0-65535 bytes		二进制长文本数据
MEDIUMBLOB		0-16777215 bytes	二进制加长文本数据
LONGBLOB		0-4294967295 bytes	二进制超长文本数据
TINYTEXT		0-255 bytes			短文本字符串
TEXT			0-65535 bytes		长文本数据
MEDIUMTEXT		0-16777215 bytes	加长文本数据
LONGTEXT		0-4294967295 bytes	超长文本数据

DATE 		1000-01-019999-12-31
TIME		-838:59:59838:59:59
YEAR		19012155
DATETIME	1000-01-01 00:00:009999-12-31 23:59:59
TIMESTAMP	1970-01-01 00:00:012038-01-19 03:14:07

dml语句

添加数据
注意!
	* 插入数据需要与指定的字段一一对应
 	* 插入数据的大小应该符合指定字段的数据范围

(单个添加对应字段,若省略对应字段则需添加所有字段)INSERT INTO 表名 (字段1,字段2,...) VALUES (1,2,...);
	INSERT INTO 表名 VALUES(1,2,...);// 不建议
(多个添加每一个值的数据类型必需顺序一一对应)INSERT INTO 表名 (字段1,字段2,...) VALUES (1,2,...),
											(1,2,...),
											(1,2,...);
	
	// 不建议
	INSERT INTO 表名 VALUES(1,2,...),
					VALUES(1,2,...),
					VALUES(1,2,...);

修改数据
注意!
	如果不加条件,则会修改所有数据

UPDATE 表名 SET 字段名1 =1, 字段名2 =2,...[WHERE 条件];
删除数据
注意!
	* 如果不写条件,则会删除所有数据
	* 删除语句最少会影响一行的数据,即不能删除一行中某个字段的数据

DELETE FROM 表名 [WHRER 条件];

dql语句

聚合函数
COUNT():统计数量
MAX(): 	求最大值
MIN():	求最小值
AVG():	求平均值
SUM():	求和
基本查询
SELECT [DISTINCT] 字段列表... FROM 表名列表...
+ WHERE 条件
+ GROUP BY 分组字段列表...
+ HAVING 分组后条件列表...
+ ORDER BY 排序字段列表...
+ LIMIT 起始索引,查询记录数;
条件
>, <, =, <>, LIKE, IN(), BETWEEN ... AND ... , OR, !
多表查询
内连接(查询两张表的交集数据)
//隐式内连接
SELECT ... FROM1,2 WHERE 条件

//显示内连接
SELECT ... FROM1 [inner] join2 ON 条件
外连接(包含交集+左/右表的数据)
//左外连接
SELECT ... FROM 表1 LEFT [OUTER] JOIN 表2 ON 条件

//右外连接
SELECT ... FROM 表1 RIGHT [OUTER] JOIN 表2 ON 条件
联合查询(默认去重,必须保持查询结果列数一致,字段类型一致)
SELECT ... FROM1...
UNION[ALL]
SELECT ... FROM1...;
子查询
//行子查询
SELECT ... FROM1 WHERE (col_1,col_2..) = (SELECT col_1,col_2.. FROM2 WHERE ...);

//列子查询
SELECT ... FROM1 WHERE column1 IN (SELECT column1 FROM2 WHERE ...);

//表子查询
SELECT ... FROM1 WHERE (col_1,col_2..) IN (SELECT col_1,col_2.. FROM2 WHERE ...);

// 操作符:IN,NOT IN,ANY,SOME,ALL

dcl语句

数据库名与表名可以使用*进行通配,代表所有。

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

主机名可以使用%匹配

新增用户
CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';
删除用户
DROP USER '用户名'@'主机名';
修改用户密码
ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码';
查询用户
USE mysql;
SELECT * FROM user;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fan_11235813

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值