SQL基础入门

本文涉及的产品
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: MySQL是一个关系型数据库管理系统前世:瑞典MySQLAB公司今生:属于Oracle旗下产品MySQL是最好的RDBMS(Relational Database Management System,关系数据库管理系统)应用软件之一。开软的数据库软件~体积小、速度快、总体拥有成本低,招人成本较低,所有人必须会中小型网站、或者大型网站,集群!SQL 是一种操作数据库的语言,包括创建数据库、删除数据库、查询记录、修改记录、添加字段等。SQL 虽然是一种被 ANSI 标准化的语言,但是它有很多不同的实现版本。

一、什么是SQL

MySQL是一个关系型数据库管理系统
前世:瑞典MySQLAB公司
今生:属于Oracle旗下产品
MySQL是最好的RDBMS(Relational Database Management System,关系数据库管理系统)应用软件之一。
开软的数据库软件~
体积小、速度快、总体拥有成本低,招人成本较低,所有人必须会
中小型网站、或者大型网站,集群!

SQL 是一种操作数据库的语言,包括创建数据库、删除数据库、查询记录、修改记录、添加字段等。SQL 虽然是一种被 ANSI 标准化的语言,但是它有很多不同的实现版本。

二、SQL的执行过程

整个执行过程包含了多种组件

  • 查询调度程序;
  • 优化引擎;
  • 传统的查询引擎;
  • SQL 查询引擎。

1673477887384.png

三、SQL的命令

与关系型数据库有关的 SQL 命令包括 CREATE、SELECT、INSERT、UPDATE、DELETE、DROP 等,根据其特性,可以将它们分为以下几个类别。

1. DDL - Data Definition Language,数据定义语言

对数据的结构和形式进行定义,一般用于数据库和表的创建、删除、修改等。

命令 说明
CREATE 用于在数据库中创建一个新表、一个视图或者其它对象。
ALTER 用于修改现有的数据库,比如表、记录。
DROP 用于删除整个表、视图或者数据库中的其它对象

2.DML - Data Manipulation Language,数据处理语言

对数据库中的数据进行处理,一般用于数据项(记录)的插入、删除、修改和查询。

命令 说明
SELECT 用于从一个或者多个表中检索某些记录。
INSERT 插入一条记录。
UPDATE 修改记录。
DELETE 删除记录。

3.DCL - Data Control Language,数据控制语言

控制数据的访问权限,只有被授权的用户才能进行操作。

命令 说明
GRANT 向用户分配权限。
REVOKE 收回用户权限。

四、sql的语句实现

1、数据库的基本操作

1、创建数据库 
CREATE DATABASE database-name
 
2、备份 mysql
备份数据库到D盘跟目录
mysqldump -h127.0.0.1 -uroot -ppass myweb > d:/backupfile.sql
 
3、删除数据库 
drop database dbname

2、表的基本操作


1、创建新表 
create table tabname(col1 type1 [not null] [primary key],col2 type2 
[not null],..)
 
A:根据已有的表创建新表
 create table tab_new like tab_old 
 
B:使用旧表创建新表
create table tab_new as select col1,col2„ from tab_old definition  only
 
2、删除新表 
drop table tabname
 
3、增加列 
Alter table tabname add column col type
 
 
4、主键操作
 
添加主键
 Alter table tabname add primary key(col) 
 
删除主键 
Alter table tabname drop primary key(col) 
 
5、索引(索引是不可更改的,想更改必须删除重新建。)
 
创建索引
create [unique] index idxname on tabname(col„.) 
 
删除索引
drop index idxname

3、视图

创建视图
create view view_name as select statement 
 
删除视图
drop view view_name

4、基本的增删改查

选择范围
select * from table1 where ...
 
插入
insert into table1(field1,field2) values(value1,value2)
 
删除
delete from table1 where ...
 
更新
update table1 set field1=value1 where ...
 
查找
select * from table1 where field1 like ’%value1%’ 
 
排序
select * from table1 order by field1,field2 [desc]

5、统计

总数
select count as totalcount from table1
 
求和
select sum(field1) as sumvalue from table1
 
平均数
select avg(field1) as avgvalue from table1
 
最大数
select max(field1) as maxvalue from table1
 
最小数
select min(field1) as minvalue from table1

五、实战

1.创建数据表插入数据

# 创建数据库
create database mysql_exercise_50;
use mysql_exercise_50;

# 学生表
CREATE TABLE Student(
s_id VARCHAR(20),
s_name VARCHAR(20) NOT NULL DEFAULT '',
s_birth VARCHAR(20) NOT NULL DEFAULT '',
s_sex VARCHAR(10) NOT NULL DEFAULT '',
PRIMARY KEY(s_id)
);
insert into Student values('01' , '张三' , '1990-01-01' , '男');
insert into Student values('02' , '李四' , '1990-12-21' , '男');
insert into Student values('03' , '王五' , '1990-05-20' , '男');
insert into Student values('04' , '赵六' , '1990-08-06' , '男');
insert into Student values('05' , '冯七' , '1991-12-01' , '女');
insert into Student values('06' , '周八' , '1992-03-01' , '女');
insert into Student values('07' , '吴九' , '1989-07-01' , '女');
insert into Student values('08' , '郑十' , '1990-01-20' , '女');

# 课程表
CREATE TABLE Course(
c_id VARCHAR(20),
c_name VARCHAR(20) NOT NULL DEFAULT '',
t_id VARCHAR(20) NOT NULL,
PRIMARY KEY(c_id)
);
insert into Course values('01' , '语文' , '02');
insert into Course values('02' , '数学' , '01');
insert into Course values('03' , '英语' , '03');

# 教师表
CREATE TABLE Teacher(
t_id VARCHAR(20),
t_name VARCHAR(20) NOT NULL DEFAULT '',
PRIMARY KEY(t_id)
);
insert into Teacher values('01' , '王老师');
insert into Teacher values('02' , '李老师');
insert into Teacher values('03' , '冯老师');

# 成绩表
CREATE TABLE Score(
s_id VARCHAR(20),
c_id VARCHAR(20),
s_score INT(3),
PRIMARY KEY(s_id,c_id)
);
insert into Score values('01' , '01' , 80);
insert into Score values('01' , '02' , 90);
insert into Score values('01' , '03' , 99);
insert into Score values('02' , '01' , 70);
insert into Score values('02' , '02' , 60);
insert into Score values('02' , '03' , 80);
insert into Score values('03' , '01' , 80);
insert into Score values('03' , '02' , 80);
insert into Score values('03' , '03' , 80);
insert into Score values('04' , '01' , 50);
insert into Score values('04' , '02' , 30);
insert into Score values('04' , '03' , 20);
insert into Score values('05' , '01' , 76);
insert into Score values('05' , '02' , 87);
insert into Score values('06' , '01' , 31);
insert into Score values('06' , '03' , 34);
insert into Score values('07' , '02' , 89);
insert into Score values('07' , '03' , 98);

2.测试即可!

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
7月前
|
SQL 分布式计算 大数据
SparkSQL 入门指南:小白也能懂的大数据 SQL 处理神器
在大数据处理的领域,SparkSQL 是一种非常强大的工具,它可以让开发人员以 SQL 的方式处理和查询大规模数据集。SparkSQL 集成了 SQL 查询引擎和 Spark 的分布式计算引擎,使得我们可以在分布式环境下执行 SQL 查询,并能利用 Spark 的强大计算能力进行数据分析。
|
SQL 存储 机器学习/深度学习
如何让SQL速度飞起来 入门YashanDB优化器
优化器,SQL引擎的核心组成部分,是数据库中用于把关系表达式转换成最优执行计划的核心组件,影响数据库系统执行性能的关键组件之一。
184 15
|
SQL 存储 数据管理
SQL数据库的使用指南:从入门到精通
随着信息技术的飞速发展,数据库已成为各类企业和组织不可或缺的一部分。作为最流行的数据库管理系统之一,SQL数据库广泛应用于各种场景,如数据存储、数据管理、数据分析等。本文将详细介绍SQL数据库的使用方法,帮助初学者快速入门,并帮助有经验的开发者深化理解。一、SQL数据库基础首先,我们需要理解SQL数
666 2
|
SQL 安全 关系型数据库
SQL自动化注ru-SQLmap入门操作(一)
SQL自动化注ru-SQLmap入门操作(一)
|
SQL 安全 数据库
从入门到精通:Python Web安全守护指南,SQL注入、XSS、CSRF全防御!
【9月更文挑战第13天】在开发Python Web应用时,安全性至关重要。本文通过问答形式,详细介绍如何防范SQL注入、XSS及CSRF等常见威胁。通过使用参数化查询、HTML转义和CSRF令牌等技术,确保应用安全。附带示例代码,帮助读者从入门到精通Python Web安全。
335 6
|
SQL 数据库
SQL数据库基础语法入门
[link](http://www.vvo.net.cn/post/082935.html)
|
SQL 存储 关系型数据库
数据库SQL入门指南
数据库SQL入门指南
|
SQL 安全 关系型数据库
SQL自动化注茹-SQLmap入门操作(二)
SQL自动化注茹-SQLmap入门操作(二)
|
SQL 关系型数据库 数据库
SQL Server语法基础:入门到精通
SQL Server语法基础:入门到精通
740 9
SQL Server语法基础:入门到精通
|
SQL 关系型数据库 MySQL
【MySQL从入门到精通】常用SQL语句分享
【MySQL从入门到精通】常用SQL语句分享
228 2