Mysql 终端操作
- windows 终端使用
mysqlsh root@localhost
链接本地数据库
- mysql shell 中可使用三种语言
JavaScript、python和MySQL
- 其中 shell 初始为 js,使用\sql 转换为 sql 语句,python 同理
- MySQL 快捷键
Mysql 基础
- sql 语句一般并不区分大小写
- sql 语句的分类
- DDL 数据定义语言
- 关键字有 CREATE、DROP、ALTER、TRUNCATE
- 用于定义数据对象
- DML 数据操作语言
- INSERT、UPDATE、DELETE、CALL
- 增删改
- DQL 数据查询语言
- DCL 数据控制语言
- GRANT、REVOKE
- 用于定义数据库的访问权限和安全级别
- sql 具体操作
- 数据库操作
- 创建数据库:
CREATE database 数据库名;
- 查看数据库:
show databases;
- 删除数据库:
drop database 数据库名
- 选择(使用)数据库:
use 数据库名
- 表操作
- 创建表:
create table 表名(字段的名称 字段的数据类型,)
- 查找表结构:
desc 表名
describe
- 修改表结构:
alter table 表名 modify column 列名 数据类型
- modify column 表示修改列
- 可通过
modify 列名 数据类型 default 1
设置默认值为 1
- rename column 表示重命名字段
rename column 旧字段名 to 新字段名
- add column 表示添加列
add column 列名 列数据类型
- drop column 表示删除列
drop column 列名
- 删除表:
drop table 表名
- mysql 数据类型(五类)
- 数值类型
- 日期时间类型
- date 日期
- time 时间
- datetime 日期时间
- timestamp 时间戳
- 字符串
- char 定长字符串
- varchar 变长字符串
- text 文本
- blob 二进制数据
- decimal(n,m)长度为 n,保留 m 为小数的十进制数值
- json 类型
- 空间类型
Sql数据操作
- 插入操作
INSERT INTO 表名 (列名1,列名2……)VALUES (新列元素1,新列元素2……)
- 若表名后的括号中包含所有列,并且顺序也和表结构保持一致,可以不使用括号内列名,表名直接接
values
VALUES
后可接多个括号插入多条数据
- 查询操作
select 后接查询(显示)的列名 from 表名
或 select * from 表名
- 修改操作
UPDATE 表名 set 列名 = 值 where 列名(键值,表示修改哪行的数据)=
- 也可
UPDATE 表名 set 列名 = 值
直接修改所有内容
- 删除操作
DELETE FROM 表名 where = 键值(删除对应键值的内容)
Sql 表导入导出
- 导出
mysqldump -u root -p 表名 > 表.sql
-u
后接用户名
-p
后接表名
- 导出
mysql -u root -p 表名 < 表.sql
Sql 常用语句
- where 子句
- 用来提取那些满足指定标准的记录
where 列 接条件 AND 另一条件
- 条件可为 =、< 或 > 等
- 逻辑运算符优先级
NOT > AND > OR
, 也可以使用括号改变优先级
- 也可以为
where 列 IN (多个条件)
where 列 BETWEEN 范围1 AND 范围2
where 列 LIKE 匹配模式
- 使用 like 来进行模糊查询
+ 使用 %
来表示任意多个字符
+使用 _
来表示一个字符
+使用 REGEXP
来匹配正则表达式
+ 可用通配符来设置模式
+ ·
表示匹配任意一个字符
+ ^
表示匹配开头
+ $
表示匹配结尾
+ [abc]
表示匹配其中任意一个字符
+ [a-z]
表示匹配范围内的任意一个字符
+ A|B
匹配A或者B
where 列名 is null
查找空值
where 列名 = ''
查找空字符串(空值)
- 可同
SELECT、UPDATE和DELETE
一起使用
- order by 子句
SELECT * FROM 表名 ORDER BY 列名
- 默认升序排列
- 降序排列要在列名后加上
DESC
SELECT * FROM 表名 ORDER BY 列名,第二列名
表名在前列排序的基础上,对后列进行排序
- ORDER BY 后也可以使用
列的序号(第几列)
进行排序
- 聚合函数:用于对某列进行计算
AVG()
返回集合的平均值
COUNT()
返回集合中的项目数
MAX()
返回最大值
MIN()
返回最小值
SUM()
求和
- 分组查询:group by
SELECT 列名 ,count(*)FROM group by 列名
- 表示按列来进行分组,并且用 count 来得到数量
SELECT 列名 ,count(*)FROM group by 列名 having count(列名)条件
- 后也可以继续跟 order by 进行排序
limit 数量
表示限制数量
distinct 列名
去除重复的内容
union
用于合并查询的结果
- 将两条语句用 union 链接起来即可
- union 可能会将不同时满足结果的内容去掉
- 可以使用
union all
合并所有结果
intersect
用于查找两个结果的交集
except
查找两个结果的差集
Sql 函数
Comments NOTHING