MySQL

MySQL

1. DDL(Data Defination Language) 数据定义语言

​ 用来定义数据库对象,包括数据库,表,列等.

​ 相关关键字包括:CREATE,DROP,ALTER等.

2. DML(Data Manipulation Language) 数据操作语言

​ 用来对数据库中的数据进行增删改查.

​ 相关关键字包括:INSERT,DELETE,UPDATE等.

3. DQL(Data Query Language) 数据查询语言

​ 用来查询数据库表中的记录/数据.

​ 相关关键字包括:SELECT,WHERE等.

4. DCL(Data Control Language) 数据控制语言

​ 用来定义数据库访问权限和安全级别.

​ 相关关键字包括:GRAND,REVOKE等.

5. TCL(Transaction Control Language) 事物控制语言

​ 用来管理事务.

​ 相关关键字包括:COMMIT,ROLLBACK等.


终端操作

  • 登录本地MySQL服务(用户终端./MySQL/MySQL/MySQL Server 8.0/bin>)
mysql -u root -p

-u 指定用户名

-p 使用密码登录

  • 创建数据库
CREATE DATABASE <dbname>;
  • 查看当前已经存在的数据库
SHOW DATABASES;
  • 删除数据库
DROP DATABASE <dbname>;
  • 切换数据库
USE <dbname>;

  • 创建表
CREATE TABLE <tablename> (
	# 表的结构定义
	<列名> <数据类型> [<其他设置>],
	...
	<列名> <数据类型> [<其他设置>],
)

数据类型:

## 数值类型
- 整数类型: INTEGER/INT , SMALLINT , TINYINT , MEDIUMINT , BIGINT
- 定点类型: DECIMAL , NUMERIC
- 浮点类型: FLOAT , DOUBLE

## 日期类型
- DATE , DATETIME , TIMESTAMP , TIME , YEAR

## 字符串类型
- CHAR , VARCHAR , BINARY , VARBINARY , BLOB , TEXT , ENUM , SET

其他设置:

- DEFAULT
- PRIMARY KEY
  • 查询表结构
DESC <tablename>;
  • 修改表结构
## 修改列的数据类型
ALTER TABLE <tablename> MODIFY COLUMN <列名> <新数据类型>;

## 修改列名
ALTER TABLE <tablename> RENAME COLUMN <列名> to <新列名>;

## 添加列
ALTER TABLE <tablename> ADD COLUMN <列名> <数据类型>;

## 删除列
ALTER TABLE <tablename> DROP COLUMN <列名>;

## 添加其他设置
ALTER TABLE <tablename> MODIFY <列名> <类型> <其他设置>;
  • 清空表
TRUNCATE TABLE <tablename>;
  • 删除表
DROP TABLE <tablename>;

数据的增删改查
INSERT INTO <tablename> [(<列名1>, <列名2>)] VALUES (<数据1>, <数据2>);

可以在后面用逗号隔开继续写(<数据1>, <数据2>)表示添加多组数据

如果没有写(<列名1>, <列名2>)表示后面根据定义时的默认顺序赋值

没有赋值也没有默认值的值为NULL

INSERT INTO <tablename> <查询结果>;
DELETE FROM <tablename> WHERE <condition>;

WHERE:用来按照指定的条件过滤数据.

UPDATE <tablename> SET <列名>=<新数据> WHERE <condition>;

列名*代替表示所有列

select <列名> from <tablename> [WHERE <condition>];
select <列名> from <tablename> ORDERED BY <列名1> [DESC];

表示根据列名1升序排列

加上DESC表示降序排列

:

## AND / OR 条件连接
- <condition1> [AND|OR] <condition2>

## NOT
- NOT <condition>

## LIKE:用在where子句中搜索满足指定<模式>的值
- <列名> LIKE '<模式>'

## REGEXP:用在where子句中搜索满足指定<正则表达式>的值
- <列名> REGEXP '<正则表达式>'

## is / <=>
- <列名> [is|<=>] NULL

## BETWEEN:用来选取介于<数据1>和<数据2>之间的数据
- <列名> BETWEEN <数据1> AND <数据2>

## IN
- <列名> IN (<数据1>, <数据2>, ...)

正则表达式:

- 任意一个字符: .
- 开头: ^
- 结尾: $
- 其中一个字符: [abc]
- 范围内一个字符: [a-z]
- A或者B: A|B
- 多个字符: *
SELECT <列名>, <聚合函数(列名)> FROM <tablename> WHERE <condition> GROUP BY <列名> HAVING <聚合函数(列名)> <运算符> <数据>

聚合函数():

## 聚合函数
- 返回集合平均值: AUG()
- 返回集合中的项目数: COUNT()
- 返回最大值: MAX()
- 返回最小值: MIN()
- 求和: SUM()
- 四舍五入: ROUND()

GROUP BY结合聚合函数使用,根据一个或多个列队结果集进行分组.

HAVING用于筛选分组后的数据

## DISTINCT:数据去重
SELECT DISTINCT <列名> FROM <tablename>;

## LIMIT:限定返回记录的条数
SELECT <列名> FROM <tablename> LIMIT <数字>;
<子句1> [UNION|INTERSECT|EXCEPT] <子句2>;

子句就是那些select语句

UNION:并集,默认去重, UNION ALL不去重

INTERSECT:交集

EXCEPT:差集

  • 表关联
SELECT <列名> FROM <tablename1> [INNER JOIN|LEFT JOIN|RIGHT JOIN|FULL JOIN] <tablename2> ON <tablename1>.<列名> = <tablename2>.<列名>;

INNER JOIN:内连接

LEFT JOIN:左连接

RIGHT JOIN:右连接

FULL JOIN:全连接


索引

在多数据时,提高查找效率

  • 创建索引
CREATE INDEX <indexname> ON <tablename>(<列名>);
  • 查询索引
SHOW INDEX FROM <tablename>;
  • 删除索引
DROP INDEX <indexname> ON <tablename>;
  • 给其他列添加索引
ALTER TABLE <tablename> ADD <indexname>(<列名>)

  • 数据的导出
mysqldump -u root -p <dbname> [<tablename>] > <文件名>.sql
  • 数据的导入
mysql -u root -p <dbname> < <文件名>.sql

使用cmd,不要用powershell

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值