一,基础
1,增
select语法
select 列名称 from 表名称
select * from 表名称
关键词distinct用于返回我一不同的值
select distinct 列名称 from 表名称
where 子句用于规定选择的标准
select 列名称 from 表名称 where 列 运算符 值
操作符 <>:不等于 between:在某个范围内
like:搜索某种模式
and 和 or运算符用于基于一个以上的条件对记录进行过滤
and 和 or 可在where子语句中把两个或者多个条件结合起来
order by语句用于都结果集进行排序
order by 语句用于根据指定的列对结果集进行排序
order by 语句默认按照升序对记录进行排序
如果希望是降序排序 可以使用关键字desc
order by 列 from 表 order by 列 desc
2 insert
insert into语句
insert into语句用于向表格中插入新的行
insert into 表 values (值1,值2,….)
也可以指定所插入数据的列
inert into table_name (列1,列2,…..) values(值1,值2,…..)
3 update语句
update语句用于修改表中的数据
update 表 set 列 = 新值 where 列 = 某值
4 delete 语句
delete 语句用于删除表中的行
delete from 表 where 列 = 值
二 ,高级语句
1.top 子句
top子句用于规定要返回的记录的数目
对于拥有数千条大型表来说,top子句是非常有用的。
select colum_name(s) from table_name limit number
2.like 操作符用于在where子句中搜索列中的指定模式
like操作符用于在where子句中搜索列中的指定模式
select column_name(s) from table table_name where like pattern
通配符 %:代替一个或者多个字符
_:仅代替一个字符
[charlist]:字符列中的任何单一字符
[^charlist]或者[!charlist]:不在字符列中任何单一字符
3.in操作符
in操作符允许我们在where子句中规定多个值
select column_name from table_name where column_name in(value1,value2…..)
4.between操作符
操作符between …and 会选取介于两个值之间的数据范围。这些值可以使数值,文本或者是日期
select column_name from table_name where column_name between value1 and value2(还可以加not取范围之外的人)
5.alias
使用alias可以为列名称和表名称指定别名
select column_name from table_name as alias_name
6.join 和key用于根据两个或者多个表中列之间的关系,从表中查询数据
有时为了得到完整的结果,我们需要从两个或更多的表中获取结果。我们就需要执行 join。
数据库中的表可通过键将彼此联系起来。主键(Primary Key)是一个列,在这个列中的每一行的值都是唯一的。在表中,每个主键的值都是唯一的。这样做的目的是在不重复每个表中的所有数据的情况下,把表间的数据交叉捆绑在一起。
JOIN: 如果表中有至少一个匹配,则返回行
LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
FULL JOIN: 只要其中一个表中存在匹配,就返回行
1>inner join关键字 在表中存在至少一个匹配的时候,inner join 关键字返回行
select column_name from table_name1 inner join table_name2 on table_name1.colum = table_name2.column_name
2>left join关键字 left join关键字会从左表(table_name1)那里返回所有的行,即使在右表(table_name2)中没有匹配
select column_name from table_name1 left join table_name2 on table_name1.column = table_name2.column_name
3>right join 关键字会右表(table_name2)那里返回所有的行,即使在左表(table_name1)中没有匹配的行
select colum_name from table_name1 right join table_name2 on table_name1.column_name = table_name2.column_name
4>full join 关键字只要其中存在某个表的匹配,full join关键字就会返回行
select colum_ name from table_name1 full join table_name2 on table_name1.column_name = table_name2.column_name
7.union操作符用于合并连个或者多个select语句的结果集
注意,union内部的select语句必须拥有相同数量的列。列也必须有相似的数据类型。同时每条select语句中的顺序也要相同
select column_name from table_name1
union
select column_name from table_name2
8.select into语句可用于创建表的备份复件
select into语句从一个表中选取数据,然后把数据插入另一个表中,select into 常用于创建表的备份附件或者用于记录进行存档
select *
into new_table_name[in externaldatabase]
from old_tablename
9.create database语句用于创建数据库
create database database_name
10.create table 语句用于创建数据库中的表
create table 表名称(
列名称,数据类型,
列名称,数据类型,
列名称,数据类型,
)
11.sql约束
1>not null约束强制列不接受null值
2> unique约束唯一标识数据库中的每条记录
3> primary key 约束标志数据库中每条记录主键必须包含唯一的值,不能包含null每个表都应有一个主键,并且每个表只能有一个主键
4>foreign key指向另一个表的primary key
5>check 约束用于限制列中的值的范围
6>default 约束用于向列中插入默认的值,如果没有规定其他的值,那么会将默认的值添加到所有的新纪录
12.create index语句用于在表中创建索引
在不读取整个表的情况下,索引使数据库应用程序可以更快地查找数据。用户在无法看到索引,他们只能被用来加速搜索/查询
CREATE INDEX index_name
ON table_name (column_name)
13.drop index语句 使用drop index命令删除表格中的索引
alter table table_name drop index index_name
14.alter table语句 用于在已有的表中添加,修改或者删除列
alter table table_name add column_name datatype
alter table table_namedropcolumn column_name
15.auto-increment 会在新的记录插入表中时生成唯一一个数字
16.view视图是可视化的表
create view view——name AS select column_name from table_name where condition
sql撤销视图
sql drop view syntax drop view view_name
17.date日期
now():返回当前日期和时间
curdate():返回当前的日期
curtime():返回当前的时间
date():提取日期或者日期/时间表达式的日期部分
extract():返回日期/时间按的单独部分
date_add():给日期添加指定的时间间隔
date_sub():从日期减去指定的时间间隔
datediff():返回两个日期间的天数
date_format():用不同的格式显示日期/时间
MySQL 使用下列数据类型在数据库中存储日期或日期/时间值:
DATE - 格式 YYYY-MM-DD
DATETIME - 格式: YYYY-MM-DD HH:MM:SS
TIMESTAMP - 格式: YYYY-MM-DD HH:MM:SS
YEAR - 格式 YYYY 或
18.null值是遗漏的未知数据
默认的,表的列可以存放null值
null和0不是等价的
三,sql函数
1.avg()函数返回数列的平均值。null值不包含在计算中
select avg(column_name) from table_name
2.count()函数返回匹配指定条件的行数
select conun(column_name) from table_name
返回指定列的不同值的数目
select count(distinct column_name) from table_name
3.first()函数返回指定的字段中第一个记录的值
select first(column_name) from table_name
4.LAST() 函数返回指定的字段中最后一个记录的值
SELECT LAST(column_name) FROM table_name
5.MAX 函数返回一列中的最大值。NULL 值不包括在计算中
SELECT MAX(column_name) FROM table_name
6.MIN 函数返回一列中的最小值。NULL 值不包括在计算中
SELECT MIN(column_name) FROM table_name
7.SUM 函数返回数值列的总数(总额)
SELECT SUM(column_name) FROM table_name
8.GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name
9.HAVING 子句
在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name
HAVING aggregate_function(column_name) operator value
10.UCASE 函数把字段的值转换为大写
SELECT UCASE(column_name) FROM table_name
11.LCASE 函数把字段的值转换为小写
SELECT LCASE(column_name) FROM table_name
12.MID 函数用于从文本字段中提取字符
SELECT MID(column_name,start[,length]) FROM table_name
13.LEN 函数返回文本字段中值的长度
SELECT LEN(column_name) FROM table_name
14.ROUND 函数用于把数值字段舍入为指定的小数位数
SELECT ROUND(column_name,decimals) FROM table_name
15.NOW 函数返回当前的日期和时间
SELECT NOW() FROM table_name
16.FORMAT 函数用于对字段的显示进行格式化
SELECT FORMAT(column_name,format) FROM table_name