sql语句的基本使用

sql语句的基本操作


这里以mysql为主,使用的是类似 MySQL、Oracle 这种的数据库管理系统,实际上这些数据库管理系统都遵循 SQL 语言,本文不做任何实例,授之以鱼不如授之以渔

一、了解sql

SQL 语言无处不在,它对于不同职位的人来说都有价值,SQL 语言从诞生到现在,很少变化。这就意味着一旦你掌握了它,就可以一劳永逸,至少在你的职业生涯中,它都可以发挥作用。
SQL 入门并不难。

半衰期很长的 SQL

可以说在整个数字化的世界中,最重要而且最通用的元基础就是数据,而直接与数据打交道的语言就是 SQL 语言。很多人忽视了 SQL 语言的重要性,认为它不就是 SELECT 语句吗,掌握它应该是数据分析师的事。事实上在实际工作中,你不应该低估 SQL 的作用。如今互联网的很多业务处理离不开 SQL,因为它们都需要与数据打交道。
SQL 有两个重要的标准,分别是 SQL92 和 SQL99,它们分别代表了 92 年和 99 年颁布的 SQL 标准,我们今天使用的 SQL 语言依然遵循这些标准

注意:安装MySQL请自行百度

二、基本操作

下面是指大部分常用的本地登录,以root账号登陆,默认端口3306,可以忽略,p后面可以写密码,一般在命令行中不推荐这么写

mysql -uroot -p #如果需要远程登陆请加上-h ip

查看所有数据库

show databases;

使用某个数据库

use 数据库名;

查看当前使用的数据库

select database();#这里是一个函数

创建数据库

create database 数据库名 charset=utf8; #charset指编码格式,默认拉丁

删除数据库

drop database 数据库名;

备份

运行mysqldump命令

恢复

mysqldump –uroot –p 数据库名 > python.sql;#按提示输入mysql的密码

关于大小写规范:比如 MySQL 在 Linux 的环境下,数据库名、表名、变量名是严格区分大小写的,而字段名是忽略大小写的。

而 MySQL 在 Windows 的环境下全部不区分大小写。

1.增删改查

1,数据表

查看当前数据库中所有表

show tables;

查看表结构

desc 表名;

创建表
auto_increment表示自动增长

CREATE TABLE table_name
(
column_name1 data_type(size),
column_name2 data_type(size),
column_name3 data_type(size),
....
);
#column_name 参数规定表中列的名称。
#data_type 参数规定列的数据类型(例如 varchar、integer、decimal、date 等等)。

修改表-添加字段

ALTER TABLE 表名 ADD 字段名 数据类型 #ALTER TABLE table_name ADD column_name datatype

修改表-修改字段:重命名版

alter table 表名 change 原名 新名 类型及约束; #ALTER TABLE table_name CHANGE column_name  column_name datatype

修改表-修改字段:不重命名版

alter table 表名 modify 列名 类型及约束;

例:

修改表-删除字段

alter table 表名 drop 列名;

删除表

drop table 表名;

查看表的创建语句

show create table 表名;

CHARACTER(n) 字符/字符串。固定长度 n。 VARCHAR(n) 或 CHARACTER
VARYING(n) 字符/字符串。可变长度。最大长度 n。 BINARY(n) 二进制串。固定长度 n。 BOOLEAN 存储 TRUE
或 FALSE 值 VARBINARY(n) 或 BINARY VARYING(n) 二进制串。可变长度。最大长度 n。
INTEGER§ 整数值(没有小数点)。精度 p。 SMALLINT 整数值(没有小数点)。精度 5。
INTEGER 整数值(没有小数点)。精度 10。 BIGINT 整数值(没有小数点)。精度 19。
DECIMAL(p,s) 精确数值,精度 p,小数点后位数 s。例如:decimal(5,2) 是一个小数点前有 3 位数,小数点后有 2
位数的数字。 NUMERIC(p,s) 精确数值,精度 p,小数点后位数 s。(与 DECIMAL 相同)
FLOAT§ 近似数值,尾数精度 p。一个采用以 10 为基数的指数计数法的浮点数。该类型的 size
参数由一个指定最小精度的单一数字组成。 REAL 近似数值,尾数精度 7。 FLOAT 近似数值,尾数精度 16。 DOUBLE
PRECISION 近似数值,尾数精度 16。 DATE 存储年、月、日的值。 TIME 存储小时、分、秒的值。
TIMESTAMP 存储年、月、日、小时、分、秒的值。 INTERVAL 由一些整数字段组成,代表一段时间,取决于区间的类型。
ARRAY 元素的固定长度的有序集合 MULTISET 元素的可变长度的无序集合 XML 存储 XML 数据

2,数据

全部插入:要求对应的值与字段

INSERT INTO table_name
VALUES (value1,value2,value3,...);

部分列插入:值的顺序与给出的列顺序对应

INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);

更新

UPDATE tbname SET col1={expr1|DEFAULT} [,col2={expr2|default}]...[where 条件判断]`

注意 SQL UPDATE 语句中的 WHERE 子句! WHERE 子句规定哪条记录或者哪些记录需要更新。如果您省略了 WHERE
子句,所有的记录都将被更新!

删除

DELETE FROM table_name WHERE some_column=some_value;

三、常用关键字

1. as关键字

在使用SQL语句显示结果的时候,往往在屏幕显示的字段名并不具备良好的可读性,此时可以使用 as 给字段起一个别名。

使用 as 给字段起别名

select id as 序号, name as 名字, gender as 性别 from students;

– 如果是单表查询 可以省略表名

select id, name, gender from students;

– 表名.字段名

select students.id,students.name,students.gender from students;

– 可以通过 as 给表起别名

select s.id,s.name,s.gender from students as s;

在后面的连接查询中,必须要有别名

2. distinct关键字

distinct可以去除重复数据行。

select distinct 列1,... from 表名;

四、sql 的运行过程

首先 MySQL 是典型的 C/S 架构,即 Client/Server 架构,服务器端程序使用的 mysqld。整体的 MySQL 流程如下图所示:

你能看到 MySQL 由三层组成:

连接层:客户端和服务器端建立连接,客户端发送 SQL 至服务器端;
SQL 层:对 SQL 语句进行查询处理;
存储引擎层:与数据库文件打交道,负责数据的存储和读取。
其中 SQL 层与数据库文件的存储方式无关,我们来看下 SQL 层的结构:

注意:此图转载

在这里插入图片描述
在这里插入图片描述

注意:此图转载

1.查询缓存:Server 如果在查询缓存中发现了这条 SQL 语句,就会直接将结果返回给客户端;如果没有,就进入到解析器阶段。需要说明的是,因为查询缓存往往效率不高,所以在 MySQL8.0 之后就抛弃了这个功能。
2.解析器:在解析器中对 SQL 语句进行语法分析、语义分析。
3.优化器:在优化器中会确定 SQL 语句的执行路径,比如是根据全表检索,还是根据索引来检索等。
4.执行器:在执行之前需要判断该用户是否具备权限,如果具备权限就执行 SQL 查询并返回结果。在 MySQL8.0 以下的版本,如果设置了查询缓存,这时会将查询结果进行缓存。

MySQL 中的流程是:SQL 语句→缓存查询→解析器→优化器→执行器。在一部分中,MySQL 和 Oracle 执行 SQL
的原理是一样的。

入门sql并不难,学深了,干啥都难------bai
参考:
https://www.runoob.com/sql/sql-tutorial.html 菜鸟教程
以及本地资料

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值