SQL基础

SQL基础

在这里插入图片描述
创建表

CREATE TABLE library(
book_id int(11) NOT NULL AUTO_INCREMENT,
book_name varchar(255) NOT NULL
);
ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

修改表的结构

向表中添加字段

ALTER TABLE table_name ADD (column_name int(11));

修改字段名

ALTER TABLE table_name RENAME COLUMN column_name to column_name2; 

修改字段数据类型(将column_name 的数据类型设置为float(3,1))

ALTER TABLE table_name MODIFY (column_name float(3,1));

删除字段(删除列column_name2)

ALTER TABLE table_name DROP COLUMN column_name2;

使用 SQL 检索数据

在这里插入图片描述

SQL 的执行原理

在这里插入图片描述

SELECT DISTINCT player_id, player_name, count(*) as num #顺序5
FROM player JOIN team ON player.team_id = team.team_id #顺序1
WHERE height > 1.80 #顺序2
GROUP BY player.team_id #顺序3
HAVING num > 2 #顺序4
ORDER BY num DESC #顺序6
LIMIT 2 #顺序7

SQL数据过滤

在这里插入图片描述

SQL中的函数

在这里插入图片描述

算术函数

SELECT ABS(-2),运行结果为 2SELECT MOD(101,3),运行结果 2SELECT ROUND(37.25,1),运行结果 37.3

字符串函数

SELECT CONCAT('abc', 123),运行结果为 abc123。
SELECT LENGTH('你好'),运行结果为 6SELECT CHAR_LENGTH('你好'),运行结果为 2SELECT LOWER('ABC'),运行结果为 abc。
SELECT UPPER('abc'),运行结果 ABC。
SELECT REPLACE('fabcd', 'abc', 123),运行结果为 f123d。
SELECT SUBSTRING('fabcd', 1,3),运行结果为 fab。

日期函数

SELECT CURRENT_DATE(),运行结果为 2019-04-03SELECT CURRENT_TIME(),运行结果为 21:26:34SELECT CURRENT_TIMESTAMP(),运行结果为 2019-04-03 21:26:34SELECT EXTRACT(YEAR FROM '2019-04-03'),运行结果为 2019SELECT DATE('2019-04-01 12:00:05'),运行结果为 2019-04-01

转换函数

SELECT CAST(123.123 AS INT),运行结果会报错。
SELECT CAST(123.123 AS DECIMAL(8,2)),运行结果为 123.12SELECT COALESCE(null,1,2),运行结果为 1

SQL中的聚集函数

在这里插入图片描述

SQL视图

在这里插入图片描述

创建视图

CREATE VIEW view_name AS
SELECT column1, column2
FROM table
WHERE condition

修改视图

ALTER VIEW view_name AS
SELECT column1, column2
FROM table
WHERE condition

删除视图

DROP VIEW view_name

SQL子查询

在这里插入图片描述

SQL进阶

在这里插入图片描述

绑定变量

SQL> select * from player where player_id = :player_id;

在第一次查询之后,在共享池中就会存在这类查询的执行计划,也就是软解析。

让 MySQL 收集在 SQL 执行时所使用的资源情况:

mysql> select @@profiling;

获取上一次查询的执行时间

mysql> show profile;

获取指定的 Query ID的查询的执行时间

mysql> show profile for query 2;

查看 MySQL 的版本情况

mysql> select version();

SQL事务处理

在这里插入图片描述

连接(JOIN)

在这里插入图片描述

Navicat

要能够熟练的使用Navicat。

DDL

在这里插入图片描述

SQL存储过程

在这里插入图片描述

定义存储过程

CREATE PROCEDURE 存储过程名称([参数列表])
BEGIN
    需要执行的语句
END    

DELIMITER 的作用

DELIMITER //
CREATE PROCEDURE `add_num`(IN n INT)
BEGIN
       DECLARE i INT;
       DECLARE sum INT;
       
       SET i = 1;
       SET sum = 0;
       WHILE i <= n DO
              SET sum = sum + i;
              SET i = i +1;
       END WHILE;
       SELECT sum;
END //
DELIMITER ;

SQL游标

在这里插入图片描述

.sql 文件

需要注意:

关于别名:

如果我们使用了表的别名,在查询字段中就只能使用别名进行代替,不能使用原有的表名,否则 SQL 查询就会报错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值