数据库增删查改常用语句

数据库增删查改常用语句

(下面的例句将用tb_student(字段信息:num(主键),name,sex)和student(字段

息:num(主键),name,sex)举例子)
//普通查询语句
1.SELECT 查询内容(可以查询到该属性的求平均或者其他函数,例如SELECT AVG(id) FROM tb_student) FROM 表名 WHERE 查询条件(条件可以是一个可以计算的公式,例如id=6+3等等)
例句:SELECT ROUND(AVG(num),3) FROM tb_student WHERE num%2=0;
解释:查询tb_student中num为偶数的num字段信息,num字段信息将通过求平均并且保留三位有效数字查询出来
//指定查询条数
2.SELECT 查询内容 FROM 表名 LIMIT a,b(前者表示查询起止数,后者表示插叙的条数)
例句:SELECT num FROM tb_student LIMIT 2,3;
解释:查询数据库第三个(数据库下标为0开始计数)数据开始的后面连续三个数据信息
//分组查询
3.SELECT 查询内容 FROM 表名 GROUP BY 查询内容属性或者数字(例如1表示查询根据查询内容第一个属性的值进行分组)
例句:SELECT num FROM tb_student GROUP BY num;
或者: SELECT num FROM tb_student GROUP BY 1;
解释:BY num按照分组条件为num进行分组查询,BY 1表示按照的查询的第一个属性进行分组查询
//查询排序
4.SELECT 查询内容 FROM 表名 ORDER BY 属性(根据该属性进行排序) DESC(降序排序)
例句:SELECT num FROM tb_student ORDER BY num DESC;
解释:按照num进行降序排列
//根据条件分组查询
5.SELECT 查询内容 FROM 表名 GROUP BY 属性 HAVING 聚合函数(返回为唯一值的函数,例如count(id)求id的和,若要跟age>10,查询内容应该包含查询内容)
例句:SELECT num FROM tb_student GROUP BY num HAVING count(name)>=2
解释:查询相同名字大于等于2个的num信息
//子查询
6.SELECT 查询内容 FROM 表名 WHERE 属性 > SOME(或者ANY或者ALL) (SELECT 查询属性 FROM 表名 WHERE 查询条件)
例句:SELECT name FROM tb_student WHERE num > ALL (SELECT num FROM student)
解释:查询tb_student表中num大于student中的全部num的name信息,
//增加语句
7.INSERT (INTO可以省略) 表名 VALUE(?,?,?)
例句:INSERT INTO tb_student VALUE(NUll,"小红","女","打乒乓球")
解释:num为自增字段,因此不需要给值
INSERT插入多条字段:INSERT INTO tb_student VALUE(NUll,"小红","女","打乒乓球"),(NULL,"小明","男","踢足球")
解释:插入多条数据中()之间()以,号隔开
//增加查询得到的内容
8.INSERT INTO 表名 SELECT 查询内容 FROM 表名 WHERE 查询条件
例句:INSERT INTO tb_student SELECT * FROM student
解释:将student查询的信息添加到tb_student中,查询的字段应和添加的字段对应,我的tb_student和student表字段信息一样,因此用了*,但是
不建议这样使用,因为数据量过大这样查询会影响查询效率
//更新语句
9.UPDATE 表名 SET 需要改变属性的内容(例如id=id-1) WHERE 改变的条件
例句:UPDATE tb_student SET name="小A" WHERE num="2"
解释:将num为2的字段中name属性的值改为小A
//删除语句
10.DELETE FROM 表名 WHERE 删除条件
例句:DELETE FROM tb_student WHERE num=2
解释:删除num为2的字段信息
注意:
//在数据库查询中,当数据库中的数据很大时,汉字检索比数字慢很多,因此使用逻辑外键将汉字和多个表的数字关联起来,检索时检索数字即可
//例如一个表tb_student的数据有num=3,name="张三",sex="男",school=3,将这个表与之另一个表student对应,另一个表中数据为schoolName="清华大学",school=3;查询时使用多表联查
//多表联查(INNER JOIN内连接)
11.SELECT a.num,a.name,a.sex.b.school FROM tb_student AS a INNER JOIN student AS b ON a.num=b.num;
//显示的数据应该为num=3,name="张三",sex="男",schoolName="清华大学"
//同一表中删除数据相同的内容
12.DELETE a FROM student AS a LEFT JOIN (SELECT num,name FROM student GROUP BY name HAVING count(name)>=2) AS b ON a.name=b.name WHERE a.num>b.num
//12拆分:先查找该表中数据相同的数据信息并分组
SELECT num,name FROM student GROUP BY name HAVING count(name)>=2
//12拆分:将分组的数据表信息当成一个新的表并起一个别名,方便后续操作
(SELECT num,name FROM student GROUP BY name HAVING count(name)>=2) AS b
//12拆分:通过关联关键字将表b和a进行关联信息删除重复信息
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值