前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布

SQL

原创
作者头像
织幻妖
修改2021-03-10 17:48:26
1.4K0
修改2021-03-10 17:48:26
举报

sql概念

SQL 是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。

SQL 具有如下优点。

  1. 一体化:SQL 集数据定义、数据操作和数据控制于一体,可以完成数据库中的全部工作。
  2. 使用方式灵活:SQL 具有两种使用方式,可以直接以命令方式交互使用;也可以嵌入使用,嵌入C、C++、Fortran、COBOL、Java 等语言中使用。
  3. 非过程化:只提操作要求,不必描述操作步骤,也不需要导航。使用时只需要告诉计算机“做什么”,而不需要告诉它“怎么做”,存储路径的选择和操作的执行由数据库管理系统自动完成。
  4. 语言简洁、语法简单:该语言的语句都是由描述性很强的英语单词组成,而且这些单词的数目不多。

SQL 包含以下 4 部分:

1)数据定义语言(Data Definition Language,DDL)

用来创建或删除数据库以及表等对象,主要包含以下几种命令:

  • DROP:删除数据库和表等对象
  • CREATE:创建数据库和表等对象
  • ALTER:修改数据库和表等对象的结构
2)数据操作语言(Data Manipulation Language,DML)

用来变更表中的记录,主要包含以下几种命令:

  • SELECT:查询表中的数据
  • INSERT:向表中插入新数据
  • UPDATE:更新表中的数据
  • DELETE:删除表中的数据
3)数据查询语言(Data Query Language,DQL)

用来查询表中的记录,主要包含 SELECT 命令,来查询表中的数据。

4)数据控制语言(Data Control Language,DCL)

用来确认或者取消对数据库中的数据进行的变更。除此之外,还可以对数据库中的用户设定权限。主要包含以下几种命令:

  • GRANT:赋予用户操作权限
  • REVOKE:取消用户的操作权限
  • COMMIT:确认对数据库中的数据进行的变更
  • ROLLBACK:取消对数据库中的数据进行的变更

常用sql

使用student_db表:

student_db
student_db

1.SQL SELECT 语句

SELECT 语句用于从数据库中选取数据。结果被存储在一个结果表中,称为结果集

代码语言:javascript
复制
SELECT * from student_db;

2.SQL SELECT DISTINCT 语句

DISTINCT 去重一列重复的数据

代码语言:javascript
复制
SELECT DISTINCT(country) from student_db;

3.SQL WHERE 子句

WHERE 子句用于提取那些满足指定条件的记录。

代码语言:javascript
复制
SELECT * from student_db WHERE sex in ('男');

4.SQL AND & OR

如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。

代码语言:javascript
复制
SELECT * from student_db WHERE sex in ('男') AND  country in ('CN');

如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。

代码语言:javascript
复制
SELECT * from student_db WHERE  country in ('CN') OR  country in ('USA');

代码语言:javascript
复制
SELECT * from student_db WHERE age > '30' and (country in ('CN') OR  country in ('USA'));

5.SQL ORDER BY 关键字

ORDER BY 关键字用于对结果集按照一个列或者多个列进行排序。

ORDER BY 关键字默认按照升序对记录进行排序。如果需要按照降序对记录进行排序,您可以使用 DESC 关键字。

按照年龄排序

升序:

代码语言:javascript
复制
SELECT * from student_db ORDER BY age;

降序:

代码语言:javascript
复制
SELECT * from student_db ORDER BY age DESC;

6.SQL INSERT INTO 语句

INSERT INTO 语句用于向表中插入新记录。

插入一条橘子的记录

代码语言:javascript
复制
INSERT INTO  student_db VALUES ('6','橘子', 5, '女', '云南', 'CN');

7.SQL UPDATE 语句

UPDATE 语句用于更新表中已存在的记录。

修改李四的性别为男

代码语言:javascript
复制
UPDATE student_db  SET sex='男' WHERE name='李四';

8.SQL DELETE 语句

DELETE 语句用于删除表中的行。执行DELETE 语句 注意加上where 条件

删除姓名为张三的这一行数据

代码语言:javascript
复制
DELETE FROM student_db WHERE name='张三';

9.SQL SELECT TOP 子句

SELECT TOP 子句用于规定要返回的记录的数目。

从 "student_db " 表中选取头两条记录:

显示student_db表的前两行数据

代码语言:javascript
复制
SELECT * FROM student_db LIMIT 2;

10.SQL LIKE 操作符

LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。

查找出国家名字带A的

代码语言:javascript
复制
SELECT * FROM student_db WHERE country LIKE '%A%';

11.SQL 通配符

SQL 通配符用于搜索表中的数据。

SQL % 通配符

代码语言:javascript
复制
SELECT * FROM student_db WHERE country LIKE '%A%';

SQL _ 通配符

代码语言:javascript
复制
SELECT * FROM student_db WHERE country LIKE '_A';

SQL [charlist] 通配符

MySQL 中使用REGEXPNOT REGEXP运算符 (或 RLIKE 和 NOT RLIKE) 来操作正则表达式。

选取 couintry以 "U" 开始的所有国家

代码语言:javascript
复制
SELECT * FROM student_db WHERE country REGEXP '^[U]';

12.SQL IN 操作符

IN 操作符允许在 WHERE 子句中规定多个值。

代码语言:javascript
复制
SELECT * FROM student_db WHERE country IN ('CN','JA');

13.SQL BETWEEN 操作符

BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。

代码语言:javascript
复制
SELECT * FROM student_db WHERE age BETWEEN 10 AND 30;

14.SQL 别名

SQL别名,可以为表名称或列名称指定别名。

代码语言:javascript
复制
SELECT name as 姓名, age as 年龄, sex as  性别 from student_db;

再加一张score_db表

score_db
score_db

student_db 再插入一条数据

代码语言:javascript
复制
INSERT INTO student_db VALUES (3, '西瓜', 18, '女', '北京', 'CN');

表的别名:

代码语言:javascript
复制
SELECT st.id,st.name,st.age,st.sex,sc.object,sc.score from  student_db as st,score_db as sc WHERE st.id=sc.sid and sc.score >80;

15.SQL INNER JOIN 关键字

INNER JOIN 关键字在表中存在至少一个匹配时返回行。

代码语言:javascript
复制
SELECT 
st.id,st.name,st.age,st.sex,sc.object,sc.score 
from  student_db as st 
INNER JOIN score_db as sc
on st.id=sc.sid 
ORDER BY st.age;

16.SQL LEFT JOIN 关键字

LEFT JOIN 关键字从左表(table1)返回所有的行,即使右表(table2)中没有匹配。如果右表中没有匹配,则结果为 NULL。

student_db 表 插入一条记录

代码语言:javascript
复制
INSERT INTO student_db VALUES (7, '苹果', 25, '女', '苏州', 'CN');

左连接

代码语言:javascript
复制
SELECT 
st.id,st.name,st.age,st.sex,sc.object,sc.score 
from  student_db as st 
LEFT JOIN score_db as sc
on st.id=sc.sid 
ORDER BY st.age;

17.SQL RIGHT JOIN 关键字

RIGHT JOIN 关键字从右表(table2)返回所有的行,即使左表(table1)中没有匹配。如果左表中没有匹配,则结果为 NULL。

score_db 表插入一条数据

代码语言:javascript
复制
INSERT INTO score_db VALUES (8, 8, '英语', 100);

右连接

代码语言:javascript
复制
SELECT 
st.id,st.name,st.age,st.sex,sc.object,sc.score 
from  student_db as st 
RIGHT JOIN score_db as sc
on st.id=sc.sid 
ORDER BY st.age desc ;

18.SQL SELECT INTO 语句

SELECT INTO 语句从一个表复制数据,然后把数据插入到另一个新表中。

代码语言:javascript
复制
SELECT *
INTO student1_db
FROM student_db;

19.SQL INSERT INTO SELECT 语句

INSERT INTO SELECT 语句从一个表复制数据,然后把数据插入到一个已存在的表中。目标表中任何已存在的行都不会受影响。

代码语言:javascript
复制
INSERT INTO table2
SELECT * FROM table1;

20.SQL CREATE DATABASE 语句

CREATE DATABASE 语句用于创建数据库。

代码语言:javascript
复制
CREATE DATABASE dbname;

21.SQL CREATE TABLE 语句

CREATE TABLE 语句用于创建数据库中的表。

代码语言:javascript
复制
CREATE TABLE Persons
(
PersonID int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
);

22.SQL 约束(Constraints)

在 SQL 中,我们有如下约束:

  • NOT NULL - 指示某列不能存储 NULL 值。
  • UNIQUE - 保证某列的每行必须有唯一的值。
  • PRIMARY KEY - NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。
  • FOREIGN KEY - 保证一个表中的数据匹配另一个表中的值的参照完整性。
  • CHECK - 保证列中的值符合指定的条件。
  • DEFAULT - 规定没有给列赋值时的默认值。

后续继续补充。。。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • sql概念
  • 常用sql
    • 1.SQL SELECT 语句
      • 2.SQL SELECT DISTINCT 语句
        • 3.SQL WHERE 子句
          • 4.SQL AND & OR
            • 5.SQL ORDER BY 关键字
              • 6.SQL INSERT INTO 语句
                • 7.SQL UPDATE 语句
                  • 8.SQL DELETE 语句
                    • 9.SQL SELECT TOP 子句
                      • 10.SQL LIKE 操作符
                        • 11.SQL 通配符
                          • SQL % 通配符
                          • SQL _ 通配符
                          • SQL [charlist] 通配符
                        • 12.SQL IN 操作符
                          • 13.SQL BETWEEN 操作符
                            • 14.SQL 别名
                              • 15.SQL INNER JOIN 关键字
                                • 16.SQL LEFT JOIN 关键字
                                  • 17.SQL RIGHT JOIN 关键字
                                    • 18.SQL SELECT INTO 语句
                                      • 19.SQL INSERT INTO SELECT 语句
                                        • 20.SQL CREATE DATABASE 语句
                                          • 21.SQL CREATE TABLE 语句
                                            • 22.SQL 约束(Constraints)
                                            相关产品与服务
                                            数据库
                                            云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
                                            领券
                                            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档