SQL的基本操作

1.表格操作

1.创建表格

# 创建新的表格
create table table_one (Id_P int, LastName varchar(255), Address varchar(255))
# 选取其他表格的部分数据创建新的表格
create table table_two select column_name from table_one
# 有条件的创建新的表格
create table table_two select column_name from table_one on column_one = column_two

Id_P 列的数据类型是 int,包含整数。其余列的数据类型是 varchar,最大长度为 255 个字符。

2.删除表格

# 删除表格和数据
drop table table_name
# 逐行删除
delect from table_name where column_name = "value"
# 删除数据,保留表格结构
truncate table table_name

3.修改表格名称

rename table table_name to newname

 4.更新表格

update table_name set column_name = 'value'
update table_name set column_name = 'value' where id > 4

 5.查看表格编码格式

show create table table_name

2.列操作

1.添加新的列

alter table table_name add column_name varchar(255)

 2.修改列名

# 修改列的名称
alter table table_name change column oldname newname 新列名格式

 3.删除某列

alter table table_name drop column columnone, columntwo

4.查询某列

select column_name from table_name limit 50

5.某列数据null变成0

select *, ifnull(column_name, 0) as newcolumn from table_name

 3.行操作

1.插入行数据

# 默认插入选项
insert into table_name values (值1, 值2)
# 插入时设定指定列
insert into table_name(colume1, column2) values (值1, 值2)
# 从一个表中查询数据插入另一个表
insert into table_two select * from table_one where table_one.id = "001"

 2.删除行

delect from table_name where 条件列名 = "value"

 3.行排序

# 默认排序 升序
select column2 from table_name order by column1, column2
# 升序 asc
select column2 from table_name order by column1, column2
# 降序 desc
select column2 from table_name order by column1 desc
# 升降序混合
select column2 from table_name order by column1 desc, column2 asc

 4.索引

主键和唯一索引的区别

  1. 主键不允许空值,唯一允许空值;唯一的ID
  2. 主键只允许一个,唯一可以有多个;
  3. 主键产生唯一的聚集索引(确定表中数据的物理顺序),唯一索引产生唯一的非聚集索引

 1.添加索引

# 添加主键索引
alter table table_name add primary key(column)
# 添加唯一索引
alter table table_name add unique(column)
# 添加普通索引
alter table table_name add index index_name(column)
#添加全文索引
alter table table_name add fulltext(column)
#添加多列索引
alter table table_name add index index_name(column1, column2, column3)

2.查看索引

show index from table_name

3.删除索引

drop index index_name on table_name

5.条件语句

1.去重显示数据

select distinct column_name from table_name

2.行条件过滤——where

select column_name from table_name where column="value"

 where句子中的运算符 

运算符描述
=等于
<> or !=不等于
>大于
<小于
>=大于等于
<=小于等于
between在某范围内
like

某种模式

1.like + 条件的模糊查询

  • %:表示任意 0 个或多个字符。可匹配任意类型和长度的字符;
  • _(下划线):表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句;
  • [ ]:匹配字符列中任何单一字符;
    # 查询以"w"字母开头的名字
    select * from table_name where name like 'z%'
    # 查询名字中包含"a"字母的名字
    select * from table_name where name like '%a%'
    # 查询名字中不包含"a"字母的名字
    select * from table_name where name not like '%a%'
    # 查询由五个字母构成的名字
    select * from table_name where name like '_____'
    # 查询名字中第二个字母是"b"的名字
    select * from table_name where name like '_b%'
    # 查询名字中含有A或B或C的名字
    select * from table_name where name like '%[ABC]%'
    # 查询名字中不含有A或B或C的名字
    select * from table_name where name like '%[!ABC]%'

2.in+值 锁定多个值

# 语法
select 列名/(*) from 表名称 where 列名称 in (值1,值2,值3)

3.between+区间数据

# 语法
select 列名/(*) from 表名称 where 列名称 between 值1 and 值2

 注:不同数据库对between...and...的处理方式有差异,使用前需要检查对于两个端点的处理方式

3. 多表关联——join

# 语法
select 列名 from 表A inner|left|right|full join 表B on 表A主键列 = 表B外键列
  • join:表中至少有一个匹配,就返回行;
  • inner join:内部连接,返回两表匹配的值;
  • left join:即使右表没有匹配,也返回左表所有行;
  • right join:即使左表没有匹配,也返回右表所有行;
  • full join:只要其中一个表存在匹配,就返回行;

 6.常用函数

1.聚合函数

  • count():统计指定列不为null的行数;
  • max():计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算;
  • min():计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算;
  • sum():计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为 0;
  • avg():计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为 0;

 2.分组查询——group by

# 查询整个年级每个班的班级号和人数
select class, count(*) from table_name group by class
# 查询整个年级每个班的班级号和总分
select class, sum(score) from table_name group by class
# 查询整个年级每个班的班级号和分数大于90的人数
select class, count(*) from table_name where score>90 group by class

 having子句

# 查询总分大于500的班级号和分数总和
select class, sum(score) from table_name group by class having sum(score)>500

注:

  • where关键字无法与聚合函数一起使用;
  • where是对分组前记录的条件,如果某行记录没有满足where子句的条件,那么这行记录不会参加分组;而having是对分组后数据的约束。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值