SQL学习(一)
SQL(Structured Query Language)结构化查询语言,是用于查询和操作数据的标准的计算机语言。
问题:在那查询与操作数据?什么样的数据?
答:查询与操作的数据是存放在数据库里,数据其实就是由各种表和关系组成的,表由列和行组成。
SQL特点:简单易学,不区分大小写,功能强大,只说明要做什么。
基础命令(常用的命令,学完就可以基本使用,不区分大小写)
-
CREATE (create) - 创建新表
-
SELECT (select)- 从数据库中提取数据
-
WHERE(where)-条件过滤
-
AND和OR-运算
-
ORDER BY(order by)-对数据的列内容进行排序
-
INSERT INTO(insert into) - 向数据库中插入新数据
-
UPDATE(update) - 更新数据库中的数据
-
DELETE(delete) - 从数据库中删除数据
-
TRUNCATE TABLE-清除表数据
-
DROP TABLE-删除表
说明:SQL不区分大小写,为方便写作,下面关键字博主全部用小写;
后面的分号一般SQL不强制要求,最好写上。这里中英文分号可能有误,请注意复制时要调整。
目录
SQL(Structured Query Language)结构化查询语言,是用于查询和操作数据的标准的计算机语言。
1.create——创建表语句
语法:
CREATE TABLE 表名称
(
列名称1 数据类型,
列名称2 数据类型,
列名称3 数据类型,
....
);
-
常用数据类型
数据类型 | 说明 |
---|---|
int | 整型类型 |
char(n) | 字符、字符串类型,固定长度数值n;如char(25),固定数值25位。 |
varchar(n) | 字符、字符串类型,根据内容可变的长度,最大长度数值为n。 |
numeric(a,b) | 精确数值区间,总位数a,小数点后位数b |
date | 存储年、月、日的值 |
#例子一
create table students( #create创建的都是表头或称列名
name varchar(255) primary key, #定义可变的字符型255位,primary key主键
age int, #定义固定整型2位
);
注:primary key 主键可以理解是一张表的唯一标识,且不能为null 没有主键的表设计不严谨,
#例子二
create table employees(
employeename int primary key,
name char(10) not null, #该字符不能为空
manager int,
hiredate date,
salary numeric(7,2), #总的长7位,小数点精确到2位
);
2.select——查询语句(查询出来的数据也是表)
-
查询表中所有的数据,所有的数据。
select * from 表名; # *号是所有列的数据
-
查询指定的表中数据,只需要指定的列数据。
select 列名1,列名2,.. from 表名;
-
带参数去除重复值,distinct。一个列可能会包含多个重复值,有时您也许希望仅仅列出不同(distinct)的值。
select distinct 列名1,列名2,.. from 表名;
3.WHERE——条件过滤,条件写在后面。
select 列名,列名 from 表名 where 列名 运算符 值; #例子 select * from students where age >= 19;
运算符 | 说明 |
---|---|
= | 等于 |
<>或!= | 不等于 |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
between | 在某个范围之内 |
like | 搜索匹配的字符串模式 |
#例子
select * from employees; #查询员工表中所有的数据
select name,age from employees; #查询员工的姓名和年龄字段
select age from employees; #去除年龄重复的值
select * from students where name = '张三'; #值是字符需要引号
4.AND和OR运算
AND(与运算)如果第一个条件和第二个条件都成立,则 AND 运算符为真。
OR(或)如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符为真。
#例子
select * from students where age > 19 AND name = '张三';
select * from students where age > 19 OR age < 25;
select * from students where (age > 19 OR age < 25) AND name = '张三'; #使用圆括号来组成复杂的表达式
5.ORDER BY ——排序
ORDER BY (order by)关键字用于对结果列按照一个列或者多个列进行排序。
ORDER BY (order by)关键字默认按照升序对记录进行排序,需要按照降序进行排序,使用 DESC 关键字。
select * from students order by name; #对学生表按照name进行排序,默认是升序
select * from students order by name DESC; #对学生表按照name进行降序排
select * from students order by name,age; #对学生表按照name和age进行排序,默认是升序
6.INSERT INTO——插入数据(以前没有的数据)
-
为表中所有的字段添加数据,是按一行全部列的内容填入
insert into 表名 values (列1的值,列2的值,列3的值,...);
-
为一行中指定的列插入数据
insert into 表名(列名,列名,...) values (值,值,...);
#例子一,学生students中列名有(序号,姓名,年龄,时间这四个表头0
insert into students values (1,'张三',20,'2022-05-01'); #全部插入,字符需要单引号或双引号
insert into students(name,age) values ('张三',20); #部分插入
7.UPDATE ——更新语句(已经存在的)
UPDATE 语句用于更新表中已经存在的记录。
语法:update table_name set column1=value1,column2=value2,... where some_column=some_value;
注:请注意 UPDATE 语句中的 WHERE 子句!WHERE 子句规定哪条记录或者哪些记录需要更新。如果您省略了 WHERE 子句,所有的记录都将被更新!
#例子
update students set age=19,name='李四' where name = '张三'; #要把张三的名字换成李四,年龄换成19
执行没有 WHERE 子句会全部更新的 UPDATE 要慎重,再慎重
8.DELETE——删除语句
DELETE 语句用于删除表中的行。
语法:delete from table_name where some_column=some_value;
注:请注意 DELETE 语句中的 WHERE 子句!WHERE 子句规定哪条记录或者哪些记录需要删除。如果您省略了 WHERE 子句,所有的记录都将被删除!
#例子:
delete from students where name = '张三';
delete * from students; #删除所有的行,不删除表
9.TRUNCATE TABLE——清除表数据
如果我们仅仅需要除去表内的数据,但并不删除表本身,那么我们该如何做呢?
truncate table students; #清除了学生表中数据,没有删除表
delete * from students; #也可以删除所有的行,不删除表,
10.DROP TABLE ——删除表(全部删除)
DROP TABLE 语句用于删除表(表的结构、属性以及索引也会被删除)。
drop table students; #删除students表
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构