1.distinct 用来查询不重复记录的条数,可以是单个字段去重、也可以是多个字段去重,但是不能与all同时使用并且不能在insert、delete、update中使用
select distinct column1 from table_name;
2.where 子句用于提取那些满足指定条件的记录
select column1,column2,... from table_name where column_name .....
有一些常用运算符
=等于、<>不等于、>大于、 <小于、 >=大于等于、 <=小于等于、 between在某个范围内、 like搜索某种模式、 in指定针对某个列的多个可能值
3.and & or
select * from table_name where column1=value1 and column2=value2;
select * from table_name where column1=value1 or column2=value2;
4.order by 用于对结果集进行排序,默认为ASC升序,DESC降序
5.insert into语句用于向表中插入新纪录
insert into table_name(column1,column2,...) values(value1,value2,...);
6.update语句用于更新表中的记录
update table_name set column1=value1,... where some_column=some_value;
7.delete语句用于删除表中的记录
delete from table_name where some_column=some_value;
8.top、limit、rownum
select top number|percent column_name from table_name where [condition];
例如:==SQL server/Acess中== select top 2 * from student; ==等价于mysql中== select * from student limit 2; ==等价于oracle中== select * from student where rownum<=2;
9.like操作符用于在where子句中搜索列中的指定模式
select column_name(s) from table_name where column_name like pattern; 注意需要用到%
10.in操作符用于在where子句中规定多个值
select column_name(s) from table_name where column_name in (value1,value2,...);
11.between用于选取介于两个值之间的数据范围内的值
select column_name(s) from table_name where column_name between value1 and value2;
12.inner join在表中存在至少一个匹配时返回行=========等同于join
select column_name(s) from table1 inner join table2 on table1.column_name=table2.column_name;
13.left join关键字从左表返回所有的行,即使右表中没有匹配,结果以nul显示=========也可以称为left outer join
select column_name(s) from table1 left join table2 on table1.column_name=table2.column_name;
14.right join关键字从右表返回所有的行,即使左表没有匹配,结果以null显示=========也可以称为right outer join
select column_name(s) from table1 right join table2 on table1.column_name=table2.column_name;
15.full outer join关键字只要左表和右表其中一个表中存在匹配,则返回行
select column_name(s) from table1 full outer join table2 on table1.column_name=table2.column_name;
16.union操作符合并两个或多个select语句的结果**********union只会选取不同的值,union all会选取所有的值,包括重复的值
select column_name(s) from table1
union/union all
select column_name(s) from table2;//******两个select语句必须有相同数量的列,列也必须有相似的数据类型,而且列的顺序也必须相同****//
17.select into语句从一个表复制数据,然后插入到另一个表中******但是两个表的结构和数据类型完全一致
select column_name(s) into new_table from old_table;
18.insert into select语句从一个表复制数据,把数据插入到一个已存在的表中,目标表中任何已存在的行都不会受影响
insert into table2(column_name(s)) select column_name(s) from table1;
19.create database语句用于创建数据库
create database dbname;
20.create table语句用于创建数据库中的表
create table table_name
{
column_name1 data_type(size),
column_name2 data_type(size),
...
};
21.constraints约束用于规定表中的数据规则
约束类型not null(指示某列不能存储null值)、unique(保证某列的每行必须有唯一的值)、primary key(not null和unique的结合)、foreign key(保证一个表中的数据匹配另一个表中的值的参照完整性)
check(保证列中的值符合指定的条件)、default(规定没有给列赋值时的默认值)
create table table_name
{
column_name1 data_type(size) constraints_name,
column_name2 data_type(size) constraints_name,
...
};
22.index索引:以便于更加快速高效的查询数据
create index index_name on table_name(column_name);
23.drop用于删除索引、表和数据库
drop index index_name on table_name;
drop table table_name;
drop database database_name;
删除表内的数据,不删除表本身,使用truncate table table_name;
24.alter table 用于在已有的表中添加、删除、修改列
alter table table_name add column_name datatype;//添加
alter table table_name drop column column_name;//删除
alter table table_name modify column_name datatype;//更新
25.auto increment会在新纪录插入表中时生成一个唯一的数字
CREATE TABLE Persons
(
ID int NOT NULL AUTO_INCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
PRIMARY KEY (ID)
)
在Oracle中必须通过sequence对象创建
CREATE SEQUENCE seq_person
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10
insert into Persons(ID,FirstName,LastName) values(seq_person.nextval,‘Lars‘,‘Monsen‘);
26.view视图:是可视化的表,包含行和列,视图中的字段来自一个或多个数据库中的真实的表中的字段
create view view_name AS select column_name(s) from table_name where condition ;
create or replace view view_name as select column_name(s) from table_name where condition;
drop view view_name;//删除视图
27.date函数
now() 返回当前的日期和时间、curdate()当前的日期、curtime()当前的时间、date()提取日期或时间表达式的日期部分、extract()返回日期/时间的单独部分、datediff()返回两个日期之间的天数、date_format()用不同的格式显示日期/时间
28.avg()函数:返回数值列的平均值
select avg(column_name) from table_name;
29.count()函数:返回匹配指定条件的行数
select count(column_name) from table_name;
select count(distinct column_name) from table_name;
30.first()函数:返回指定的列中第一个记录的值
select first(column_name) from table_name;//只有MS Access支持first()函数
select top 1 column_name from table_name order by column_name asc;//sql server用法
select column_name from table_name order by column_name asc limit 1;//mysql用法
select column_name from table_name order by column_name asc where rownum <=1;//oracle用法
31.last()函数:返回指定列中最后一个记录的值
select last(column_name) from table_name;//只有MS Access支持last()函数
select top 1 column_name from table_name order by column_name desc;//sql server用法
select column_name from table_name order by column_name desclimit 1;//mysql用法
select column_name from table_name order by column_name desc where rownum <=1;//oracle用法
32.max()函数:返回指定列中最大值
select max(column_name) from table_name;
33.min()函数:返回指定列中最小值
select min(column_name) from table_name;
34.sum()函数:返回数值列的总数
select sum(column_name) from table_name;//理解为求和
35.having子句可以筛选分组后的各组数据
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;
35.exists运算符用于判断查询子句是否有记录,如果有一条或多条返回true,否则false
select column_name(s) from table_name where exists (select column_name from table_name where condition);
36.ucase()函数:把字段的值转换为大写////upper()函数
select ucase(column_name) from table_name;
37.lcase()函数:把字段的值转换为小写/////lower()函数
select lcase(column_name) from table_name;
38.mid()函数:用于从文本字段中提取字符
select mid(column_name,start[,length]) from table_name;
39.len()函数:返回文本字段中值的长度
select len(column_name) from table_name;
select length(column_name) from table_name;//MySQL中的函数名称及用法
40.round()函数:用于把数值字段舍入为指定的小数位数
select round(column_name,decimals) from table_name;
***********round(x):返回参数x的四舍五入的一个整数
***********round(x,d):返回参数x的四舍五入的有d位小数的一个数字。
41.now()函数:返回当前系统的日期和时间
select now() from table_name;
42.format()函数:用于对字段的显示进行格式化
select format(column_name,format) from table_name;//column_name要格式化的字段,format规定格式