MySQL笔记

教程:https://www.runoob.com/sql/sql-tutorial.html

SELECT

SQL SELECT 语法

SELECT column_name,column_name
FROM table_name;

SELECT * FROM table_name;

SELECT DISTINCT

只列出不同的值

SELECT DISTINCT column_name,column_name
FROM table_name;

WHERE

SELECT column_name,column_name
FROM table_name
WHERE column_name operator value;
运算符描述
=等于
<>不等于。注释:在 SQL 的一些版本中,该操作符可被写成 !=
>大于
<小于
>=大于等于
<=小于等于
BETWEEN在某个范围内
LIKE搜索某种模式
IN指定针对某个列的多个可能值
AND逻辑与
OR逻辑或
NOT逻辑非
特殊条件:
is null空值判断。Select * from emp where comm is null;
between A and BAB之间(闭区间)Select * from emp where sal between 1500 and 3000;
INSelect * from emp where sal in (5000,3000,1500); 查询 EMP 表 SAL 列中等于 5000,3000,1500 的值。
LIKE模糊查询。Select * from emp where ename like 'pattern'; 其中'pattern'为要模糊匹配的内容,可包含:%: 多个字符,_ : 一个字符

ORDER BY

默认升序排序,加上DESC关键字降序排序

SELECT column_name,column_name
FROM table_name
ORDER BY column_name,column_name [ASC|DESC];
  • ORDER BY 多列的时候,先按照第一个column name排序,在按照第二个column name排序
  • DESC 或者 ASC 只对它紧跟着的第一个列名有效,其他不受影响,仍然是默认的升序。

INSERT INTO

INSERT INTO 语句可以有两种编写形式。

第一种形式无需指定要插入数据的列名,只需提供被插入的值即可(需要列出插入行的每一列数据):

INSERT INTO table_name
VALUES (value1,value2,value3,...);

第二种形式需要指定列名及被插入的值:

INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);
  • Values可以不提供id,id 列是自动更新的,表中的每条记录都有一个唯一的数字(id必须有Auto Increment约束)。

UPDATE

UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value;

请注意 SQL UPDATE 语句中的 WHERE 子句!
WHERE 子句规定哪条记录或者哪些记录需要更新。如果您省略了 WHERE 子句,所有的记录都将被更新!

执行没有 WHERE 子句的 UPDATE 要慎重,再慎重。

  • 在 MySQL 中可以通过设置 sql_safe_updates 这个自带的参数来解决,当该参数开启的情况下,你必须在update / delete 语句后携带 where 条件,否则就会报错。set sql_safe_updates=1; 表示开启该参数

DELETE

DELETE FROM table_name
WHERE some_column=some_value;

请注意 SQL DELETE 语句中的 WHERE 子句!
WHERE 子句规定哪条记录或者哪些记录需要删除。如果您省略了 WHERE 子句,所有的记录都将被删除!

  • 删除所有数据:
DELETE FROM table_name;

DELETE * FROM table_name;

**注释:**在删除记录时要格外小心!因为您不能重来!

drop, delete, truncate 比较:

  • 相同点:drop、delete、truncate 都是删除表的内容。

  • 不同点:

    • delete:删除表的内容,表的结构还存在,不释放空间,可以回滚恢复;
    • drop:删除表内容和结构,释放空间,没有备份表之前要慎用;
    • truncate:删除表的内容,表的结构存在,可以释放空间,没有备份表之前要慎用;

SELECT LIMIT

限制显示前n条数据

SELECT column_name(s)
FROM table_name
LIMIT number;

实例:
下面的 SQL 语句从 “Websites” 表中选取头两条记录:

SELECT * FROM Websites LIMIT 2;

后两条记录:

SELECT * FROM Websites ORDER BY id DESC LIMIT 2;

LIKE

SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern;
通配符含义
%任意多个(可以是0个)字符
_一个字符
  • 可以 NOT LIKE

REGEXP(正则表达式)

MySQL 中使用 REGEXP 或 NOT REGEXP 运算符 (或 RLIKE 和 NOT RLIKE) 来操作正则表达式。

[charlist]字符列中的任何单一字符
[^charlist] 或 [!charlist]不在字符列中的任何单一字符

下面的 SQL 语句选取 name 以 “G”、“F” 或 “s” 开始的所有网站:

实例

SELECT * FROM Websites
WHERE name REGEXP '^[GFs]';

SQL函数

SQL 拥有很多可用于计数和计算的内建函数。

SQL Aggregate 函数

SQL Aggregate 函数计算从列中取得的值,返回一个单一的值。

有用的 Aggregate 函数:

  • AVG() - 返回平均值
  • COUNT() - 返回行数
  • FIRST() - 返回第一个记录的值
  • LAST() - 返回最后一个记录的值
  • MAX() - 返回最大值
  • MIN() - 返回最小值
  • SUM() - 返回总和

SQL Scalar 函数

SQL Scalar 函数基于输入值,返回一个单一的值。

有用的 Scalar 函数:

  • UCASE() - 将某个字段转换为大写
  • LCASE() - 将某个字段转换为小写
  • MID() - 从某个文本字段提取字符,MySql 中使用
  • SubString(字段,1,end) - 从某个文本字段提取字符
  • LEN() - 返回某个文本字段的长度
  • ROUND() - 对某个数值字段进行指定小数位数的四舍五入
  • NOW() - 返回当前的系统日期和时间
  • FORMAT() - 格式化某个字段的显示方式
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值