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表