SQL语句

一、数据定义语句DDL

1、创建表
create table 表名(字段名 字段类型,...);

create table Student(
        name char(20),
        sex char,
        age int,
        id int,
        addr varchar(100));
        
--  查看当前数据库中所有表名
show tables;
--  查看表结构
desc 表名;
-- 查看创建该表的SQL语句
show create table 表名;        
2、复制表结构创建
create table 新表名 like 旧表名;    -- 不复制数据
3、修改表结构
-- 修改表名
rename table 旧表名 to 新表名;
-- 增加列
alter table 表名 add(新字段名 类型,...);
-- 修改列
alter table 表名 modify(原字段名 新类型名,...);
alter table 表名 modify(原字段名 新字段名 新类型名,...);
-- 删除列
alter table 表名 drop 字段名;
4、删除表
drop table 表名;    -- 数据、结构都删除
truncate 表名;  -- 删除数据,保留表结构

二、数据操作语句DML

1、插入数据
--  按照字段顺序插入数据
insert into 表名 values();
	-- 必须按照字段顺序,若想要插入空值,写null
-- 指定字段插入数据
insert into 表名(字段名) values(数据);
2、删除数据
delete from 表名 [where 条件];
        delete from student where id=1001;
        delete from student where name='xixi';
        -- SQL中所有数据比较可以直接用 = 进行

注意:如果不写where条件,则整张表删除

3、修改数据
update 表名 set 字段名=新数据 [where 条件];
        update student set id=8888 where name="xixi1";  

注意:如果不写where条件,则整张表全部修改

三、数据查询语句DQL

select 字段名1,字段名2,... from 表名;
--  * 在SQL中是通配符,能够通配代表所有字段

四、事务控制语句TCL

1、commit 提交

默认下,在数据库中,当某一个用户操作了某一条数据时,只有它自己能够查询到结果,其它用户不能立即查看到变化,只有执行了commit语句后,其他用户才能看到变化

例如:A向B转账1000块:
A -1000 B +1000 要么同时成功、要么同时失败

if(A余额>=1000)
{
	A -= 1000;
	if(检查B是否存在)
	{
		B += 1000;
		commit;
	}
	else
	{
		取消;
	}
}

使用commit的好处
①让数据库批量执行操作,提高数据库的操作效率
②降低磁盘的读写次数,提高磁盘寿命

2、MySQL中的自动提交
-- 查看当前登录用户是否开启自动提交
show variables like 'autocommit';
-- 设置当前用户的自动提交
set session autocommit=0 | 1;

注意:MySQL中自动提交默认都是开启的,通过SQL语句关闭只能当前临时生效,如果想要长期设置,需要修改配置文件

3、rollback

当用户对数据修改,如果发现有错误,可以使用rollback返回上一次commit时的数据状态

4、 设置保存点 savepoint

只使用rollback取消操作,会把全部的操作取消返回上一次commit状态,这样可能会浪费一部分有意义但不想commit的操作,可以设置savepoint,让rollback返回到指定的保存点

savepoint 标签名;        
insert into student 
	values('haha2','w',null,1002,null);
savepoint s1;
insert into student 
	values('haha2','w',null,1003,null);
savepoint s2;
insert into student 
	values('haha2','w',null,1004,null);
savepoint s3;
rollback to savepoint s2;   -- 返回到s2时的状态

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值