SQL学习笔记(二)
SQL DELETE 语句
语句用于删除表中的记录
DELETE FROM table_name
WHERE some_column=some_value;
注意:请注意 SQL DELETE 语句中的 WHERE 子句!
WHERE 子句规定哪条记录或者哪些记录需要删除。如果您省略了 WHERE 子句,所有的记录都将被删除!
这里一定要再三强调加where!where!where!否则很容易就变成删库跑路
SELECT TOP
用于规定要返回的记录数目
这个对于拥有数千条记录的大型数据库表来说,是非常有用的
注意:并非所有的数据库系统都支持 SELECT TOP 语句。 MySQL 支持 LIMIT 语句来选取指定的条数数据, Oracle 可以使用 ROWNUM 来选取。
SQL Server/MS Acces 语法
SELECT TOP number|percent column_name(s)
FROM table_name;
MySQL语法
SELECT * FROM `character_money` ORDER BY silver_money DESC, gold_money DESC LIMIT 10
Oracle语法
SELECT column_name(s)
FROM table_name
WHERE ROWNUM <= number;
SELECT TOP PERCENT
在TOP后面跟数值和百分比作为参数
FROM table_name
WHERE column_name LIKE pattern;
SELECT * FROM `faction_info2` WHERE faction_name LIKE "小%"
这里是选取以小开头的名称
提示:%符号用于在模式的前后定义通配符(默认字母)也可以放 中间
SELECT * FROM `faction_info2` WHERE faction_name LIKE "%哈"
SELECT * FROM `faction_info2` WHERE faction_name LIKE "%测试%"
SQL 通配符
其实是紧接上面这条的,通配符通常都跟LIKE 操作符一起使用
SQL通配符用于搜索表中的数据
% 替代0个或者多个字符
_ 替代一个字符
[charlist] 代表字符列中的任何单一字符
[^charlist] 不在字符列中的任何单一字符
[!charlist]
%通配符使用方法
像上面的like一样
SELECT * FROM `faction_info2` WHERE faction_name LIKE "%哈"
可以前面后面,头尾
_通配符使用方法
SELECT * FROM `faction_info2` WHERE faction_name LIKE '_哈哈哈哈'
相对于来说,只是去掉了匹配的单个字母
代表的是_任意字符
[charlist]通配符
MySQL中使用REGEXP 或者 NOT REGEXP 运算符(或RLIKE 和 NOT RLIKE)来操作正则表达式
SELECT * FROM `faction_info2` WHERE faction_name REGEXP "[你是test]"
SELECT * FROM `faction_info2` WHERE faction_name RLIKE "[你是test]"
IN操作符
允许在WHERE子句中规定多个值
SQL IN语法
SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...);
SELECT * FROM `faction_info2` WHERE faction_name IN ("打打打", "哈哈哈哈哈")
SQL 别名
通过使用SQL,可以为表名称或列名称指定别名
创建别名是为了让列名称的可读性更强点
列的SQL别名语法
SELECT column_name AS alias_name FROM table_name
表的SQL别名语法
SELECT column_name(s) FROM table_name AS alias_name
如果列名称包含空格,要求使用双引号或者方括号
在一些情况下,使用别名很有用:
在查询中涉及超过一个表
在查询中使用了函数
列名称很长或者可读性差
需要把两个列或者多个列结合在一起