MySQL
2022-03-18 11:20:55 4 举报
AI智能生成
10分钟掌握MySQL基础命令
作者其他创作
大纲/内容
启动MySQL服务:net start mysql57
关闭MySQL服务:net stop mysql57
进入MySQL:mysql -hlocalhost -uroot -p11111
初始操作
创建数据库:CREATE DATABASE 数据库名称 CHARACTER SET UTF8;
切换数据库:USE 数据库名;
查看所有数据库:SHOW DATABASES;
查看当前所使用的数据库:SELECT DATABASE();
查看数据库的定义信息:SHOW CREATE DATABASE 数据库名称;
修改数据库字符集:ALTER DATABASE 数据库名 CHARACTER SET 字符集;
删除数据库:DROP DATABASE 数据库名;
数据库
创建数据表:CREATE TABLE 表名 (字段名称 字段类型);
创建与另一表结构相同的表:CREATE TABLE 新表名 like 旧表名;
查看所有的表:SHOW TABLES;
查看表的结构:DESC 表名;
添加列:ALTER TABLE 表名 ADD 列名 数据类型;
修改列的数据类型或长度:ALTER TABLE 表名 MODIFY 列名称 列类型(长度);
修改列的名称:ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型(长度);
修改表名字:RENAME TABLE 旧表名 to 新表名;
修改表字符集:ALTER TABLE 表名 CHARACTER SET 新字符集;
删除表:DROP TABLE IF EXISTS 表名;
删除列:ALTER TABLE 表名 DROP 列名;
数据表
DDL
font color=\"#ff0000\
更改数据:UPDATE 表名 SET 列名 = 值 WHERE 条件;
删除数据:DELETE FROM 表名 WHERE 条件;
DML
全部查询:SELECT * FROM 表名;
别名查询:SELECT 列名 AS 别名 FROM 表名;
去重查询:SELECT DISTINCT 列名 FROM 表名;
运算查询:SELECT 列的相关运算 FROM 表名;
简单查询
BETWEEN...AND条件:在...之间
IN(集合)条件:满足集合中的条件
%:表示任意匹配多个字符串
_:表示匹配一个字符
LIKE条件:
是否为空:IS NULL
定义:SELECT 列名 FROM 表名 WHERE 条件;
条件查询
DQL
创建用户:create user '用户名'@'主机名' identified by '密码';
用户授权:grant 权限 on 数据库名.表名 to '用户名'@'主机名';
查看权限:show grants for '用户名'@'主机名';
删除用户:drop user '用户名'@'主机名';
DCL
排序:SELECT * FROM 表名 ORDER BY 字段名 ASC/DESC;
聚合函数:SELECT COUNT/SUM/MAX/MIN/AVG(字段名) FROM 表名;
WHERE是分组前过滤,后面不能使用聚合函数。
HAVING是分组后过滤,后面可以使用聚合函数。
分组:SELECT 分组字段/聚合函数 FROM 表名 GROUP BY 字段名 【HAVING 条件】;
CREATE TABLE 表名 (字段名 字段类型 PRIMARY KEY AUTO_INCREMENT) AUTO_INCREMENT=起始值;
CREATE TABLE 表名 (字段名 字段类型, PRIMARY KEY (字段名)) ;
ALTER TABLE 表名 ADD PRIMARY KEY (字段名);
添加主键约束
ALTER TABLE 表名 DROP PRIMARY KEY;
DELETE只是删除表中所有数据对自增没有影响
TRUNCATE是删除整个表,创建一个新的从1开始的自增主键
说明
删除主键约束
PRIMARY KEY
CREATE TABLE 表名 (字段名 字段类型 NOT NULL);
NOT NULL
CREATE TABLE 表名 (字段名 字段类型 UNIQUE);
UNIQUE
CREATE TABLE 表名 (字段名 字段类型 DEFAULT 默认值);
DEFAULT
添加外键:alter table 从表名 add constraint 起的外键名 foreign key (从表字段名) references 主表名(主表字段名);
删除外键:alter table 从表名 drop foreign key 外键名称;
FOREIGN KEY
SQL约束
启动:START TRANSACTION 或者BEGIN
提交:COMMIT
回滚:ROLLBACK
READ UNCOMMITTED
READ COMMITTED
REPEATABLE READ
SERIALIZABLE
查看隔离级别:SELECT @@TX_ISOLATION;
设置隔离级别:SET GLOBAL TRANSACTION ISOLATION LEVEL 隔离级别名称;
四种隔离级别
数据库事务
补充内容
显式内连接:select * from 左表 inner join 右表 on 条件;
内连接
左外连接:select * from 左表 left outer join 右表 on 条件;
右外连接:select * from 右表 right outer join 左表 on 条件;
外连接
多表查询
子查询结果作为父查询条件
select 查询字段 from 表名 where 字段 = (子查询);
where型
子查询结果为一张表,提供给父查询使用
select 查询字段 from (子查询) 表别名 where 条件;
from型
子查询结果为单列多行,父查询的条件中使用in
select 查询字段 from 表名 where 字段名 in (子查询);
exists型
子查询
多表
主键索引
创建2:create unique index 索引名 on 表名(字段名)
创建3:alter table 表名 add unique 字段名
唯一索引
创建1:create index 索引名 on 表名(字段名);
创建2:alter table 表名 add index 索引名 (字段名)
删除索引:alter table 表名 drop index 索引名;
普通索引
索引
创建:create view 视图名称 【可选参数】as select语句;
删除:drop view 视图名称;
视图
delimiter $$
create procedure 存储过程名称()
begin
select等操作;
end $$
调用:call 存储过程名称;
方式一
create procedure 存储过程名称(in 参数名称 参数类型)
调用:call 存储过程名称(实参);
方式二
set @变量名称 = 值;
select @变量名称; -- 返回变量的值
调用:call 存储过程名称(实参,@变量名称);
方式三
存储过程
delimiter $
create trigger 触发器名称
before/after update/insert/delete on 表名
for each row
触发事件;
end $
创建
删除:drop trigger 触发器名称;
触发器
索引、视图、存储过程、触发器
进入C:\\Program Files\\MySQL\\MySQL Server 5.7\\bin目录的操作台
mysqldump -uroot -p密码 要备份的数据库名称 > D:\\备份的路径\\数据库文件名.sql;
备份
操作台进入mysql数据库
创建新的空白数据库,并切换成该新创建的数据库
source D:\\备份的路径\\数据库文件名.sql;
还原
数据库备份与还原
获取mysql服务器版本信息:select version();
查看服务器状态信息:show status;
显示表的字段信息:show columns from 表名,和desc 表名一样
显示表的详细索引信息:show index from 表名
元数据
MySQL
0 条评论
下一页