复习之SQL语句(一)——常用单表“增删改查”语句使用

结构化查询语言(Structured Query Language)简称SQL

结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统, 可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。

注意

  • SQL 对大小写不敏感:SELECT 与 select 是相同的。
  • SQL关键字建议使用大写形式
    新建一个table_user表
CREATE TABLE `table_user` (
`id`  int(32) NOT NULL AUTO_INCREMENT ,
`username`  varchar(32) NULL COMMENT '用户名' ,
`password`  varchar(32) NULL COMMENT '密码' ,
`summary`  varchar(128) NULL COMMENT '简介' ,
PRIMARY KEY (`id`)
)
;

SELECT语句

查询table_user表全部字段信息

SELECT * FROM table_user

查询table_user表中username、password两个字段信息

SELECT username,password FROM table_user

SELECT语句和WHERE子句

WHERE:条件
AND:和
OR:或
查询id=3和username=123456的
table_user表全部字段信息

SELECT * FROM table_user WHERE id=3 AND  username=123456

SELECT语句与ORDER BY

ORDER BY 语句用于对结果集进行排序
ASC:升序(默认)
DESC:降序
order by userId, age desc;
//这个desc只针对前面一个字段,多个字段,先按第一个排 两个的降序排列 orderby userId desc,age desc;

查询table_user表全部字段信息根据id降序排列

SELECT * FROM table_user ORDER BY id DESC
order by 和 group by之间的使用注意事项
SELECT * FROM table_user  ORDER BY id DESC GROUP BY type
SELECT * FROM table_user GROUP BY type ORDER BY id DESC

order by 是对前面所进行查询得到的结果进行排序,并不是说一定是对最后的查询结果进行排序。第一段代码是在group by 之前进行排序,明显是错的,order by 字句已经让结果只有一个记录,再对其进行分组会出现错误;而先进行分组再排序就是可以的;

SELECT DISTINCT 语句

在表中,一个列可能会包含多个重复值,有时您也许希望仅仅列出不同(distinct)的值。

DISTINCT 关键词用于返回唯一不同的值。
查询不同的username

SELECT DISTINCT username FROM table_user;

SELECT …LIKE语句

like ‘a%’ 模糊查询
like ‘_a%’
通配符
%表示0个到多个字符
_表示一个字符
[charlist] 字符列中的任何单一字符
[^charlist]或[!charlist] 不在字符列中的任何单一字符
模糊查询username包含r都所有数据

SELECT * FROM table_user where username LIKE 'r%'

模糊查询username中包含r、d、其中一个

SELECT * FROM table_user where username RLIKE '[rd]'

SELECT 其他

  • sql 里面不等于 <>
  • between … and … 在什么之间
  • in(list) 查询一个list的数据
  • in(12,18)
  • 查询字段为null where username is null
  • 分页查询 limit 1,10
SELECT * FROM table_user limit 1,10
  • 别名
SELECT COUNT(*) count FROM table_user 

INSERT INTO语句

INSERT INTO 语句用于向表格中插入新的行。
添加一条username=root,password=123456的数据

两种写法

INSERT INTO table_user(username,password) VALUES ('root',123456)

下面这种数据列数和参数值要对应,包括主键也要给参
如id=9

INSERT INTO table_user VALUES (9,'root',123456,11111)

否则,[Err] 1136 - Column count doesn’t match value count at row 1
此处注意两点

  • id 即主键要设自增,否则
    [Err] 1364 - Field ‘id’ doesn’t have a default value

  • 非数字类型参数如:root 要加单引号,否则
    [Err] 1054 - Unknown column ‘root’ in 'field list’

INSERT INTO SELECT 语句

INSERT INTO SELECT 语句从一个表复制数据,然后把数据插入到一个已存在的表中。目标表中任何已存在的行都不会受影响。

从一个表中复制所有的列插入到另一个已存在的表中:
要求表字段一模一样

INSERT INTO table_user SELECT * FROM user2

也可以只复制希望的列插入到另一个已存在的表中:
这个比上面的灵活

INSERT INTO table_user(username) SELECT username FROM user2

SELECT INTO FROM语句

语句形式为:SELECT vale1, value2 into Table2 from Table1
要求目标表Table2不存在,因为在插入时会自动创建表Table2,并将Table1中指定字段数据复制到Table2中。

UPDATE语句

根据id=1修改username=root,password=123456

   UPDATE table_user SET username='root', password=123456 WHERE id=1

DELETE语句

根据id=1删除一条数据

DELETE FROM table_user WHERE id=1
总数:select count as totalcount from table1
求和:select sum(field1) as sumvalue from table1
平均:select avg(field1) as avgvalue from table1
最大:select max(field1) as maxvalue from table1
最小:select min(field1) as minvalue from table1
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值