mySQL笔记2


php主要实现B/S

.net IIS java TomCat

LAMP: Linux 系统 A阿帕奇服务器 Mysql数据库 Php语言(KE)

mysql:c常用代码

create table ceshi1
(
uid varchar (50) primary key,
pwd varchar (50),
name varchar (50),
nation varchar (50),
foreign key (nation) references nation(code)
)

写查询语句需要注意:

1,创建表的时候,最后一列后面不要写逗号

2,如果有多条语句一起执行,注意在语句之间加分号分隔

3,写代码时所有的符号都是半角的


关系型数据库:表和表之间是有关系存在的

创建表的几个关键字:

1,主键: primary key

2,非空:not null

3,自增长列:auto_increment

4,外键关系: foreign key (列名) references 表名(列名)


CRUD操作

1,添加数据
insert into info values("","","",) 要求values括号里面的值得个数要和表里面的列数相同

insert into info (code,name) values ("","") 添加指定列的值

2,修改数据

update info set name = "张三" where code="poo1"

3,删除数据

delete from info where code = "poo1"

4,查询数据

1.普通查询,查所有的

select * from info #查所有数据

select code,name from info #查指定列

2.条件查询

select * from info where code = "poo1" #一个条件

select * from info where name = "张三" and nation = "n001"

#两个条件并的关系

select * from info where name = "张三" or nation = "n001"

#两个条件或的关系

3.排序查询

select * from info order by birthday #默认升序排列 asc ;降序排列 desc

select * from car order by brand asc, oil desc #多列排序

4.聚合函数

select count(*) from info #q取个数

select sum(price) from car #查询price列的和

select avg(price) from car #查询price列的平均值

select max(price) from car #查询price列的最大值

select min(price) from car #查询price列的最小值

5.分页查询

select * from car limit (n-1)*5,5 #跳过 (n-1)*5 条数据取 m 条数据

6.分组查询

select brand from car group by brand #简单的分组查询

select brand from car group by brand having count(*)>2

#查询系列里面车的数量大于2的系列


7.去重查询

select distinct brand from car

8.修改列名

select brand as "系列" from car

9.模糊查询

select * from car where name like "奥迪%" #%代表“奥迪”开头

select * from car where name like "%奥迪%" #包含“奥迪”

select * from car where name like "_奥迪%" #“奥迪”前只有一个

10.离散查询

select * from car where code in ("c001","c002","c003")

select * from car where code not in ("c001","c002","c003")

高级查询:

1.连接查询

select * from info,nation #得出的结果,称为笛卡尔积

select * from info,nation where info.nation = nation.code

join on 链接

select * from info join nation #join 链接,笛卡尔积


select * from info join nation on info.nation = nation.code

2.联合查询

select code,name from info
union
select code,name from nation #查询的列相同

3.子查询

1) 无关子查询
select code from nation where name = "汉族"
#去nation表中查汉族的民族代号

select * from info where nation = ()
#在info表中查询民族代号为上一个查询结果的所有信息

select * from info where nation = (select code from nation where name = "汉族" )

子查询 查询的结果被父查询使用,子查询可以单独执行的成为无关子查询

2) 相关子查询

select * from car where oil < (该系列的平均油耗)
#查询油耗小于该系列平均油耗的

select avg(oil) from car where brand = "值"
#查询某系列的平均油耗

select * from car a where oil < (select avg(oil) from car b where b.brand = a.brand)

原文地址:https://www.cnblogs.com/wanlibingfeng/p/5446388.html