SQL基础入门

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用版 2核4GB 50GB
简介: 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.测试即可!

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
7月前
|
SQL 关系型数据库 MySQL
【MySQL入门到精通-黑马程序员】MySQL基础篇-SQL概述及DDL
(精度指数的所有位数;标度指小数点后数的位数) 字符串类型
70 0
|
8月前
|
SQL 关系型数据库 MySQL
数据库基础入门 — SQL运算符
数据库基础入门 — SQL运算符
57 0
|
8月前
|
SQL 分布式计算 大数据
黑马程序员-大数据入门到实战-分布式SQL计算 Hive 入门
黑马程序员-大数据入门到实战-分布式SQL计算 Hive 入门
104 0
|
8月前
|
SQL 存储 大数据
黑马程序员-大数据入门到实战-分布式SQL计算 Hive 语法与概念
黑马程序员-大数据入门到实战-分布式SQL计算 Hive 语法与概念
98 0
|
17天前
|
SQL 存储 安全
SQL入门与进阶:数据库查询与管理的实用指南
一、引言 在数字化时代,数据库已经成为各行各业存储、管理和分析数据的关键基础设施
|
1月前
|
SQL 关系型数据库 数据库
SQL Server语法基础:入门到精通
SQL Server语法基础:入门到精通
SQL Server语法基础:入门到精通
|
7天前
|
SQL 关系型数据库 MySQL
MySQL数据库数据模型概念入门及基础的SQL语句2024
MySQL数据库数据模型概念入门及基础的SQL语句2024
15 0
|
19天前
|
SQL 数据挖掘 数据库
深入理解SQL从入门到避坑
深入理解SQL从入门到避坑
|
1月前
|
SQL Java 数据库连接
Java从入门到精通:2.3.2数据库编程——了解SQL语言,编写基本查询语句
Java从入门到精通:2.3.2数据库编程——了解SQL语言,编写基本查询语句
|
1月前
|
SQL 关系型数据库 MySQL
[第一章 web入门]SQL注入-2 题目分析与详解
[第一章 web入门]SQL注入-2 题目分析与详解