ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# sql学习 ## 基础命令语法 ### 测试数据 ```sql +----+--------------+ | id | name | +----+--------------+ | 1 | 世界你好 | | 2 | 我是五年后语 | | 3 | 谷歌很好 | | 4 | 美丽四射 | | 5 | 大千世界 | | 6 | 大千世界 | | 7 | 大千世界 | | 8 | 大千世界 | | 9 | NULL | +----+--------------+ ``` ### 1. SELECT > SELECT 语句用于从数据库中选取数据。结果被存储在一个结果表中,称为结果集。 ```sql #显示指定数据表中的某字段 SELECT 字段 FROM 数据表; ``` ### 2. SELECT DISTINCT > 在表中,一个列可能会包含多个重复值,有时您也许希望仅仅列出不同(distinct)的值。 DISTINCT 关键词用于返回唯一不同的值。 ```sql #显示指定数据表中的某字段所有的不同数据(一般用于数据分类),相当于去除 select * 的重复值 SELECT DISTINCT 字段 FROM 数据表; ``` ### 3. WHERE > WHERE 子句用于过滤记录。 | 运算符 | 描述 | |--|--| | = | 等于 | | <> | 不等于 | | > | 大于 | | > | 小于 | | >= | 大于等于 | | <= | 小于等于 | | BETWEEN | 指定在某个范围,用and连接范围 | | LIKE | 模糊搜索 | | IN | 指定查询字段可能的值 | | is null | 判空 | ```sql #查询数据表中字段内容为 大千世界 的数据 SELECT * FROM data WHERE name="大千世界"; #查询id字段大于3的数据 SELECT * FROM data WHERE id>3; #查询id在2-5之间的数据 SELECT * FROM data WHERE id BETWEEN 2 AND 5; #模糊查询字段中包含 千 的数据 SELECT * FROM data WHERE name LIKE "%千%"; #查询id为1,3,5,10的数据(没有数据时不显示) SELECT * FROM data WHERE name IN(1,3,5,10); ``` **注意**:SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。数值字段,不要使用引号 ### 4. AND & OR > AND & OR 运算符用于基于一个以上的条件对记录进行过滤。如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。 如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。 ```sql #显示id为7并且名称为 大千世界 的数据 SELECT * FROM data WHERE name="大千世界" AND ID=7; ``` **注意**:可以把 AND 和 OR 结合起来(使用圆括号来组成复杂的表达式) ### 5. ORDER BY > ORDER BY 关键字用于对结果集进行排序。默认升序排列ASC 降序排列使用DESC 多列排序时,按照先后顺序排序 ```sql #按照降序排列 先排序name字段 再对name字段按照id降序排列 SELECT * FROM data ORDER BY name,id DESC; ``` ### 6. INSERT INTO > INSERT INTO 语句用于向表中插入新记录。他有两种编写形式。第一种形式无需指定要插入数据的列名,只需提供被插入的值即可。第二种形式需要指定列名及被插入的值 ```sql #第一种形式 INSERT INTO 表名 VALUES (value1,value2...); #第二种形式 INSERT INTO 表名 (字段1,字段2...) VALUES (value1,value2...); ``` **注意**:插入字段为空时,int型默认为0,字符串类型默认NULL ### 7.UPDATE > UPDATE 语句用于更新表中已存在的记录 ```sql UPDATE 表名 SET 字段1=value1,字段2=value2,... WHERE 某字段定位=value; ``` **注意**:WHERE 子句规定哪条记录或者哪些记录需要更新。如果您省略了 WHERE 子句,所有的记录都将被更新 ### 8.DELETE > DELETE 语句用于删除表中的行。 ```sql #删除某条数据 DELETE FROM 表名 WHERE 字段定位=value; #删除所有数据 保留数据表结构 两种写法 DELETE FROM 表名; DELETE * FROM 表名 ```