标签:
SQL (structured Query Language) 结构化查询语言;
主要用途是构造各种数据库系统操作指令,如 SELECT、INSERT、UPDATE、
DELETE
;
SQL命令可以分类以下三大类别:
DDL 数据定义语言(定义数据库结构) Data Definition Language
建库、建表,操作(修改、删除、清空)数据库、数据表
创建一个数据库
删除一个数据库
修改数据库结构
创建一个表格
删除一个表格
重命名一个表格
DML 数据库维护语言(维护数据库内容) Data Manipulation Language
对数据库的数据进行增、删、查、改(主要的语句--web设计一般使用这一种)
从数据库里面获取数据
向一个表格里面插入数据
更新一个表格中已有的数据
删除一个表格中的数据
DCL 数据控制语言(控制数据库操作权限) Data Control Language
修改数据库的权限,分配用户
赋予一个用户对数据库或者数据表格等指定权限
删除一个用户对数据库或者数据表格等的指定权限
sql语句 一般来说数据库语句我们会用大写,表名,字段名我们会用上引号
查询:
select * from 表; * 表示查询全部字段
select 字段1,字段2 from 表; 要查哪个字段就直接写字段
select * from 表 where 条件 根据where后面的条件查询内容
select * from 表 where id=5
and
p_id=3 查询的条件是id=5并且p_id=3的数据
select * from 表 where id=5
or
id=8 查询的条件是id=5或者是id=8的数据
select * from products where price between 1000
and
2000 查询的条件是加个在1000到2000之间的数据
select * from products where price >= 1000
and
price <= 2000 查询的条件是加个在1000到2000之间的数据
select * from 表 where id in (1,3,6) 查询的条件是id=1,或者id=3,或者id=6的数据
select * from 表 where id not in (1,3,6) 查询的条件是id不等于1,3,6的数据
select * from 表 limit 5 只查5条
select * from 表 limit 3,5 从第4条开始,查5条
select * from 表 order by uid ASC 排序(升序:asc,降序:desc)
select * from 表 group by author 根据author分组(把相同的author数据分到一组)
select * from 表 where name like
‘%你是%‘
模糊查询name这个字段里面数据有 ‘你是’
select
count
(*) from 表 算出总数
select avg(score) from 表 算出score这个字段的平均数
select max(score) from 表 算出score这个字段最大值
select min(score) from 表 算出score这个字段最小值
select
count
(*)
as
a from 表 给算出的总数命名为a
增加:
增加一条记录:
insert into 表 (字段1,字段2,字段3) values (值1,值2,值3,);
例子:insert into user (username,password) values (
‘admin‘
,
‘123456‘
)
增加多条记录:
insert into 表 (字段1,字段2,字段3) values (值1,值2,值3,),(值1,值2,值3,);
例子:insert into user (username, password) values (
‘user1‘
,
‘123456‘
),(
‘user2‘
,
‘123456‘
),
更新:
update 表 set 字段1 =
‘值1‘
, 字段2 =
‘值2‘
where 条件
例子:update user set username =
‘admin1‘
, passwd =
‘12345678‘
where uid = 10
注:如果不加where条件,那么更新的是整张表的全部数据,一般情况上都是要加的
删除:
delete
from 表 where 条件
例子:
delete
from user where uid = 10
注:如果不加where条件,那么删除的是整张表的全部数据,一般情况上都是要加的
连表查询
左连接:
以左边的表为基准,先把左边的表查出来,再查右边的表,若右边的表没对应的数据显示的就为NULL
SELECT empe_name, dept_name FROM empe LEFT JOIN dept ON empe.dept_id = dept.id
给表取别名 用
as
SELECT * FROM book
as
a LEFT JOIN publish
as
b ON a.publish_id = b.publish_id
右连接
以右边的表为基准,先把右边的表查出来,再查左边的表,若左边的表没对应的数据显示的就为NULL
SELECT empe_name, dept_name FROM empe RIGHT JOIN dept ON empe.dept_id = dept.id
内链接
SELECT empe_name, dept_name FROM empe INNER JOIN dept ON empe.dept_id = dept.id
SELECT empe_name, dept_name FROM empe, dept WHERE empe.dept_id = dept.id
连接三张表
SELECT * FROM `book` left join author_book_rel on book.id=author_book_rel.book_id left join author on author_book_rel.author_id=author.author_id
标签:
原文地址:http://www.cnblogs.com/jacko/p/4889050.html