mysql语句分类mysql降序_MySQL基本语句(全)
18年整理了⼀半,因为⽂章⽆法编辑,所以开了新的更全部——2019-12-12,⽊⾔
——————————————————————————————————————
⼀、基本认识
命令在⽤;或者/g结束,换句话说,仅按ENTER不执⾏命令
输⼊help或者h获得帮助
输⼊quit或exit退出
MySql不区分⼤⼩写,但是很多⼈愿意对重要语句⽤⼤写,⽤表名等⽤⼩写,便于阅读
在 MySQL 中,事务通常以 BEGIN WORK 语句开始,以 COMMIT 或 ROLLBACK(只取其⼀) 语句结束。在开始与结束声明之间的SQL 命令就构成了事务的主体。
COMMIT 与 ROLLBACK
ROLLBACK:
MySQL事务主要⽤到两个关键字 COMMIT
COMMIT 与 ROLLBACK
成功完成⼀个事务后,就会执⾏ COMMIT 命令,从⽽使施加于所涉及的表上的改变⽣效。如果事务失败,就会执⾏ ROLLBACK 命令,将事务中所引⽤的每⼀个表都回撤到之前的状态。
通过设定会话变量 AUTOCOMMIT
AUTOCOMMIT 可以控制事务⾏为。如果 AUTOCOMMIT 被设为1(默认值),则每⼀个 SQL 语句(⽆论是否在事务中)都会被认为是⼀个完成的事务,则默认当它结束时予以提交。当 AUTOCOMMIT 被设为0(通过命令 SET AUTOCOMMIT=0)时,后续⼀系列语句就像是⼀个事务,直到 COMMIT 语句执⾏为⽌,不再提交任何⾏为。
有很多种⽀持事务表可供选择,但其中最常见的是 InnoDB,TYPE = InnoDB
create table tcount_tbl -> ( -> tutorial_author varchar(40) NOT NULL, -> tutorial_count INT -> ) TYPE=InnoDB;
⼆、数据库
1. 选择数据库
USE xxx;
2. 调⽤数据库列表和数据
# 显⽰可⽤数据库
SHOW DATABASES;
# 显⽰可⽤表
SHOW TABLES;
# 获取customers表的⼀个列
SHOW COLUMNS FROM customers;
3. 数据类型
三、检索数据
1. 检索列
# 从products表中获取prod_name这⼀列
SELECT prod_name
FROM products;
# 检索多个列
SELECT prod_name, prod_id, prod_price
FROM products;
# 检索所有列
SELECT * FROM products;
2. 检索不同的⾏
# 重复的⾏只显⽰⼀次
constructiondefaultchschs是什么意思DISTINCT vend_id
SELECT DISTINCT
FROM products;
3. 限定检索
注意,⾏0开始数,检索5⾏是:0,1,2,3,4⾏,第6⾏同理从⾏0开始数# 只检索5⾏
SELECT prod_id
FROM products
LIMIT 5;
LIMIT
# 检索第6⾏开始的5⾏
SELECT prod_id
FROM products
LIMIT 6, 5;
# 限定表名的列
SELECT products.prod_id
FROM products;
四、排序检索数据
1. 排序
# ⽤prod_name的字母顺序排序
SELECT prod_name FROM products
ORDER BY prod_name;
# 先⽤价格排序,再⽤名称排序
SELECT prod_id, prod_price, prod_name FROM products
ORDER BY prod_price, prod_name;
2. 降序
降序需要⽤DESC(descrease)加以说明
⽆说明默认升序,降序需要⽤DESC(descrease)加以说明
如果要在多个列上进⾏降序,需要对每个列都进⾏DESC说明
# 价格降序
SELECT prod_id, prod_price, prod_name FROM products
ORDER BY prod_price DESC;
# 先对价格降序,再⽤产品名称排序(⽆说明默认升序)
SELECT prod_id, prod_price, prod_name FROM products
ORDER BY prod_price DESC, prod_name;
3. 语法顺序
SELECT
FROM
WHERE
GROUP BY
HAVING
ORDER BY
LIMIT
五、过滤数据-使⽤WHERE⼦句
1. WHERE⼦句操作符
= 等于,!= 不等于,< ⼩于, > ⼤于, <= ⼩于等于, >= ⼤于等于, BETWEEN AND 在指定的两个值之间2. 检查单个值
# 名字等于fuses
SELECT prod_id, prod_price, prod_name
FROM products
WHERE prod_mane = 'fuses';
# 价格⼤于10
SELECT prod_id, prod_price, prod_name
FROM products
WHERE prod_price > 10;
#供应商ID不是1003
SELECT vend_id, prod_price, prod_name
html行内标签有哪些FROM products
WHERE vend_id != 1003;
# 范围值检查
SELECT vend_id,prod_name,prod_price
FROM productsfgets全称
WHERE prod_price BETWEEN 5 AND 10;
3. 空值检查
# NULL表⽰空值,no value
SELECT vend_id,prod_name,prod_price
FROM products
WHERE prod_price IS NULL;
IS NULL:如果列值为 NULL,则该运算符返回 true。
IS NULL
IS NOT NULL:如果列值不为NULL,则该运算符返回 true。
IS NOT NULL
<=>:该运算符⽤于两个值的对⽐,当两个值都为 NULL 时(这⼀点与 = 运算符不同),返回 true。
<=>
包含 NULL 的条件都是⽐较特殊的。不能在列中使⽤ = NULL 或 ! = NULL 来寻 NULL 值。这样的⽐对通常都是失败的,因为不可能得知这样的⽐对是否为真。
六、 过滤数据-AND&OR
1. AND表⽰同时满⾜所有条件
# 供应商1003,价格⼩于等于10的产品
SELECT vend_id, prod_name, prod_price
FROM prodcuts
WHERE vend_id = 1003 AND prod_price <= 10;
2. OR表⽰满⾜所有的单个条件
# 是1002供应商,或者是价格等于10
SELECT vend_id, prod_name, prod_price
FROM products
WHERE vend_id = 1002 OR prod_price = 10;
3. 次序计算
优先处理AND, 后处理OR,先满⾜vend_id = 1003 AND prod_price = 10 # MySql优先处理AND, 后处理OR,
SELECT vend_id, prod_name, prod_price
FROM products
WHERE vend_id = 1002 OR vend_id = 1003 AND prod_price = 10;
要先处理OR,应该加()
# 要先处理OR,应该加()
SELECT vend_id, prod_name, prod_price
hover后面加选择器
FROM products
WHERE (vend_id = 1002 OR vend_id = 1003) AND prod_price = 10;2022编程语言趋势
4. IN指定条件范围
# 检索1002,1003供应商并⽤名称排序
SELECT vend_id, prod_name, prod_price
FROM products
WHERE vend_id IN (1002, 1003)
ORDER BY prod_name;
5. NOT表在WHERE⼦句中⽤来否定后跟的条件
NOT IN可以⽤来取反
# 检索不是1002,1003供应商并⽤名称排序
SELECT vend_id, prod_name, prod_price
FROM products
WHERE vend_id NOT IN (1002, 1003)
ORDER BY prod_name;
七、 数据过滤-LIKE⼦句+通配符 %, _
任何字符串出现任意次数,区分⼤⼩写
1. %表⽰任何字符串出现任意次数,区分⼤⼩写
# 检索以jet起头的产品名字(和JET起头不匹配)
SELECT prod_name, prod_price
FROM products
LIKE 'jet%';
WHERE prod_name LIKE 'jet%'
# 检索产品名字中任意位置有care字符
SELECT prod_name, prod_price
FROM products
WHERE prod_name LIKE '%care%';
# 检索产品名字中以s开头e结尾的字符,长度不限

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。