数据库常用语法详解#
一、写sql思路:
1.select
(列名);展现字段。
2.from
表名;查询字段在哪些表。
3.where
筛选(行);多表关联、字段约束。
4.group by
分组;聚合函数。
5.having
分组后的过滤;对聚合函数结果约束。
6.order by
/desc
;升序/降序。
7.distinct
;去重。 select distinct column_name 1,column_name 2 from table_name ;
二、基本语法##
1. limit
/ rownum
---限定行数
1.1 查询前n行数据。
select * from student limit
n
;
1.2 查询表中的n-m行。
select * from student limit
n
,m
;
1.3:查询t_account表中第20-100行的姓名(分页查询)###
select * from(select t.name,rownum rm from t_account t where rownum <= 100)where rm >=20;
2. order by
---分组
2.1 按照姓名,年龄排序。
select * from student order by
Name,Age ;
3. show
---展现表
show
student ;
4. in
/not in
---行中包含/不包含的字段
select * from student t where name in('张三','李四')
;
5. concat
---展示以‘逗号’连接的列名
select concat
(FirstName, ' , ' ,City) from customers ;
6. as
---后面跟表别名,有时可省略
select concat
(FirstName, ' , ' ,City) as
new_column
from customers ;
7. + - * /
---加减乘除(可直接对列做运算)
select ID , FirstName , LastName ,Salary +
500 as
Salary from Employees ;
8. sqrt
/avg
/sum
---平方根/平均数/总和
select Salary,sqrt
(Salary) from employees ;
9. upper
/ lower
---展现大/小写字母的列名
select FirstName , upper
(LastName) as LastName from enployees ;
10. Sbuquerise
---子查询
select FirstName,Salary from employees where Salary >(select avg
(Salary) from employees) order by
Salary desc
;
11. like
/%
---模糊查询
查询姓名以A开头的人。
select * from employess where FirstName like
'A%
' ;
12. min
---最小值
select name,min
(cost) from items where name like
'%boxes of frogs
' and
seller_id in
(68,6,18) ;
13. joining tables
---表关联
select customer.ID , customers.Name , orders.Name ,oders.Amount from customers
,oders
where customers.ID =
oders.Coustomer_ID order by
customers.ID ;
14. inner join
/left join
/right join
---内/左/右
15. union
/union all
---将表合在一起并去重/不去重
select column_name(s) from table1 union
select column_name(s) from table2 ;
三、数据的增删改##
增:###
insert into
表名(列名1,列名2) values
(值1,值2)`;
删:###
delect
表名 where
筛选条件;也可以直接delect
表名 ;
改:###
update
表名 set
更新后的列名1=更新后的值1,更新后的列名2=更新后的值2 where
筛选条件;
例:####
update
Employees set
Salary = 5000 , FirstName = 'Robert' where ID = 1 ;
四、表的增删改##
增:###
creat table
Users (
UsersID int,
FirstName varchar(100)
);
删:###
drop table
表名;
改:###
after table
表名 modify
字段名 字段类型;
1.Data types###
Numeric
int
(整数)\ float
(小数)\ double
(小数)
1.1 Date and Time
date
(YYYY-MM-DD)
time
(HH:MM:SS)
datetime
(YYYY-MM-DD HH:MM:SS)
timestamp
(mindnight,January 1,1970)
1.2 String
char
varchar
blob -
text
1.3 Primary Key
creat table
Users(
UserID int,
FirstName varchar(100),
primary key (UserID)
);
五、Alter,Drop,Rename a Table##
People
ID | FirstName | LastName | City |
---|---|---|---|
1 | John | Smith | New York |
2 | David | Williams | Los Angeles |
3 | Chloe | Anderson | Chicago |
alter table
People add
DateOfBirth date ;
ID | FirstName | LastName | City | DateOfBirth |
---|---|---|---|---|
1 | John | Smith | New York | NULL |
2 | David | Williams | Los Angeles | NULL |
3 | Chloe | Anderson | Chicago | NULL |
alter table
People drop column
DateOfBirth ;
ID | FirstName | LastName | City |
---|---|---|---|
1 | John | Smith | New York |
2 | David | Williams | Los Angeles |
3 | Chloe | Anderson | Chicago |
drop table
People ;(删除表)
alter table
People change
Firstname name
varchar(100)
;(更新表名)
ID | name | LastName | City |
---|---|---|---|
1 | John | Smith | New York |
2 | David | Williams | Los Angeles |
3 | Chloe | Anderson | Chicago |
六、View
FirstName | LastName | Age | Salary |
---|---|---|---|
1 | Emily | Adams | 34 |
2 | Chloe | Anderson | 27 |
3 | Daniel | Harris | 30 |
create views
List as
select FirstName,Salary from Employees ;
FirstName | Salary |
---|---|
Emily | 5000 |
Chloe | 10000 |
Daniel | 6500 |
create or replace view
List as
select FirstName,LastName,Salary from Employees ;
FirstName|LastName|Salary
---|---|---|---
Emily|Adams|5000
Chloe|Anderson|10000
Daniel|Harris|6500
drop view
List ;(删除)
七、日期函数##
函数名 | 语法 | 描述 |
---|---|---|
sysdate | sysdate | 当前时间 |
last_day | last_day(sysdate) | 本月最后一天 |
add_months | add_months(日期,n) | 推后n个月 |
to_char | to_char(日期,格式) | |
to_date | to_date(时间字符串,时间格式) |
例1:查询出生日期为“1988—09-15”的客户###
1.select * from t_customer where t.birthday = to_date('1988-09-15',yyyy-MM-dd) ;
2.select * from t_customer where to_char(t.birthday,'yyyy-MM-dd') = '1988-09-15' ;
网友评论