SQL基础知识

SQL是一种结构化数据库语言,有固定的语句结构,因此记忆起来并不困难。本文主要介绍Mysql的相关知识。

一、数据库两大构成语言

组成它的语言最常用的有两类,数据定义语言DDL数据操作语言DML,通俗易懂地讲,DDL用来定义数据库的结构或者表的结构,比如定义数据库的名称,有哪些字段等等;而DML则是对表中的具体数据进行增删改查等一系列操作的语言,比如删除某一行或者修改某个值等。我们日常使用DML更多,大概占90%。

(一)DDL

构建数据库的第一步是创建数据库,创建之后也可以对数据库结构进行修改,或者删除。表的创建,删除字段或者添加字段也同样是对结构的修改,它们分别对应Create(创建),Drop(删除),Alter(修改)这三个数据库定义语言,下面将对相应功能的语句进行介绍。

1. 创建数据库或者创建表

Create DATABASE <数据库名> charset=utf8;  
-- charset=utf8是为了指定编码,mysql默认的编码无法读取中文,输入中文会乱码
-- 而utf8可以支持全世界所有国家的语言,定义之后输入中文不会乱码
Create table <表名>
( <字段名字>  <数据类型>  <可选约束>  <无符号>  <主键>  <不为空>  <自增>

  --id         int      unsigned   primary    key   not null  auto_increment,
   
    ...
);

上述语句涉及到了SQL中的一些基础知识:

 (1)mysql数据类型

          int, bit 整数

          decimal 小数

          varchar,char (可变)字符串

          date, time, datetime 日期时间

          enum 枚举类型(比如性别,类型比较少的可以枚举

 (2)mysql字段约束

          primary key 主键约束

          not null 非空约束(输入不能为空

          unique 唯一约束 (比如身份证号

          default 默认约束(比如性别,忘了填可以默认为男,如果后续发现错了可以修改

   2. 删除数据库或表

-- 删除数据库
Drop DATABASE <数据库名>;
-- 删除表
Drop table <表名>;

 3. 修改表结构

-- 给表添加一列
ALTER TABLE < 表名 > ADD COLUMN < 列的定义 >;
-- 删除表某列
ALTER TABLE < 表名 > DROP COLUMN < 列的定义 >;
-- 修改表某一列类型
ALTER TABLE <表名> MODIFY <列名> <要修改成为的类型>;            
alter table user CHANGE new1 new4 int; 
-- 修改表某一列名称
ALTER TABLE <表名> MODIFY <原列名> <新列名> <类型>;              

(二)DML

DML用来查询或变更表中的记录,包括增(INSERT)删(DELETE)改(UPDATE)查(SELECT)。

1. 增,即在表中插入新的值

INSERT INTO <表名> (列1, 列2, 列3, ……) VALUES (值1, 值2, 值3, ……);  

2. 删,即删除某一行

DELETE from <表名> where <条件>;

3. 改,即对指定行的某个值进行更新

UPDATE <表> SET <列1>=<值1>, <列2>=<值2>,... WHERE <条件>;

4. 查,是SQL中使用最多的语句,下面会对查询的使用进行详细的介绍。

二、SQL查询

(一)SQL语法结构与执行顺序

1. SQL语言的语法顺序如下:

select distinct <字段> 
from <表名> 
where <条件> 
group by <分组字段> 
having <条件> 
order by <字段> DESC
limit <>;

2. SQL语句的执行顺序为:

from > where > group by > having > select的字段 > distinct > order by > limit

即先执行定位条件和分组条件,再将满足条件的字段提取出来,最后再对数据进行排序,limit可以约束返回结果的数量。

执行时,每个步骤都会产生一个中间表,并传入下一步作为输入,这个过程我们不可见,所以要想准确查询出想要的数据,就需要理解SQL的执行顺序。

(二)SQL基础查询

1. 各语句基本解析

DISTINCT:用于过滤重复值,筛选唯一值;

WHERE:定义过滤条件,可以筛选出满足条件的行;

GROUP BY:根据某列进行分组,要与聚合函数搭配使用,比如以性别分组,可以返回不同性别的各个聚合函数值,比如最大值,平均值等;

HAVING:也是过滤条件,与WHERE不同的是它在分组之后可以筛选出满足条件的组,比如均值大于0的组;

ORDER BY:可以使输出结果根据某字段升序或者降序排列,默认是升序;

2. SQL常用内置函数

算数函数:+,-,×,÷,ABS(),MOD(),ROUND()

字符串函数:CONCAT(),LENGTH(),CHAR_LENGTH(),LOWER(),UPPER(),REPLACE(),SUBSTRING()等

日期函数:CURRENT_DATE(),YEAR(),MONTH(),DAY(),HOUR(),MINITE(),SECOND()

转换函数:CAST(),DECIMAL()

聚合函数:MAX(),MIN(),COUNT(),SUM(),AVG()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值