添加数据 (4种方式)
- INSERT INTO 表名(`字段名1`,`字段名2`) VALUES(值1,’值2’);
注意:字段名中使用的引号是反引号,1前面的键,目的就是为了防止关键字报错.
Values后面的值,有的加单引号,有的没加单引号,加单引号的表示是字符串,没加单引号的表示不是字符串类型.
2 一次添加多条
INSERT INTO 表名(字段1,字段名2) VALUES(值1,值2……),(值1,值2……),……;
删除数据
1.DELETE FROM admin WHERE age=0;
2.DELETE FROM admin WHERE id = 4 or id = 8; id是4和8
3.DELETE FROM admin WHERE sex = 0 AND name=’liuxin’
4.删除id<6和id>12的数据,小于6就不能大于12了
DELETE FROM admin WHERE id <6 OR id >12;
5.删除 id <7 和 id>3 数据
DELETE FROM admin WHERE id<7 AND id>3;
6.删除存在于指定的集合 in(); NOT IN() 不在这个指定集合范围内
删除id 为 1,3,5,7,9,11
DELETE FROM admin WHERE id IN(1,3,5,7,9,11);
修改数据
1.修改admin表中,id=12的这条数据,修改age=30 sex = 1;
UPDATE admin SET age = 30,sex=1 WHERE id = 12;
2.修改 admin表中 age = 25 sex=1 条件是id= 1,3,5,7,9
UPDATE admin SET age=25,sex=1 WHERE id IN(1,3,5,7,9);
3.Is null 字段为null
将age字段改为50,条件是 sex字段值为null
UPDATE admin SET age = 50 WHERE sex IS NULL
4.Is not null 字段不为null
将age 字段改为100,条件是sex字段值不为null
UPDATE admin SET age = 100 WHERE sex IS NOT NULL;
查询
1.查询数据为1,3,5,7,9
SELECT * FROM user WHERE id IN(1,3,5,7,9);
2.查询user表中 age=20并且sex=0的数据
SELECT * FROM user WHERE age = 20 AND sex=0;
3.LIKE 模糊匹配
WHERE 字段 LIKE ‘%a%’;
查询出name字段中有a出现的所有数据
SELECT * FROM user WHERE name LIKE ‘%a%’;
4.Count()
查询性别为0的有多少条数据
SELECT COUNT(id) FROM user WHERE sex = 0;
5.between
BETWEEN 值1 AND 值2 查询指定范围
查询id为5到10的数据
SELECT * FROM user WHERE id BETWEEN 5 AND 10;
排序
按照sex正序排序 sex相同时 按照age倒序排序
SELECT * FROM user ORDER BY sex ASC,age DESC;
查询所有sex 为女的数据 然后按照id倒序排序
SELECT * FROM user WHERE sex = 0 ORDER BY id DESC;
限制条数
查询所有性别为0的所有数据 按照id倒序排序以后 越过2条取出3条;SELECT * FROM user WHERE sex = 0 ORDER BY id DESC LIMIT 2,3;
分组查询
1,查询每一个部门有多少人 ,bumen是个字段 gongzi 字段
SELECT bumen,COUNT(id) FROM gz GROUP BY bumen;
2.查询每一个部门的总工资
SELECT bumen,sum(gongzi) FROM gz GROUP BY bumen;
- 查询部门编号大于1的所有部门的总工资大于10000的部门;
HAVING:效率极低,一般使用在分组里面做二次过滤
SELECT bumen,SUM(gongzi) FROM gz WHERE bumen>1 GROUP BY bumen HAVING sum(gongzi) > 10000;
查询条件使用的顺序
SELECT语句 [where条件] [group by条件] [having条件] [order by 条件] [limit 条件]
多表联合查询
SELECT 表1.字段,表2.字段…… FROM 表1,表2 WHERE 表1.字段 = 表2.字段
左链接查询
SELECT 表1.字段,表2.字段 FROM 表1 LEFT JOIN 表2 ON 表1.字段 = 表2.字段
SELECT gz.id,gz.name,gz.gongzi,bm.name FROM gz LEFT JOIN bm ON gz.bumen = bm.id;
右链接查询
SELECT 表1.字段,表2.字段 FROM 表1 RIGHT JOIN 表2 ON 表1.字段 = 表2.字段
SELECT gz.id,gz.name,gz.gongzi,bm.name FROM gz RIGHT JOIN bm ON gz.bumen = bm.id;
//操作数据库
- 连接数据库
$link=mysqli_content(‘127.0.0.1’,’root’,’密码’) or die(‘连接数据库失败’);
成功返回一个对象,失败返回false.
- 选择数据库
$result=Mysqli_select_db($link) or die(‘连接数据库失败’);
- 设置字符集
Mysqli_set_charset($link,’utf8’);
4准备要操作的sql语句
$sql=”....”;
- 发送sql语句
$result=mysqli_query($link,$sql);
成功返回true 失败返回false
6判断并处理结果
注意:在做 增、删、改的时候有影响行。所以判断用mysqli_affected_rows()来判断;
在查询时,会返回查询到的行数,所以用mysqli_num_rows()来判断。
处理结构 当查询数据时,需要将结果对象转为数组
$row=Mysqli_fetch_rows($result) 将结果对象中一行作为索引数组返回。
参数1: 查询成功时返回的结果对象
返回值:返回一个索引数组,当查询没有时返回null;
If($result && mysqli_affter_rows($link)>0){
//操作成功
Echo <script>alert(‘成功’);location=”./index.html”</script>;
}else{
Echo <script>alert(‘失败’)</script>;
}
7.关闭数据库
Mysqli_close();