课程介绍:
刘国斌 QQ: 77331283
-
数据库: 学习如何对数据进行增删改查 4
-
Web前端: 学习如何开发页面 7
-
SpringBoot: 学习如何解析请求 以及如何做出响应 9
数据库
-
学习数据库就是学习如何对数据进行增删改查操作
-
DBMS: DataBase Management System 数据库管理系统(数据库软件)
-
常见的DBMS:
-
MySQL: Oracle公司产品, 09年MySQL被Sun公司收购, 10年Sun公司被Oracle收购, MariaDB(原MySQL团队公司开发的) , 市占率排名第一 , 开源
-
Oracle: Oracle公司产品, 闭源,价格最贵,性能最强 , 市占率排名第二
-
SQLServer: 微软公司产品, 闭源 , 市占率排名第三
-
DB2: IBM公司产品
-
SQLite: 轻量级数据库,主要应用在移动设备或嵌入式设备中
-
SQL语言(Structured Query Language)
-
Structured Query Language结构化查询语言
-
作用: 负责程序员和数据库软件进行交流
-
-
举例:
insert into user values('tom','123456');
select username,password from user;
delete from user where name='tom';
update user set name='jerry' where name='tom';
电脑上安装数据库软件(MySQL或MariaDB)
-
安装步骤参见苍老师文档服务器
安装教程:Windows MySQL安装配置 http://doc.canglaoshi.org/doc/mysql.html
注意:如果之前已经安装了MySQL或者MariaDB其中一个,此时安装数据库名和端口号要修改,port可以由3306设置为3307。
下载Git工程 里面有笔记
https://gitee.com/teduliu/mysql05.git
链接数据库
-
确保数据库中已经安装了数据库软件
-
找到MySQL Client 打开
-
退出链接: exit;
-
链接指令(登录): mysql -uroot -p
-
如果是Linux或mac os 打开终端 输入上面的内容: mysql -uroot -p
数据库和表的概念
-
如果需要在MySQL里面保存数据, 需要先建库,再建表, MySQL里面可以有n个数据库, 一个数据库里面可以有n张表, 一张表里面可以有n条数据。
-
即:数据库---表---数据
数据库格式:
-
以分号结尾
-
不区分大小写
-
可以包含空格和换行
和数据库相关的SQL语句
-
查询所有数据库
-
格式: show databases;
-
创建数据库
-
格式: create database 数据库名 charset=utf8/gbk; 或 create database 数据库名 character set utf8;
-
举例:
create database db1;
create database db2 charset=utf8;
create database db3 charset=gbk;
show databases;
-
查询数据库信息
-
格式: show create database 数据库名;
-
举例:show create database db1;
-
删除数据库
-
格式: drop database 数据库名;
-
举例:
drop database db3;
drop database db2;
-
使用数据库
-
在进行表相关或数据相关的操作之前必须使用了某一个数据库
-
格式:use 数据库名;
-
举例:use db1;
练习题:
-
创建mydb1和mydb2数据库 字符集第一个是utf8,第二个是gbk
create database mydb1 charset=utf8;
create database mydb2 charset=gbk;
-
查询所有数据库检查是否创建成功
show databases;
-
分别查询mydb1和mydb2 检查字符集是否正确
show create database mydb1;
show create database mydb2;
-
先使用mydb1,再使用mydb2;
use mydb1;
use mydb2;
-
删除两个数据库
drop database mydb1;
drop database mydb2;
表相关的SQL语句
-
创建表
-
格式: create table 表名(字段1名 类型,字段2名 类型)charset=utf8或gbk;
-
举例:
create table person(name varchar(50));
create table student(name varchar(50),age int)charset=utf8;
create table hero(name varchar(50),type varchar(30),price int)charset=gbk;
-
-
查询所有表
-
格式: show tables;
-
-
查询表信息
-
格式: show create table 表名;
-
举例:show create table hero;
-
-
查询表字段
-
格式: desc 表名;
-
举例:desc hero;
-
-
删除表
-
格式: drop table 表名;
-
举例:
drop table hero;
drop table student;
-
练习题:
-
创建mydb3数据库,指定字符集utf8,并使用
create database mydb3 charset=utf8;
use mydb3;
-
创建hero英雄表,设置名字和价格字段、字符集utf8
create table hero(name varchar(50),price int)charset=utf8;
-
查询所有表检查是否创建成功
show tables;
-
查询hero表字符集
show create table hero;
-
查看表字段
desc hero;
-
删除hero表
drop table hero;
-
删除数据库mydb3
drop database mydb3;
表相关SQL(续)
-
修改表名
-
格式: rename table 原名 to 新名;
-
举例:rename table hero to t_hero;
-
-
添加表字段
-
最后添加格式: alter table 表名 add 字段名 类型;
-
最前面添加格式: alter table 表名 add 字段名 类型 first;
-
在xxx字段后面添加: alter table 表名 add 字段名 类型 after xxx;
-
举例:
create table emp(name varchar(50));
alter table emp add age int;
alter table emp add id int first;
alter table emp add salary int after name;
-
-
删除表字段
-
格式: alter table 表名 drop 字段名;
-
举例:alter table emp drop salary;
-
-
修改表字段
-
格式: alter table 表名 change 原名 新名 新类型;
-
举例:
alter table emp change age salary int;
alter table emp change salary job varchar(10);
-
表相关SQL回顾:
-
创建: create table t1(name varchar(20),age int)charset=utf8/gbk;
-
查询所有: show tables;
-
查询表信息: show create table t1;
-
表字段; desc t1;
-
删除表 drop table t1;
-
修改表名: rename table t1 to t2;
-
添加表字段; alter table t1 add 字段名 类型 first/after xxx;
-
删除表字段: alter table t1 drop 字段名;
-
修改表字段: alter table t1 change 原名 新名 新类型;
练习题:
-
创建数据库mydb4,指定字符集utf8,并使用
create database mydb4 charset=utf8;
use mydb4;
-
创建teacher表,字段只有名字name,指定字符集utf8
create table teacher(name varchar(50))charset=utf8;
-
添加表字段: 最后面添加age 最前面添加id age前面添加salary工资
alter table teacher add age int;
alter table teacher add id int first;
alter table teacher add salary int after name;
-
删除age字段
alter table teacher drop age;
-
修改表名为 t
rename table teacher to t;
-
删除表
drop table t;
-
删除数据库mydb4
drop database mydb4;
数据相关SQL
create database db2 charset=utf8;
use db2;
create table person(id int,name varchar(50),age int)charset=utf8;
-
插入数据
-
全表插入格式: insert into 表名 values(值1,值2,值3);
-
注意此处是values,表示可以插入多条数据,当为value时只能插入一条数据
-
-
指定字段插入格式: insert into 表名(字段1名,字段2名) values(值1,值2);
-
举例:
insert into person values(1,"tom",18); //全表插入
insert into person(name,age) values('jerry',20); //指定字段插入,多个字段之间用,隔开
insert into person(name)values("Lucy");
-
-
批量插入数据: 在values后面写多组值
insert into person values(2,'lilei',10),(3,'hanmeimei',20);
insert into person(name) values('liubei'),('guanyu');
-
中文问题:
insert into person values(5,'刘德华',50);
-
如果执行上面包含中文的SQL语句出现下面的提示, 执行set names gbk;
-
-
查询数据
格式: select 字段信息 from 表名 where 条件;
举例:
select name from person; //查询person表里面所有的名字
select name from person where age>30;
select name,age from person where name='tom';
select * from person; //查询所有数据的所有字段信息
-
修改数据
-
格式: update 表名 set 字段名=值,字段名=值 where 条件;
-
举例:
update person set age=66 where name='Lucy';
update person set name='张学友' where age=20;
update person set age=100 where age is null;//注意查询条件的参数为NULL时,要在条件中写:字段名 is null
-
-
删除数据
-
格式: delete from 表名 where 条件;
-
举例:
delete from person where name='tom';//删除表中指定条件的数据
delete from person where age<30;
delete from person;//删除表中所有数据
-
数据相关练习
1. 创建数据库mydb5 字符集utf8并使用
create database mydb5 charset=utf8;
use mydb5;
2. 创建hero表 字段有: id ,name , type(类型的意思 字符串)
create table hero(id int,name varchar(50),type varchar(10))charset=utf8;
3. 插入以下数据:
insert into hero values
(1,'荆轲','刺客'), (2,'诸葛亮','军师'),
(3,'关羽','战士'), (4,'黄忠','射手');
4. 修改诸葛亮为法师
update hero set type='法师' where name='诸葛亮';
5. 给表添加价格money字段 alter table hero add money int;
6. 修改id小于5的价格为6888
update hero set money=6888 where id<5;
7. 修改法师为打野
update hero set type='打野' where type='法师';
8. 修改黄忠为五虎上将
update hero set name='五虎上将' where name='黄忠';
9. 删除id等于5的数据
delete from hero where id=5;
11. 修改表名为heros
rename table hero to heros;
12. 删除money字段
alter table heros drop money;
13. 删除所有数据 ,删除heros表
delete from heros;
drop table heros;
晚课任务:
-
创建汽车car表 字段有: id ,name , type(类型的意思 字符串)
create table car(id int,name varchar(50),type varchar(40))charset=utf8;
-
插入以下数据: 1 五菱宏光 面包车 , 2 保时捷911 跑车 , 3 蔚来ES8 SUV, 4 小鹏p7 纯电轿车
insert into car values(1,'五菱宏光','面包车'),(2,'保时捷911','跑车'),(3,'蔚来ES8','SUV'),(4,'小鹏p7','纯电轿车');
-
修改五菱宏光为敞篷跑车
update car set type='敞篷跑车' where name='五菱宏光';
-
给表添加价格money字段
alter table car add money int;
-
修改id小于3的价格为10000
update car set money=10000 where id<3;
-
修改蔚来ES8 为纯电SUV
update car set type='纯电SUV' where name='蔚来ES8';
-
修改保时捷911价格为20000
update car set money=20000 where name='保时捷911';
-
删除id等于4的数据
delete from car where id=4;
-
修改所有车的价格为888
update car set money=888;
-
修改表名为cars
rename table car to cars;
-
删除money字段
alter table car drop money;
-
删除所有数据
delete from car;
-
删除表
drop table car;
-
删除数据库
drop database mydb5;
HeidiSQL使用:
打开页面:
点击“新建”,出现一个未命名的会话标题,右侧输入用户名:root,密码:root,端口选择3306,打开(由于之前安装了MySQL占用了端口3306,此处输入MariaDB端口号3307)
选择Yes
生成页面如下:
进行SQL代码编写:
主机显示每个数据库的信息:
数据库:显示当前数据库下所包含的数据
Table:显示表字段的详细信息
数据:查看表中的数据
查询:进行SQL代码编写
可通过在显示页面上点击数据库或表进行定位,通过单击右键或者上面的代码编辑工具进行对数据库和表进行操作,左下侧对应相应SQL代码: