SQL基础语句

1 sql基础

1.1 sql的组成部分

  • sql分为DML(数据操作语言)和DDL(数据定义语言)
1.1.1DML(数据操作语言)
  • a. 查询:select
  • b. 更新:update set
  • c. 删除:delete
  • d. 插入:insert into
1.1.2 DDL(数据定义语言)
  • a. 创建:create(datebase table index)
  • b. 修改:alter(datebase table)
  • c. 删除:drop(table index)

1.2 sql的基本语法

  • sql的基本语法包括:
select
update
delete
insert
1.2.1 select语法
  • select的定义:用于从表中选取数据,结果被存储在一个结果表中(结果集)
  • select的基本用法:
a. 查询所有:select * from 表名
b. 查询列:select 列名 from 表名

注意:查询列名时,列名用逗号隔开,最后的列名不要加逗号
1.2.2 insert into语法
  • insert into的定义:用于向表格中插入新的行
  • insert into的基本用法:
a. 插入一列:insert into 表名 values(值,值...)
b. 插入指定列的数据:insert into 表名(列,列...) values(值,值...)
1.2.3 update set语法
  • update set的定义:用于修改表中的数据
  • update的基本用法:
a. 跟新一列数据:update 表名 set 更新内容 where 条件
b. 跟新多列数据:update 表名 set 更新内容1,跟新内容2 where 条件
1.2.4 delete语法
  • delete的定义:用于删除表中的行
  • delete的基本用法:
a. 删除一行: delete from 表名 where 条件
b. 删除全部: delete from 表名

1.3 sql的关键字

1.3.1 distinct关键字
  • 定义:列出不同的值(在表中,可能包含重复的值,关键字distinct用于返回唯一不同的值)
  • 用法:select distinct 列名 from 表名
1.3.2 where关键字
  • 定义:用于条件选择
  • 用法:select 列名 from 表名 where 列名 运算符 值
可以在where中使用的运算符:
    = 等于
    !=(<>)  不等于
    >   大于
    <   小于
    >=  大于等于
    <=  小于等于
    between 在..的范围内
    like    模糊查询(搜素某种模式)

注意:使用条件判断时,值是文本值请用“”,数子就不用“”。
1.3.3 连接关键字(and和or)
1.3.3.1and关键字
  • 定义:在where子语句中把两个或多个条件结合起来(and的条件都成立,and运算符才会显示一条数据)
  • 用法:select * from 表名 where 条件1 and 条件2
1.3.3.2 or关键字
  • 定义:在where子语句中把两个或多个条件结合起来(or的条件只要有一条成立,or运算符就会显示一条数据)
  • 用法:select * from 表名 where 条件1 or 条件2
1.3.4 order by关键字
  • 定义:对查询结果进行排序(默认升序,在结尾使用desc关键字就是降序)
  • order by的基本用法
a.(升序):select 列名 from 表名 order by 列名
b.(降序序):select 列名 from 表名 order by 列名 desc
c.(结合使用):select 列名 from 表名 order by 列名 desc 列名 asc

2.sql进阶

2.1 top子句

  • 定义:top字句用于规定要放回返回的记录的数目
  • 基本用法:select top 数目 * from 表名

2.2 like操作符

  • 定义:用于在where字句中搜索列中的指定模式(模糊查找)
  • 基本用法: select * from 表名 where 列名 like 值
注意:like可以使用通配符使用
如:%e 以e结尾的
    k% 以k开头的
    %f% 含有f的
    not like 不包含

2.3 通配符

  • 定义:在模糊查找时,可以使用通配符代替一个或者多个字符
  • sql中的通配符:
%                           替代一个或多个字符   
_                           仅替代一个字符
[charlist]                  字符列中的任意单一字符     
[^charlist]([!charlist])    不在字符列中的任意单一字符
  • 通配符的使用
a. %的使用:select * from 表名 where 列名 like a%           查询以a开头的 
b. _的使用:select * from 表名 where 列名 like a_       查询以a开头的2个字符的值
c. []的使用:select * from 表名 where 列名 like [asd]%  查询以a,s或d开头的
d. [!]的使用:select * from 表名 where 列名 like [!asc]% 查询不以a,s或d开头的

2.4 in操作符

  • 定义:允许在where子句中规定多个值
  • 基本用法:select * from 表名 where 列名 in (value,value…)

2.5 between and操作符

  • 定义:选取介于两个值之间的数据范围
  • 基本用法:select * from 表名 where 列名 between 值 and 值

  • 注意:在between and前面加not是不在范围内

2.5 as操作符(取别名)

  • 定义:为列和表指定别名
  • 基本用法:select 列名 as 别名 from 表名 as 别名

2.6 join操作符

  • 定义:用于两个或多个表中的列之间的关系,从这些表中查询数据。
  • join操作符有4种:
a. inner join(内连接):两个表中至少有一个匹配,则返回行
b. left join(左连接):即使右表中没有匹配,也可以从左表中返回行
c. right join(右连接):即使左表中没有匹配,也可以从右表中返回行
d. full join(外连接):只要其中一个表存在匹配/就返回行
  • join的基本用法:
a. inner join(内连接):select * from 左表 inner join 右表 on 左表.列名=右表.列名
b. left join(左连接):select * from 左表 left join 右表 on 左表.列名=右表.列名
c. right join(右连接):select * from 左表 right join 右表 on 左表.列名=右表.列名
d. full join(外连接):select * from 左表 full join 右表 on 左表.列名=右表.列名

2.7 union操作符

  • 定义:用于合并两个或多个select语句的结果集
  • 基本用法:select from 表1 union select from 表2

  • 注意:

1.union内部的select语句必须拥有相同数量的列
2.列必须拥有相同的数据类型
3.每条select语句中的列的顺序必须相同
4.union默认选取不同的值,如果允许重复,请使用union all

2.8 select into操作符

  • 定义:用于创建表的备份复件或者用于对记录进行存档(从一个表中选取数据,然后把数据插入另一个表中)

- 基本用法: select * into 备份表 in ‘数据库名’ from 表

  • 注意:语句中的in用于向另一个数据库中拷贝

2.9 create操作符

  • 定义:用于创建数据库或表
  • 基本用法:
a. 创建数据库:create datebase 数据库名
b. 创建表: 
    create table 表名
    {
        列名 数据类型,
        列名 数据类型,
        列名 数据类型,
        ......
    }
  • 注意:创建表时,最后的列名 数据类型不要加逗号

2.10 constraints(约束)

  • 定义:用于限制加入表的数据的类型(可在create和alter语句中进行约束)
  • 常用的几种约束:
not null:约束列不接受null值
unique:约束唯一标识数据库表中的每条记录
primary key:主键
foreign key:外键
check:用于限制列中的值的范围
default:用于向列中插入默认值
  • 注意:命名约束要使用constraint 约束名

2.11 create index语句

  • 定义:用于在表中创建索引,索引只能用来加速搜索/查询
  • 基本用法:create index 别名 on 表名(列名)

2.12 drop语句

  • 定义:通过drop可以删除索引,表,数据库。
  • 基本用法:
a. 删除索引:alter table 表名 drop  index 索引名
b. 删除数据库:drop datebase 数据库名
c. 删除表:drop table 表名
  • 注意:清除表中的数据使用truncate table 表名

2.13 alter语句

  • 定义:用于在已有的表中添加,修改和删除列。
  • 基本用法:
a. 添加列:alter table 表名 add 列名 数据类型 
b. 删除列:alter tabke 表名 drop column 列名
c. 改变列的数据类型: alter table 表名 alter column 列名 数据类型

2.14 auto_increment(自增)

  • 定义:在新记录插入表中时生成一个唯一的数字
  • 基本用法:
a.创建时:create table 表名{ 列名 数据类型 约束 auto_increment}
b.自增以其他值起始:alter table 表名 auto_increment=值
  • 注意:zuto_increment的开始值是1

2.15 view(视图)

  • 定义:视图是基于sql语句的结果集的可视化的表
  • 基本用法:
a. 创建视图:create view 视图名 as select 列名 from 表名 where 
b. 删除视图:drop view 视图名
c. 更新视图:create view 视图名 as select * from 表名 where 条件

2.16 date(日期)

  • 日期函数:
now()           返回当前的日期和时间
curdate()       返回当前的日期
curtime()       返回当前的时间
date()          提取日期或日期/时间表达式的日期部分
extract()       返回日期/时间按的单独部分
date_add()      给日期添加指定的时间间隔
date_sub()      从日期减去指定的时间间隔
datediff()      返回两个日期之间的天数
date_format()   用不同的格式显示日期/时间
  • date 数据类型:
date        格式  yyyy-mm-dd
datetime    格式  yyyy-mm-dd hh-mm-ss
timestamp   格式  yyyy-mm-dd hh-mm-ss
year        格式  yyyy或yy

2.17 null

  • 定义:表中的列是可选的,我们可以在不向该列添加值的情况下插入新记录或更新已有的记录。该字段将以 NULL 值保存。
  • 基本用法:null的判断: select * from 表名 where 列 is null

3.sql函数

  • 函数的类型
a. aggregate函数(合计函数):面向一系列的值,并返回一个单一的值
b. scalar函数:面向某个单一的值,并返回基于输入值的一个单一的值

3.1 avg()函数(平均値)

  • 定义:AVG 函数返回数值列的平均值。NULL值不包括在计算中
  • avg()语法:select avg(列名) from 表名

3.2 count()函数

  • 定义:返回匹配指定条件的行数
  • 基本用法:
a. count(列名)的语法: select count(列名) from 表名  返回指定列的值的数目
b. count(*)的语法:select count(*) from 表名          返回表中的记录数
c. count(distinct 列名) from 表名                   返回指定列的不同值的数目

3.3 first()函数

  • 定义:返回指定的字段中第一个记录的值
  • 基本用法:select first(列名) from 表名

3.4 last()函数

  • 定义:返回指定的字段中最后一个记录的值
  • 基本用法:select last(列名) from 表名

3.5 max()函数

  • 定义:返回一列中的最大值
  • 基本语法:select max(列名) from 表名

3.6 min()函数

  • 定义:返回一列中的最小值
  • 基本语法:select min(列名) from 表名

3.7 sum()函数

  • 定义:返回数值列的总数
  • 基本语法:select sum(列名) from 表名

3.8 group by

  • 定义:用于结合合计函数,根据一个或多个列对结果集进行分组
  • 基本用法:select * from 表名 group by 列名

3.9 having

  • 定义:where关键字无法和合计函数一起使用,就用having代替
  • 基本用法:select 合计函数(列名) from 表名 having 合计函数条件

3.10 ucase()函数

  • 定义:把字段的值转换为大写
  • 基本用法: select ucase(列名) from 表名

3.11 lcase()函数

  • 定义:把字段的值转换为小写
  • 基本用法: select lcase(列名) from 表名

3.12 mid()函数

  • 定义:用于从文本字段中提取字符
  • 基本用法:select mid(列名,开始位置,返回值大小) from 表名

3.13 len()函数

  • 定义:返回文本字段中值得长度
  • 基本用法:select len(列名) from 表名

3.14 round函数

  • 定义:用于把数值字段含入为指定的小数位数
  • 基本用法:select round(列名,小数位数) from 表名(后面的小数位数会4舍5入)

3.15 now()函数

  • 定义:返回当前的日期和时间
  • 基本用法:select now() from 表名

3.16 format()

  • 定义:用于对字段的显示进行格式化
  • 基本用法:select format(列名,显示格式) from 表名
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值