复习之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

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

猜你喜欢

转载自blog.csdn.net/IManiy/article/details/82932914