sql基础学习笔记
SQL 对大小写不敏感
SQL 使用单引号来表示字符串的值(大部分数据库系统也接受双引号)
use + 数据库名 选择使用的数据库
1 |
|
重要命令
SELECT - 从数据库中提取数据
UPDATE - 更新数据库中的数据
DELETE - 从数据库中删除数据
INSERT INTO - 向数据库中插入新数据
CREATE DATABASE - 创建新数据库
ALTER DATABASE - 修改数据库
CREATE TABLE - 创建新表
ALTER TABLE - 变更(改变)数据库表
DROP TABLE - 删除表
CREATE INDEX - 创建索引(搜索键)
DROP INDEX - 删除索引
select
从”table”表中选择所有列
1 |
|
从”table”表中选择某几列
1 |
|
select distinct
从”table”表中选择唯一值
注意:是组合的唯一值
一下sql选择的是 name和sex组合是唯一的值
1 |
|
where 条件语句
添加筛选条件
从”table”表中选择id=1的那条记录(所有列)
1 |
|
运算符 描述
1 |
|
逻辑运算符
1 |
|
order by 关键字
ORDER BY 关键字默认按照升序对记录进行排序(ASC) (从上到下,从小到大)
如果需要按照降序对记录进行排序,您可以使用 DESC 关键字
Websites表:
1 |
|
操作:
1 |
|
ORDER BY 多列的时候,先按照第一个column name排序,在按照第二个column name排序; 如上面的例子
- 先将country值这一列排序,同为CN的排前面,同属USA的排后面;
- 然后在同属CN的这些多行数据中,再根据alexa值的大小排列。
- ORDER BY 排列时,不写明ASC DESC的时候,默认是ASC
desc 或者 asc 只对它紧跟着的第一个列名有效,其他不受影响,仍然是默认的升序
1 |
|
insert into
向表中插入新记录
需注意的是:要求必填的字段必须有值
1 |
|
若没有指定插入的列名,则需要列出插入行的每一列数据
update
1 |
|
请注意 SQL UPDATE 语句中的 WHERE 子句!
WHERE 子句规定哪条记录或者哪些记录需要更新
如果省略了 WHERE 子句,所有的记录都将被更新!
在 MySQL 中可以设置 sql_safe_updates
当该参数开启的情况下,必须在update 语句后携带 where 条件,否则就会报错
1 |
|
delete 语句
1 |
|
请注意 SQL DELETE 语句中的 WHERE 子句!
WHERE 子句规定哪条记录或者哪些记录需要删除
如果省略了 WHERE 子句,所有的记录都将被删除!
limit
MySQL 语法
1 |
|
like
模糊搜索
语法
1 |
|
通过使用 NOT 关键字,可以选取不匹配模式的记录
1 |
|
通配符
在 SQL 中,通配符与 SQL LIKE 操作符一起使用
1 |
|
示例:
替代一个或多个字符
1 |
|
替代一个字符
1 |
|
MySQL 中使用 REGEXP 或 NOT REGEXP 运算符 (或 RLIKE 和 NOT RLIKE) 来操作正则表达式。
选取 name 以 “G”、”F” 或 “s” 开始的所有网站:
1 |
|
选取 name 以 A 到 H 字母开头的网站:
1 |
|
选取 name 不以 A 到 H 字母开头的网站:
1 |
|
in 操作符
IN 操作符允许您在 WHERE 子句中规定多个值
1 |
|
between 操作符
BETWEEN 操作符用于选取介于两个值之间的数据范围内的值
1 |
|
示例:
1 |
|
请注意,在不同的数据库中,BETWEEN 操作符会产生不同的结果!
在某些数据库中,BETWEEN 选取介于两个值之间但不包括两个测试值的字段
在某些数据库中,BETWEEN 选取介于两个值之间且包括两个测试值的字段
在某些数据库中,BETWEEN 选取介于两个值之间且包括第一个测试值但不包括最后一个测试值的字段
因此,请检查数据库是如何处理 BETWEEN 操作符!
mysql中,两边都是闭区间(即包括两个测试值的字段)
别名
为表名称或列名称指定别名
基本上,创建别名是为了让列名称的可读性更强
示例:
为列指定别名
1 |
|
把三个列(url、alexa 和 country)结合在一起,并创建一个名为 “site_info” 的别名:
需要 concat 函数
1 |
|
为表指定别名
1 |
|
使用别名的情景:
- 在查询中涉及超过一个表
- 在查询中使用了函数
- 列名称很长或者可读性差
- 需要把两个列或者多个列结合在一起
NULL 值
NULL 值代表遗漏的未知数据
默认地,表的列可以存放 NULL 值
NULL 值无法使用比较运算符来测试,比如 =、< 或 <>
必须使用 IS NULL 和 IS NOT NULL 操作符
示例
1 |
|
IFNULL() 函数
IFNULL() 函数用于处理 NULL 值
如果值是 NULL 则 IFNULL() 返回 0,否则,取原值
示例
1 |
|