MySQL基本操作

本文介绍Workbench中SQL脚本的执行技巧,包括快捷键使用,以及通过实例展示数据库设计过程,涵盖数据库和数据表创建、记录插入、索引创建及选课系统的构建。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Workbench常用快捷键
1、执行整篇sql脚本:Ctrl + Shift + Enter
2、执行当前行: Ctrl + Enter
3、注释/取消注释: Ctrl + /
4、格式化sql语句: Ctrl + B

# 创建数据库
create database choose; 
show databases;
show create database choose;

# 创建数据表
use choose;
set default_storage_engine = InnoDB;
create table my_table(
today datetime,
name char(20)
);
show tables; 

# 查看表结构
desc my_table;

# 插入表记录
use choose;
insert into my_table values(now(), 'a');
insert into my_table values(now(), 'a');
insert into my_table values(now(), NULL);
insert into my_table values(now(), ' ');
select * from my_table;

use choose ;
alter table my_table engine = InnoDB;
create table second_table(
today datetime,
name char(20)
);

use choose;
create table today(
t1 datetime,
t2 timestamp
);

insert into today values(now(), now());
insert into today values(null, null);

show variables like 'time_zone';
select * from today;
set time_zone = '+12:00';
show variables like 'time_zone';

# 有问题
use choose;
create table person(
sex enum('男', '女'),
interest set('听音乐', '看电影', '购物', '旅游', '游泳', '游戏')
);
insert into person values('男', '看电影, 游泳, 听音乐');

select * from person;


# 创建选课系统

use choose;
create table teacher(
teacher_no char(10) primary key,
teacher_name char(10) not null,
teacher_contact char(20) not null
)engine = InnoDB default charset = gbk;

create table classes(
class_no int auto_increment primary key,
class_name char(20) not null unique,
department_name char(20) not null
)engine = InnoDB default charset = gbk;

create table course(
course_no int auto_increment primary key,
course_name char(10) not null,
up_limit int default 60,
description text not null,
status char(6) default '未审核',
teacher_no char(10) not null unique,
constraint course_teacher_fk foreign key(teacher_no) references teacher(teacher_no)
)engine = InnoDB default charset = gbk;

create table student(
student_no char(11) primary key,
student_name char(10) not null,
student_contact char(20) not null
class_no int,
constraint student_class_fk foreign key(class_no) references classes(class_no)
)engine = InnoDB default charset=gbk;

create table choose(
choose_no int auto_increment primary key,
student_no char(11) not null,
course_no int not null,
score tinyint unsigned,
choose_time datetime not null,
constraint choose_student_fk foreign key(student_no) references student(student_no),
constraint choose_course_fk foreign key(course_no) references course(course_no)
)engine = InnoDB default charset = gbk;

# 创建索引
create table book(
isbn char(20) primary key,
name char(100) not null,
brief_introduction text not null,
price decimal (6, 2),
publish_time date not null,
unique index isbn_unique (isbn),
index name_index (name(20)),
fulltext index brief_fulltext (name, brief_introduction),
index complex_index (price, publish_time)
)engine = MyISAM default charset = gbk;

# 在现有表上创建索引
alter table course add fulltext index description_fulltext(description);
create fulltext index description_fulltext on course (description);

 
# 插入记录
use choose;
insert into teacher values('001', '张老师', '11000000000');
insert into teacher values('002', '李老师', '12000000000');
insert into teacher values('003', '王老师', '13000000000');

# 向指定字段插入记录
use choose ;
insert into classes(class_no, class_name, department_name) values(null, '2010自动化1班','机电工程');
insert into classes(class_no, class_name, department_name) values(null, '2010自动化2班','机电工程');
insert into classes(class_no, class_name, department_name) values(null, '2010自动化3班','机电工程');

use choose;
insert into course values(null, 'java语言程序设计', default, '暂无', '已审核', '001');
insert into course values(null, 'MySQL数据库', 150, '暂无', '已审核', '002');
insert into course values(null, 'java语言程序设计', 230, '暂无', '已审核', '003');

# 批量插入多条语句
use choose;
insert into student values
('2010001', '张三', '15000000000', 1),
('2010002', '李四', '16000000000', 1),
('2010003', '王五', '17000000000', 3), 
('2010004', '马六', '18000000000', 2),
('2010005', '田七', '19000000000', 2);
select * from student;

内容概要:文章详细介绍了ETL工程师这一职业,解释了ETL(Extract-Transform-Load)的概念及其在数据处理中的重要性。ETL工程师负责将分散、不统一的数据整合为有价值的信息,支持企业的决策分析。日常工作包括数据整合、存储管理、挖掘设计支持和多维分析展现。文中强调了ETL工程师所需的核心技能,如数据库知识、ETL工具使用、编程能力、业务理解能力和问题解决能力。此外,还盘点了常见的ETL工具,包括开源工具如Kettle、XXL-JOB、Oozie、Azkaban和海豚调度,以及企业级工具如TASKCTL和Moia Comtrol。最后,文章探讨了ETL工程师的职业发展路径,从初级到高级的技术晋升,以及向大数据工程师或数据产品经理的横向发展,并提供了学习资源和求职技巧。 适合人群:对数据处理感兴趣,尤其是希望从事数据工程领域的人士,如数据分析师、数据科学家、软件工程师等。 使用场景及目标:①了解ETL工程师的职责和技能要求;②选择适合自己的ETL工具;③规划ETL工程师的职业发展路径;④获取相关的学习资源和求职建议。 其他说明:随着大数据技术的发展和企业数字化转型的加速,ETL工程师的需求不断增加,尤其是在金融、零售、制造、人工智能、物联网和区块链等领域。数据隐私保护法规的完善也使得ETL工程师在数据安全和合规处理方面的作用更加重要。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值