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——创建表语句

2.select——查询语句(查询出来的数据也是表)

3.WHERE——条件过滤,条件写在后面。

4.AND和OR运算

5.ORDER BY ——排序

6.INSERT INTO——插入数据(以前没有的数据)

7.UPDATE ——更新语句(已经存在的)

8.DELETE——删除语句

9.TRUNCATE TABLE——清除表数据

10.DROP TABLE ——删除表(全部删除)


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表