数据库常用的SQL

前言

本片博客使用mysql数据库进行数据操作,使用Navicat for mysql 这个IDE进行可视化操作。每个SQL语句都是亲身实验验证的,并且经过自己的思考的。能够保证sql语句的可运行性。
sql语句的命令不区分大小写,但储存的数据是区分大小写的。在这里我们统一使用英文小写进行命令编辑。如果喜欢大写的可以使用IDE编辑器的一键美化功能,可以统一转化为大写。并且会对你的sql语句进行美化,例如自动换行等。
image

创建删除(数据库、表)


  • 创建数据库

create database <数据库名>;

-- 创建名为dbtest数据库
create database dbtest;
use dbtest;

  • 创建表
    create table 表名(字段);
    • comment 是注释的意思
    • primary key(stu_id) 把stu_id设置为主键,主键的设置可以细分为三种方式,后面再写
    • ENGINE=InnoDB 把储存引擎设置为InnoDB
    • charset=utf8mb4 编码格式设置utf8mb4,utf8mb4是超集合,完全兼容utf8,不需要做特殊转换
-- 创建表
create table `t_student`(
`stu_id` char(12) not null COMMENT '学生id',
`stu_name` varchar(12) not null comment '学生姓名',
`stu_sex` tinyint(2) unsigned default null comment '性别:0(男),1(女)',
`stu_age` tinyint(3) unsigned DEFAULT NULL COMMENT '年龄',
PRIMARY KEY (`stu_id`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='学生基本信息表';

mysql中的数据类型
类型 包含
数值类型 整数类型(TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT)、浮点数类型(float、double)、定点数类型(decimal)
日期/时间类型 YEAR、TIME、DATE、DATETIME、TIMESTAMP
字符串类型 CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM 和 SET 等
二进制类型 BIT、BINARY、VARBINARY、TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB

增加

插入数据
插入已知行(少数行数据
  • 使用insert values 插入数据
-- 插入数据 insert  values
insert into `t_student` 
(`stu_id`,`stu_name`,`stu_sex`,`stu_age`)
values(1,"hjk","0",18);
  • 使用 insert set 插入数据
-- insert set
insert into `t_student`
set `stu_id`=3,`stu_name`='hjk',`stu_sex`=1,`stu_age`=18
  • 从另一个表查询的数据插入新表 insert from,这个查询出来的数据要与插入到表里的字段有对应关系,例如查寻出来的数据如果有字段"stu_address"你如果直接插入就会不成功!
insert into `t_student` select `stu_id`,`stu_name`,`stu_sex`,`stu_age` from `t_student01`;
插入很多行数据(10万条)

使用存储过程插入数据,在我们做实验时可能需要很多数据进行操作,但是一条一条手动加时不太容易实现的,我们可以使用其他方法插入数据(例如:连接jdbc,进行操作),但是这个插入的是几乎相同的数据,在这里我们使用存储过程并通过调用存储过程实现插入大量数据!

  • 创建存储过程
    • delimiter ## 定义结束符号,##是你自定义的符号可以是其他的符号(如:$、%、&),在最后end不要忘了写。
    • 其实中间就是一个while循环,变量为i。
    • 可以在定义的时候输入参数,这个我没有定义。

-- 插入大量数据,使用存储过程
delimiter ##
create procedure insert_pro()
begin
declare i int default 4;
while i <=100000 do
insert into `t_student` values(i,'hjk','0','20');
set i = i+1;
end while;
end ##
  • 使用存储过程,创建存储过程后并没有效果,只有使用后才有效果

-- 使用存储过程
call insert_pro();
  • 删除存储过程</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

H `K

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值