详细完整sql语句知识

修改数据库表

修改表名:
alter table 旧表名 rename as 新表名 

增加表的字段
alter table 表名 add 字段名 列属性
如:alter table student age int(11)

修改表的字段
    修改约束
    alter table 表名 modify 字段名 列属性[];
    如:alter table student modify age varchar(11);
    字段重命名
    alter table 表名 change 旧字段名 新字段名 字段名 列属性[];
    alter table student change age age1 varchar(11);

删除表的字段
alter table 表名 drop 字段名;
如:alter table student drop age1;

删除表
drop table if exists 表名;
如:drop table if exists student;

注:
``字段名,使用这个包裹


DML语言(增删改)

添加(insert)

语法:insert into 表名([字段名1,2,3…]) values(‘值1’),(‘2’)…

修改(update)

语法:update 表名 set colnum_name = value,[colnum_name = value,…] where [条件]

如:
update `student` set `name`='张三' where id = 1;

条件:where子句
1. colnum_name是数据库的列,尽量带上``;
2. 条件,筛选条件,如果没有指定,则会修改所有的列
3. value,是一个具体的值,也可以是一个变量
操作符含义范围结果
=等于5=6false
<>或!=不等于5<>6true
>大于5>6false
<小于5<6true
>=大于等于5>=6false
<=小于等于5<=6true
between…and…在某个范围内[2,5]
and和(&&)5>1 and 1>2false
or5>1 and 1>2true
删除(delete)

语法:delete from 表名 [where 条件]

eg:
delete from `student` where id = 2;

truncate:完全清空一个数据库表,表的结构和索引约束不会变

语法:truncate table 表名;

delete和truncate区别

  • 相同点:都能删除数据,都不会删除数据表结构
  • truncate:重新设置,自增归零,不会影响事务;
  • delete不会影响自增(删除表后自增会接着,而不会归零)

delete删除问题,重启数据库

  • INNDOB 自增列会归零(存在内存中,断电即失)
  • MyISAM 继续从上一个自增量开始(存在文件中,不会丢失)

DQL数据查询语言

  • 所有的查询操作都使用它(select),数据库最核心的语言
select语法:顺序不能调换
all:默认查询所有
distinct:去重

select [ all | distinct]
{ * | table.* | [table.field1[as alias1][,table.field2][,...]]}
from table_name [as table_alias]
[left | right | inner join table_name2]--联合查询
[where...]--指定结果需满足的条件
[group by...]--指定结果按照哪几个字段来分组
[having...]--过滤分组的记录必须满足的次要条件,条件和where是一样的,只是位置不同
[order by...]--指定查询记录按一个或多个条件排序
[limit {[offset,] row_count | row_countOFFSET offset}];--指定查询的记录从哪条至哪条
[]:可选,{}必选
1:查询表中所有信息
select *from 表名;

2:查询指定字段
select `字段名1`,`字段名2`...... from 表名;

3:给字段名,和表取一个别名再输出查询结果
select `字段名1` as 别名 from 表名 as 别名;

4:函数,连接两个字段:concat(a,b)
eg:
select concat('姓名:',studentName) as 新名字 from student;

5:去重关键字:distinct,去掉重复数据
select distinct `字段名` from 表名;

6:查询系统的版本
select version();

7:用来计算
eg:
select 100*3-79 as 计算结果(自己起的名字);

where条件子句

作用:检索数据中符合条件的值;

++搜索的条件由一个或多个表达式组成,结果为布尔值++

数据库中的表达式:文本值,列,null,函数,计算表达式,系统变量…

扩展

逻辑运算符:
运算符语法描述
and &&a and b /a && b逻辑与
or lla or b /a ll b逻辑或
not !not a / !a逻辑非
模糊查询:比较运算符
运算符语法描述
is nulla is null如果操作符为null,结果为真
is not nulla is not null如果操作符不为null,结果为真
betweena between a and c若a在b和c之间,则结果为真
likea like bsql匹配,若a匹配b,则结果为真
ina in (a1,a2,a3…)假设a在a1,或者a2…其中的某一个值,结果为真
like结合 %表示零个或多个字符,_表示一个字符

查询所有姓刘的人
eg:
select `字段名` from 表名 where 字段名 like '刘%';

查询姓刘的两个字的人
eg:
select `字段名` from 表名 where 字段名 like '刘_';

查询姓刘的三个字的人
eg:
select `字段名` from 表名 where 字段名 like '刘__';

in表示具体一个或多个值
查询1001,1002,1003,1004号学员
eg:
select `字段名` from 表名 where 字段名 in(1001,1004);
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值