学习及整理来源:
做了些笔记快速记忆
以下为示例表(在'People'数据库中创建了'Friends'表)
DATABASE NAME: People
TABLE NAME: Friends
id | name | location | item | SorN |
1 | zty | CN | switch | Y |
2 | ter | CA | xbox | Y |
3 | jo5 | CN | ps5 | N |
4 | ada | CA | pc | N |
0. 首先。。
比如mysql:
mysql> use People; (打开数据库'People')
mysql> set names utf8;(编码啥的)
1. SELECT
SELECT id,name, ...
FROM Friends;
或
SELECT id, name, ... FROM Friends;
如果
SELECT * FROM Friends;
就会显示整个表
2. SELECT DISTINCT
只会显示不重复的,比如说第3列
SELECT DISTINCT location FROM Friends;
会输出 cn和ca(当然是以表格形式)
3. WHERE
其实就是加了'条件',比如
SELECT * FROM Friends WHERE id=1;
或
SELECT * FROM Friends WHERE name='zty';
注意数值字段不要用引号
以上例子中"="就是运算符,常用运算符有
= 等于 <> 不等于(有时能够被换成!=) >大于 <小于 >=大于等于 <=小于等于
BETWEEN 在某个范围内,一般接AND用 这里范围边缘是包括的(比如SELECT * FROM Friends WHERE id BETWEEN 2 AND 4,那么就是输出id为2,3,4的各个数)
LIKE 模糊搜索(好玩的部分,比如 SELECT * FROM Friends WHERE item LIKE 'p%', 那么会输出带有ps5的第三行和带有pc的第四行。假如是SELECT * FROM Friends WHERE item LIKE 'p_',那么只会输出带有pc的第四行。因为 %表示多个字值,_表示一个字符)
关于通配符:
% 替代0个或多个字符
- 替代一个字符
[charlist]字符列中的任何单一字符
[^charlist]或[!charlist]不在字符列中的任何单一字符
IN 精确查询(可查多个),比如
SELECT * FROM Friends WHERE id IN (3,2,4); 且并不需要按顺序。
空值 is null
SELECT * FROM Friends WHERE id is null; 这条没结果的,我这个表没有空值。
逻辑运算优先级: () not and or
4. AND和OR运算符
SELECT * FROM Friends WHERE location='CN' AND id<3
SELECT * FROM Friends WHERE location='CN' or item='pc'
通过括号还能变更复杂
SELECT * FROM Friends WHERE location='CN' AND (id<3 OR id>4) 当然这句意义不大,只是做个例子
5.排序 ORDER BY
ASC升序 DESC降序
SELECT * FROM Friends ORDER BY id DESC 按照id降序排整个表
多个列也可以排,具体参考例子(因为懒)。总结就是谁在前面就先排谁
SQL ORDER BY 关键字 | 菜鸟教程 (runoob.com)
6.插入INSERT INTO 注意id列自动更新且唯一,不用管
不指定 INSERT INTO Friends VALUES ('zyc','CA','ps4','N');
指定列 INSERT INTO Friends ('name','location','SorN') VALUES ('zyc','CA','N')
还不清楚如果不填的话是空值还是0
7.更新UPDATE
UPDATE Friends SET location='CA' WHERE name='zty';
把zty的location更新成CA
注意!!如果没有WHERE语句,会把所有location的值都变成CA(坏)
在MySQL中,可以设置set sql_safe_updates=1; 这样没写WHERE就会报错
8. 删DELETE
DELETE FROM Friends WHERE name='zty' AND location='CA';
同样,不加WHERE就会删除所有行
9.SELECT TOP,LIMIT,ROWNUM
TOP:前百分之多少的子句显示,是SQL SERVER/MS Access语法
SELECT TOP 10 name
From Friends;
LIMIT:前面几条数据,是MySQL语法:
SELECT * FROM Friends LIMIT 5;
ROWNUM: 同上,但是是Oracle的语法:
SELECT name FROM Friends WHERE ROWNUM <=3;
未完。。。
标签:name,回顾,Friends,语法,location,SQL,WHERE,id,SELECT From: https://www.cnblogs.com/ztytoby/p/17416613.html