SQL学习笔记(一)

SQL 对大小写并不敏感,所以大小写都是相同

SQL的分号,主要是做分割每条SQL语句的标准方法

 

重要的SQL命令

SELECT 从数据库中提取数据

UPDATE 更新数据库中的数据

DELETE 从数据库中删除数据

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

CREATE DATTABASE 创建新数据库

ALTER DATABASE 修改数据库

CREATE TABLE 创建新表

ALTER TABLE 变更(改变)数据库表

DROP TABLE 删除表

CREATE INDEX 创建索引(搜索键)

DROP INDEX 删除索引

 

SELECT 选取数据

结果被存储在一个结果表中,成为结果集

SELECT column_name,column_name FROM table_name;

SELECT * FROM table_name;

 

SELECT DISTINCT 用于返回唯一不同的值(去重)

DISTINCT 关键词用于返回唯一不同的值。

 

WHERE 子句

用于提取那些满足指定条件的记录

比如需要找到哪些国家?或者是某列的一些条件

SELECT * FROM A WHERE country ='CN'

这里需要注意的是文本字段VS 数值字段

用单引号/双引号来围绕文本值,但是如果是数值字段,请不要使用引号

 

WHERE子句中的运算符

= 等于 Select * from emp where empno=7900;

<> 不等于或者是!=

> 大于

< 小于

>= 大于等于

<= 小于等于

BETWEEN 在某个范围内

LIKE 搜索某种模式 Select * from emp where ename like 'M%';

查询 EMP 表中 Ename 列中有 M 的值,M 为要查询内容中的模糊信息。

  • % 表示多个字值,_ 下划线表示一个字符;
  • M% : 为能配符,正则表达式,表示的意思为模糊查询信息为 M 开头的。
  • %M% : 表示查询包含M的所有内容。
  • %M_ : 表示查询以M在倒数第二位的所有内容。

IN 指定针对个列的多个 可能值   Select * from emp where sal in (5000,3000,1500);

 

AND & OR运算符

跟传统的开发语言一样

AND 是同时满足条件

SELECT * FROM `character_money` WHERE silver_money >= 1000 AND gold_money >= 1000

OR 是只要满足一个条件

SELECT * FROM `character_money` WHERE silver_money >= 1000 OR gold_money >= 1000

结合AND & OR

可以用圆括号来组成复杂的表达式

SELECT * FROM `character_money` WHERE silver_money >= 1000 AND (gold_money >= 1000 OR diamond_money >= 1000)

ORDER BY 关键字

用于对结果集进行排序

由于ORDER BY是默认升序的

所以如果需要降序则使用DESC关键字

SELECT * FROM `character_money` ORDER BY silver_money
SELECT * FROM `character_money` ORDER BY silver_money DESC 进行降序排列

如果需要ORDER BY 多列的情况下,则可以用逗号将其分开

SELECT * FROM `character_money` ORDER BY silver_money DESC, gold_money DESC

这里是针对了silver_money和gold_money都做了降序排序(注意,如果有一个没有DESC,就是默认按升序排序)

 

INSERT INTO 语句用于向表中插入新记录

两种语法

INSERT INTO table_name

VALUES 无需指定要插入数据的列名,只提供被插入的值即可

INSERT INTO table_name (column1,column2,column3.。。)

VALUES 需要指定列名及被插入的值

 

INSERT INTO Websites (name, url, alexa, country) VALUES ('百度','https://www.baidu.com/','4','CN');
INSERT INTO Websites (name, url, country) VALUES ('stackoverflow', 'http://stackoverflow.com/', 'IND');
 

insert into select 和select into from 的区别

insert into scorebak select * from socre where neza='neza'   --插入一行,要求表scorebak 必须存在
select *  into scorebak from score  where neza='neza'  --也是插入一行,要求表scorebak

 

UPDATE 语句

用于更新表中已存在的记录

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

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

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

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

set sql_safe_updates=1; 表示开启该参数

 

posted @ 2022-04-25 16:38  黑羽青衣  阅读(48)  评论(0编辑  收藏  举报