SQL 是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
SQL 具有如下优点。
SQL 包含以下 4 部分:
用来创建或删除数据库以及表等对象,主要包含以下几种命令:
用来变更表中的记录,主要包含以下几种命令:
用来查询表中的记录,主要包含 SELECT 命令,来查询表中的数据。
用来确认或者取消对数据库中的数据进行的变更。除此之外,还可以对数据库中的用户设定权限。主要包含以下几种命令:
使用student_db表:
SELECT 语句用于从数据库中选取数据。结果被存储在一个结果表中,称为结果集
SELECT * from student_db;
DISTINCT 去重一列重复的数据
SELECT DISTINCT(country) from student_db;
WHERE 子句用于提取那些满足指定条件的记录。
SELECT * from student_db WHERE sex in ('男');
如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。
SELECT * from student_db WHERE sex in ('男') AND country in ('CN');
如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。
SELECT * from student_db WHERE country in ('CN') OR country in ('USA');
SELECT * from student_db WHERE age > '30' and (country in ('CN') OR country in ('USA'));
ORDER BY 关键字用于对结果集按照一个列或者多个列进行排序。
ORDER BY 关键字默认按照升序对记录进行排序。如果需要按照降序对记录进行排序,您可以使用 DESC 关键字。
按照年龄排序
升序:
SELECT * from student_db ORDER BY age;
降序:
SELECT * from student_db ORDER BY age DESC;
INSERT INTO 语句用于向表中插入新记录。
插入一条橘子的记录
INSERT INTO student_db VALUES ('6','橘子', 5, '女', '云南', 'CN');
UPDATE 语句用于更新表中已存在的记录。
修改李四的性别为男
UPDATE student_db SET sex='男' WHERE name='李四';
DELETE 语句用于删除表中的行。执行DELETE 语句 注意加上where 条件
删除姓名为张三的这一行数据
DELETE FROM student_db WHERE name='张三';
SELECT TOP 子句用于规定要返回的记录的数目。
从 "student_db " 表中选取头两条记录:
显示student_db表的前两行数据
SELECT * FROM student_db LIMIT 2;
LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。
查找出国家名字带A的
SELECT * FROM student_db WHERE country LIKE '%A%';
SQL 通配符用于搜索表中的数据。
SELECT * FROM student_db WHERE country LIKE '%A%';
SELECT * FROM student_db WHERE country LIKE '_A';
MySQL 中使用REGEXP或NOT REGEXP运算符 (或 RLIKE 和 NOT RLIKE) 来操作正则表达式。
选取 couintry以 "U" 开始的所有国家
SELECT * FROM student_db WHERE country REGEXP '^[U]';
IN 操作符允许在 WHERE 子句中规定多个值。
SELECT * FROM student_db WHERE country IN ('CN','JA');
BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。
SELECT * FROM student_db WHERE age BETWEEN 10 AND 30;
SQL别名,可以为表名称或列名称指定别名。
SELECT name as 姓名, age as 年龄, sex as 性别 from student_db;
再加一张score_db表
student_db 再插入一条数据
INSERT INTO student_db VALUES (3, '西瓜', 18, '女', '北京', 'CN');
表的别名:
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;
INNER JOIN 关键字在表中存在至少一个匹配时返回行。
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;
LEFT JOIN 关键字从左表(table1)返回所有的行,即使右表(table2)中没有匹配。如果右表中没有匹配,则结果为 NULL。
student_db 表 插入一条记录
INSERT INTO student_db VALUES (7, '苹果', 25, '女', '苏州', 'CN');
左连接
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;
RIGHT JOIN 关键字从右表(table2)返回所有的行,即使左表(table1)中没有匹配。如果左表中没有匹配,则结果为 NULL。
score_db 表插入一条数据
INSERT INTO score_db VALUES (8, 8, '英语', 100);
右连接
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 ;
SELECT INTO 语句从一个表复制数据,然后把数据插入到另一个新表中。
SELECT *
INTO student1_db
FROM student_db;
INSERT INTO SELECT 语句从一个表复制数据,然后把数据插入到一个已存在的表中。目标表中任何已存在的行都不会受影响。
INSERT INTO table2
SELECT * FROM table1;
CREATE DATABASE 语句用于创建数据库。
CREATE DATABASE dbname;
CREATE TABLE 语句用于创建数据库中的表。
CREATE TABLE Persons
(
PersonID int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
);
在 SQL 中,我们有如下约束:
后续继续补充。。。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。