MySQL操作数据-增删改查

MySQL数据操作-增删改查

1、操作表及字段

书写规范(注意点):

  • 所有符号全部使用英文
  • 表的名称、字段尽量使用 `` (反引号)包含起来
  • 注释使用 – 或者 /* */
  • 个人建议 sql关键字使用小写,方便阅读

1.1、创建表(重点)

语法:

create table [if not exists] `表名`(
    `字段名` 列类型 [属性] [索引] [注释] , 
    	......	
    `字段名` 列类型 [属性] [索引] [注释] 
)[表类型][表的字符集设置][表的注释]

实列:

-- 注意:每段最后需要逗号",",逗号需要是英文字符
-- 创建一个名为t_student的表
create table if not exists `t_student`(
		`id` int(4) not null auto_increment comment '学号',
		`name` varchar(30) not null default '匿名' comment '姓名',
		`pwd` varchar(20) not null default '123' comment '密码',
		`sex` varchar(2)  not null default '男' comment '性别',
		primary key (`id`)
)engine=innodb default charset=utf8

1.2、数据表类型

MYSIAMINNODB
事务支持不支持支持
数据行锁定不支持,数据表锁定支持
外键约束不支持支持
全文索引支持不支持,数据库5.6版本及以后支持
表空间大小较小较大,约为MYSIAM的2倍
  • MYISAM 节约空间 ,速度较快

  • INNODB 安全性高,事务处理,多表多用户操作

    show create table `表名` -- 显示该表创建语法
    show create database `数据库名`  -- 显示该数据库创建语法
    desc `表名` -- 显示该表结构
    

1.3、修改表

-- 修改表名   alter table 旧表名 rename as 新表名
alter table `t_student` rename as `t_stu`

1.4、表的字段操作

-- 添加表的字段   alter table 表名 add 字段名 列属性
alter table `t_stu` add `age` int(11)
-- 修改表的字段(重命名,修改约束)
alter table `t_stu` modify age varchar(11)  -- 修改约束
alter table `t_stu` change age  age1 int(1) -- 重命名并改约束  age旧字段名  age1 新字段名
-- 删除表的字段
alter table `t_stu` drop age    -- t_stu表名 age 一个字段名

1.5、删除表

drop table [if exists] teacher   --表存在就删除

所有的创建和删除操作尽量加上判断,以免报错

2、MySQL数据管理

2.1、外键(了解)

-- 添加外键
-- 语法: alter table 主表名 add constraint 约束名 foreign key(`主键中作为外键的列`) references `从表名`(`从表字段`)
alter table `t_test` 
add  constraint `FK_sid` foreign key(`sid`) references `t_stu`(`id`)

上述的操作都是物理外键,数据库级别的外键,不建议使用!(避免数据库过多造成困扰)

2.2、DML(数据库操作语言)(重点,全部记住)

2.2.1、添加

insert 命令

-- 插入语句(添加)        注:值要与字段一一对应
-- 语法:insert into 表名([字段1,字段2])  values('值1','值2')[,('值1','值2')]
insert into `student`(`id`,`name`,`age`)  values(1,'张三',19)

-- 如果主键自增我们可以设置主键值为null (如果不写表的字段,它会一一匹配)  
insert into `student` values(null,'张三',19)

-- 一次插入多行值
insert into `student`(`id`,`name`,`age`)  values(1,'张四',19),(2,'李军',19)
2.2.2、修改

update命令

-- 修改语句
-- 语法:update `表名` set `字段名`='值'[,`字段名`='值'] where [条件];  注意:要附带条件
-- 上方值可以是具体值,也可以是个函数
update `student` set `name`='dzh' where id=1;
-- 不指定条件,所有字段都会改变   注意:严禁这样操作,等于删库
update `student` set `name`='dzh2'
-- 修改多个属性,逗号隔开
update `student` set `name`='dzh',`age`=20 where id=1;

-- current_time 是一个函数,值可以为函数
update `student` set `name`=current_time where id=1;

where子句运算符,可用于增删改查

where操作符含义
=等于
<>或者!=不等于
>和<大于和小于
>=和<=不小于和不大于
between…and…在某个范围间, 列如 where id between 2 and 5
and我或你 相当于&& 列如5>1 and 1>2 ==> false
or我或你 相当于|| 列如5>1 or 1>2 ==> true
-- 在某个范围内修改数据
update `student` set `name`='zh_id2——5' where `id` between 2 and 5;
-- 通过多条件定位数据(假设所有age都为19)
update `student` set `name`='zh_id3' where `age`=19 and `id`=3;
2.2.3、删除

delete命令

-- 删除语句
-- 语法:delete from `表名` [where 条件]
-- 清空表 不建议使用,可参考下文truncate命令
delete from `student`
-- 删除指定数据
delete from `student` where `id`=1

truncate 命令

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

-- 清空表
-- 语法:truncate `表名`
truncate `student`

delete 和truncate 区别

delete命令truncate命令
删除数据及表结构
自增列计数器归零不能
事务影响影响不影响

了解:delete删除问题,重启数据库,现象

  • InnoDB 自增列会从1开始,(存在内存中,断电即失去)
  • MYISAM 继续从上一个自增量开始(存在文件中,不会丢失)
2.2.4、查询

注:查询属于DQL(数据库查询语言),具体可参考我的篇文章:DQL MySQL查询数据

select 命令

-- 查询student表所有数据
-- 语法:select 字段名 from 表名
select * from `student`
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值