sql基本认知

基本语法
创建数据库
create database database-name
删除数据库
drop database database-name
创建新表
create table tablename(col1 type1 [not nul] [primary key],col2 type2 [not null] ...)
根据已有的表创建新的表:

使用旧表创建新表,只有表结构,不会同步数据:

create table table_new like tab_old
-- 这个语法测试没通过
create table table_new as select col1,col2...from tab_old definition only
删除表
drop table tablename
增加一列
alter table tablename add column col type
--eg
alter table demo_event add column client_ip VARCHAR(50)
添加主键
alter table tablename add primary key(col)
--eg
alter table demo_event add primary key(id)
创建索引
create [unique] index inxname on tablename(col...)
--eg
create unique index id_index on demo_event(id)
删除索引
drop index idxname on tablename
--eg
drop index id_index on demo_event
创建视图
create view viewname as select statement
--eg
create view id_view as select id ,name from demo_event where id <2
删除视图
drop view viewname
--eg
drop view id_view
几个简单的sql语句
条件查询:
select * from tablename where condition
--eg
select * from demo_event where id <2
插入数据
insert into tablename(col1,col2...) values(vaue1,vaule2...)
--eg
insert into demo_event(`id`, `name`, `limit`, `status`, `address`, `start_time`, `create_time`,`client_ip`) values(2,"zhu",200, 1, '广州天河', '2022-07-04 14:36:43', '2022-07-04 14:36:45', '192.168.1.1')
删除数据
delete from tablename where condition
--eg
delete from demo_event where id =3
更新数据
update tablename set col1=value1 , col2=value2... where condition
--eg
update  demo_event set `address`='深圳' ,`name` = '一加发布会' where id = 2
模糊查询
select * from tablename where col like '%value%'
--eg
select * from demo_event where address like '%深圳%'
排序
select * from tablename order by col [DESC]
--eg
select * from demo_event where address like '%深圳%' order by id desc
总数
select count(totalcount) from tablename
--eg
select count(`status`) from demo_event where `status`=1
求和
select sum(col) as sumvalue from tablename
--eg
select sum(`limit`) as sumvalue from demo_event where `limit` > 1
平均
select avg(col) as avgvalue from tablename
--eg
select avg(`limit`) as avgvalue from demo_event where `limit` > 1
最大值
select max(col) as maxvalue from tablename
--eg
select max(`limit`) as max_limit from demo_event where `limit` > 1
最小值
select min(col) as minvalue from tablename
--eg
select min(`limit`) as min_limit from demo_event where `limit` > 1
高级查询运算词

左连接、右连接和内连接

左连接(left join):以左表为主表,展示所有满足条件的左表数据,如果右表为空,则展示null

-- eg
select * table_A A left join table_B B on B.no = A.id
where A.stauts = 2

右连接(right join):以右表为主表,展示所有满足条件的右表数据,如果左表的数据为空,则展示null

-- eg
select * table_A right join table_B on B.no = A.id
where A.status =2

内连接(inner join):只有左右两表都满足条件才展示。

-- eg
select * table_A inner join table_B on B.no = A.id
where A.status =2

分组查询:group by:使用group by 之后,需要过滤数据,只能使用having语句(在group by分组之后过滤),where语句(在分组前过滤)对分组不生效;注:使用group by之后,select 展示的列必须是聚合函数或者是在group by分组的列

-- eg
select * from table_A A where A.status=2 
group by A.class   having  A.sex ="男"

排序:order by 升序:asc 降序:desc

-- eg
select * from table_A 
order by id desc

限制数量:limit

---- 取一千条数据
select * from table_A 
where class = "一班" limit 1000

---- 综合使用:取总分超过200分的前100名
select sno,sum(score) from sc
group by sno
having sum(score) >200
order by sno desc
limit 100
事务的四大特性(ACID)

原子性:

整个事务是一体的,完成动作看成一个整体,没有部分完成的动作。全部动作完成事务才结束,否则事务回滚,已完成的部分动作失效,数据不发生改变。

一致性:

执行结果必须是使数据库从一个一致性状态变到另一个一致性状态。因此数据库只包含成功事务提交的结果时,就说数据库处于一个一直的状态。也就是说事务前后的数据的状态是只有初始和整个事务成功后的状态,不存在部分数据状态不一致

隔离性:

一个事务的执行不能被其他事务干扰, 即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间互相干扰。

持久性:

指一个事务一旦提交,对数据的改变是永久的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值