MySQL入门之增删改查sql语句总结

重要的 SQL 命令

SELECT - 从数据库中提取数据

查找数据列
SELECT column1, column2, … FROM table_name;
SELECT column_name(s) FROM table_name

条件查询
SELECT [*] FROM [TableName] WHERE [condition1] [AND [OR]] [condition2]…
SELECT column_name() FROM table _name ORDER BY column_name() ASC or DESC
SELECT * FROM Products WHERE Price BETWEEN 10 AND 20;

数据去重
SELECT DISTINCT username from test.user_table;
SELECT COUNT(DISTINCT username) from test.user_table ();

数据分页
– 先将查询结果截取前5条,然后按help_topic_id降序排序
(SELECT * from help_topic where name like ‘co%’ limit 5) order by help_topic_id desc

– 先将查询结果根据help_topic_id降序排序,然后从第二条开始截取5条数据
SELECT * from help_topic where name like ‘co%’ order by help_topic_id desc limit 2,5

–多表数据查询
SELECT * from func t, help_topic t1 where t.ret = t1.help_topic_id

– 子查询 + 算术运算 (算数运算符包括:count , max, min, avg)
SELECT * from help_topic where help_topic_id = (select avg(help_topic_id)-0.5 from help_topic)

UPDATE - 更新数据库中的数据

(注意:如果UPDATE语句中的WHERE字句未指定那些记录更新,则所有记录都将更新)
– 更新数据
UPDATE table_name SET column=value, column1=value1,… WHERE someColumn=someValue

DELETE - 从数据库中删除数据

–删除某一行数据
DELETE FROM tableName WHERE someColumn = someValue
–删除所有行
DELETE FROM table_name; /// 等同于DELETE * FROM table_name;
– 批量删除匹配模糊查询的数据
DELETE from func where name like ‘evan%’
– 批量删除数据
DELETE from func where name in (‘luke2’, ‘luke3’)

INSERT INTO - 向数据库中插入新数据

–单词插入单条数据
INSERT INTO table_name VALUES (value1, value2, value3, …);
INSERT INTO table_name (column, column1, column2, column3, …) VALUES (value, value1, value2, value3 …)
– 单次插入多条数据
INSERT into func (name, ret, dl, type)
VALUES
(‘evan2’, 2, ‘a’, 3),
(‘evan3’, 2, ‘a’, 3),
(‘evan4’, 2, ‘a’, 3),

在这里插入图片描述在这里插入图片描述


数据库操作

CREATE DATABASE - 创建新数据库
ALTER DATABASE - 修改数据库
CREATE TABLE - 创建新表
ALTER TABLE - 变更(改变)数据库表
DROP TABLE - 删除表
CREATE INDEX - 创建索引(搜索键)
DROP INDEX - 删除索引


在这里插入图片描述
WHERE子句可以与AND,OR和NOT运算符结合使用(AND和OR运算符用于根据多个条件筛选记录)。

  • 如果由AND分隔的所有条件为TRUE,则AND运算符显示记录。
  • 如果由OR分隔的任何条件为真,则OR运算符显示记录。
  • 如果条件不为真,则NOT运算符显示记录。

SQL ORDER BY Keyword(按关键字排序)

SELECT column1, column2, … FROM table_name ORDER BY column1, column2, … ASC|DESC;
SELECT * FROM Customers ORDER BY Country ASC, CustomerName DESC; (两列单独排序,非一行锁定关联)


IS NULL 或者 IS NOT NULL 来检测某个字段是否为 NULL。

  • (NULL 用于表示缺失的值,数据表中的 NULL 值表示该值所处的字段为空)
  • 值为 NULL 的字段没有值。尤其要明白的是,NULL 值与 0 或者包含空白(spaces)的字段是不同的。
  • 使用比较运算符(例如=,<或<>)来测试NULL值是不可行的,我们将不得不使用IS NULL和IS NOT NULL运算符。
  • SELECT column_names FROM table_name WHERE column_name IS NULL;

LIMIT

SELECT * FROM Persons LIMIT 5; 		
SELECT * from help_topic limit 3,2

外连

SELECT a.runoob_id, a.runoob_author, b.runoob_count FROM runoob_tbl a, tcount_tbl b WHERE a.runoob_author = b.runoob_author

SQL LIKE 操作符(LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。)
有两个通配符与LIKE运算符一起使用:

  • % - 百分号表示零个,一个或多个字符
  • _ - 下划线表示单个字符

SQL Wildcards通配符(1.通配符用于替换字符串中的任何其他字符,可以组合使用)
通配符与SQL LIKE运算符一起使用

  • % - 百分号表示零个,一个或多个字符
  • _ - 下划线表示单个字符

使用 SQL [charlist] 通配符

  • SELECT * FROM Customers WHERE City LIKE ‘[bsp]%’; (以b、s或者p开头的) SELECT
  • FROM Customers WHERE City LIKE ‘[a-c]%’; (以a到z的任意字符开头的)

使用[!charlist]通配符

  • SELECT * FROM Customers WHERE City LIKE ‘[!bsp]%’;
  • SELECT * FROM Customers WHERE City NOT LIKE ‘[bsp]%’;

查询语句各关键词的优先级
在这里插入图片描述

可得 from > where > group by > select > order by。这就是一条基本sql的执行顺序。

实例操作在这里插入图片描述

发布了27 篇原创文章 · 获赞 4 · 访问量 6296

猜你喜欢

转载自blog.csdn.net/studentenglish/article/details/94591686