top子句
用于规定要返回的记录的数目(对拥有数千条记录的大型表来说很有用)
SELECT TOP number|percent column_name(s)FROM table_name
like
用于在where子句中搜素列中的指定模式
SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern
例子:
SELECT * FROM Persons
WHERE City LIKE ‘N%’(从person表里选居住在以n开始的城市里的人)
通配符
必须和like一起使用:
% 替代一个或多个字符
_ 仅替代一个字符
[charlist] 字符列中的任何单一字符
[^charlist]或者[!charlist]
不在字符列中的任何单一字符
例子:
以ne开始的:…like ‘ne%’
包含lond的:…like ‘%lond%’
选名字的第一个字符后是eorge的人:where firstname like’_eorge’
以a或l或n开头的:like ‘[aln]%’
不以a或l或n开头的:like ‘[!aln]%’
in操作符
允许我们在where子句中规定多个值
SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,…)
between
在where里使用,选取介于两个值之间的数据范围,值可以是文本,数值或者日期
SELECT column_name(s)
FROM table_name
WHERE column_name
BETWEEN value1 AND value2
注意:不同的数据库对 BETWEEN…AND 操作符的处理方式是有差异的。某些数据库会列出介于 “Adams” 和 “Carter” 之间的人,但不包括 “Adams” 和 “Carter” ;某些数据库会列出介于 “Adams” 和 “Carter” 之间并包括 “Adams” 和 “Carter” 的人;而另一些数据库会列出介于 “Adams” 和 “Carter” 之间的人,包括 “Adams” ,但不包括 “Carter” 。
若需要显示范围之外的人,用not
例子:where last not between …and …
alias
为列名称和表名称设置别名
表的语法SELECT column_name(s)
FROM table_name
AS alias_name
列的语法SELECT column_name AS alias_nameFROM table_name
join
用于根据两个或多个表中的列之间的关系从表中查数据。
**INNER JOIN 关键字语法
SELECT column_name(s)
FROM table_name1
INNER JOIN table_name2
ON table_name1.column_name=table_name2.column_name
**
fulljoin结果:
union用于合并两个或者多个select语句;默认选取不同的值
SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2
union all允许选取重复的值;
SELECT column_name(s) FROM table_name1
UNION ALL
SELECT column_name(s) FROM table_name2
区别如图:
表:
select into
从一个表中选取数据插入另一个表中,常用于创建表的备份复件或者对记录进行存档。
create database
创建数据库
CREATE DATABASE database_name
create table
创建数据库中的表
CREATE TABLE 表名称
(
列名称1 数据类型,
列名称2 数据类型,
列名称3 数据类型,
…
)
not null:约束强制不接受null值,这意味着若不向字段添加值就无法插入新纪录或更新新纪录。unique和primary key:约束唯一标识数据库表中的每条记录。均为列或列集合提供了唯一性的保障。
每个表中可以有多个unique约束,但每个表中只能有一个primary key约束。
撤销语法自查
foreign key
一个表中的foreign key 指向另一个表中的primary key。
check
约束列中值的范围,如果对单个列定义 CHECK 约束,那么该列只允许特定的值。
如果对一个表定义 CHECK 约束,那么此约束会在特定的列中对值进行限制。
default
用于向列中插入默认值(若无其它值则会将默认值添加到所有的新纪录)
上图的第二点是将系统的时间值当作默认参数
create index
在表中创建索引,可以在不读取整个表的情况下索引使数据库应用程序可以更快找到数据。create unique index是创建一个唯一的索引,这意味着两个行不能拥有相同的索引值。这个一般用于确保数据的唯一性,如果定义一个列为唯一索引,那么在数据输入的时候MySQL会去看是否已经出现过,若出现过就会拒绝该数据的输入。
drop
alter用于在已有表中添加,修改或删除列。
auto increment
在每次插入新纪录时自动地创建主键字段的值。
view
视图是可视化的表,包含行和列。视图中的字段就是来自一个或多个数据库中的真实的表中的字段。我们可以向视图添加 SQL 函数、WHERE 以及 JOIN 语句,我们也可以提交数据,就像这些来自于某个单一的表。
CREATE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition
撤销视图SQL DROP VIEW Syntax
DROP VIEW view_name
date函数
sql null值
如果表中的某个列是可选的,那么我们可以在不向该列添加值的情况下插入新记录或更新已有的记录。这意味着该字段将以 NULL 值保存。
NULL 值的处理方式与其他值不同。
NULL 用作未知的或不适用的值的占位符。
注释:无法比较 NULL 和 0;它们是不等价的。
用is null和is not null来测试null值
前者用于查找带有null值的记录后者查找不带的
sql中的数据类型也要学习了解
加油~
更多推荐
sql高级教程
发布评论