标题
SQL 实战(一)
课程价值
- 了解数据库基础知识
- 掌握 SQL 基础语法
大纲
- 数据库基础
- SQL 基础
时长
90分钟
PPT
https://pdf.ceshiren.com/lg2/SQL实战1
SQL 练习环境
- host: sql.tech.ceshiren.com
- port: 3306
- username: hogwarts_stu
- password: hogwarts_stu
实战内容
mysql 搭建
docker run --name mysql -v $PWD/mysql:/var/lib/mysql -p 9999:3306 -e MYSQL_ROOT_PASSWORD=hogwarts -d mysql:5.7
mysql 连接工具
- 官方工具:workbench https://dev.mysql.com/downloads/workbench/
- phpMyadmin
- navicat
- 命令行连接
workbench 建立链接
命令行连接方式
mysql -h sql.tech.ceshiren.com -uhogwarts_stu -p
// 输入密码,回车
show databases;
use 数据库名;
show tables;
// 执行 SQL 语句
exit
测试数据库
- github地址:GitHub - datacharmer/test_db: A sample MySQL database with an integrated test suite, used to test your applications and database servers
- 网盘链接:百度网盘 请输入提取码 密码: vwn0
数据导入命令
// 去要先进入employees.sql所在的目录,然后再执行命令
mysql -h 127.0.0.1 -uroot -p < employees.sql
SQL 基础
DDL
– 创建 hogwarts_d1 数据库
create database hogwarts_d1 default charset utf8 collate utf8_bin;
– 在 hogwarts_d1 数据库中创建 stu 表
use hogwarts_d1;
create table stu (
id
int(10) not null primary key,
name
varchar(10) default null
) engine=InnoDB default charset=utf8 collate=utf8_bin;
– 复制 stu 表
create table stu_sch like stu;
– 添加一个字段 cource
alter table stu add cource int;
– 修改字段 cource 的类型为 varchar
alter table stu modify column cource varchar(3);
– 修改 stu 表名为 stu_n1
alter table stu rename stu_n1;
– 删除 stu_n1 中的数据
truncate table stu_n1;
– 删除 stu_n1 表
drop table stu_n1;
– 删除 hogwarts_d1 数据库
drop database hogwarts_d1;
DML
增加:
INSERT INTO 表名(字段1, 字段2…) VALUES(‘值1’, ‘值2’, …);
删除:
DELETE FROM 表名 WHERE 条件;
更新:
UPDATE 表名 SET 字段1=‘值1’, 字段2=‘值2’ WHERE 条件;
查询:
SELECT * FROM 表名;
基本增删改查
– 增加部门:在部门表 departments 中增加一条部门信息
insert into departments(dept_no,dept_name) values(‘d111’,‘hogwarts’);
– 更新部门信息:修改刚才新增的部门名字为 python_lg_2
update departments set dept_name=‘python_lg_2’ where dept_no=‘d111’;
– 删除新增的部门
delete from departments where dept_no=‘d111’;
– 查询部门表中的信息
select * from departments;
基本查询语法
基本查询:SELECT * FROM 表名;
字段查询:SELECT 字段名 FROM 表名;
条件查询:SELECT * FROM 表名 WHERE 条件;
排序:SELECT * FROM 表名 ORDER BY 字段名 DESC;
分页:SELECT * FROM 表名 LIMIT 10 OFFSET 0;
去重:SELECT DISTINCT 字段名 FROM 表名;
基本查询练习
– 查询部门表中的信息
select * from departments;
– 查询都有哪些部门
select dept_name from departments;
– 查询部门编号为d003的部门信息
select * from departments where dept_no=‘d003’;
– 查询员工的编号和入职日期,按照员工入职日期从晚到早排序
select emp_no, hire_date from employees order by hire_date desc;
– 分页查看员工信息,每页展示10条
select * from employees limit 10 offset 0;
select * from employees limit 20,10;
– 查看公司中员工的姓氏
select distinct last_name from employees;
课后任务
- 把测试数据库导入本地 mysql