2205数据库笔记
数据库
-
学习数据库相关内容主要学习的就是如何对数据进行增删改查操作
DBMS
-
DataBaseManagementSystem,数据库管理系统,俗称数据库软件
-
常见的DBMS
-
MySQL: Oracle公司产品, 08年被Sun公司收购了,09年Sun公司被Oracle收购了,MySQL开源产品,市占率排名第一
-
Oracle: Oracle公司产品, 闭源产品,性能最强价格最贵, 市占率排名第二
-
SQLServer: 微软公司产品,闭源产品,市占率第三
-
DB2: IBM公司产品,闭源产品
-
SQLite:轻量级数据库
-
SQL
-
Structured Query Language,结构化查询语言, 通过此语言让程序员和数据库软件进行交流
刘德华 30 5000
insert into emp values("刘德华",30,5000);
如何连接数据库软件
-
检查数据库服务是否开启
-
windows:开始菜单中找到MySQL或MariaDB里面的 MySQL Client 点击进入
-
Linux或Mac OS, 打开终端输入 mysql -uroot -p 回车 输入密码 再回车
-
断开连接:
-
关了窗口
-
输入exit 回车
-
数据库和表的概念
-
在MySQL数据库软件中保存数据需要先建库再建表
数据库相关的SQL
-
查询所有数据库
-
格式: show databases; (显示已经存在的数据库 下四个是自带的 上三个自己创出来的)
-
创建数据库
-
格式: create database 数据库名 charset=utf8/gbk;
-
举例:
create database db1;
create database db2 charset=utf8;(字符集 设置为utf8)
create database db3 charset=gbk;(字符集 设置为gbk)
show databases;
-
查询数据库信息
-
格式: show create database 数据库名;
-
举例:
show create database db1;
show create database db2;
show create database db3;
-
删除数据库
-
格式: drop database 数据库名;
-
举例:
drop database db3;
drop database db2;
show databases;
-
使用数据库
-
使用完数据库之后再执行表相关或数据相关的SQL 否则会报错: No database selected
-
格式: use 数据库名;
-
举例:
use db1;
数据库相关练习题
-
创建 mydb1和mydb2 数据库 字符集分别为utf8和gbk
create database mydb1 charset=utf8;
create database mydb2 charset=gbk;
-
查询所有数据库检查是否创建成功
show databases;
-
检查两个数据库的字符集是否正确
show create database mydb1;
show create database mydb2;
-
先使用mydb2 再使用 mydb1
use mydb2;
use mydb1;
-
删除两个数据库 drop database mydb1; drop database mydb2;
表相关SQL
-
执行表相关的SQL语句必须使用了某个数据库否则会报错(在数据库的范围里执行表内容)
-
创建表
-
格式: create table 表名(字段1名 类型,字段2名 类型) charset=utf8/gbk;
-
举例:
create table person(name varchar(50),age int);
create table car(name varchar(50),type varchar(5),price int);
create table student(name varchar(50),age int,chinese int,math int,english int)charset=gbk;
-
查询所有表
-
格式: show tables;
-
-
查询表信息
-
格式: show create table 表名;
-
举例:
show create table person;
show create table student;
-
查询表字段信息
-
格式: desc 表名;
-
删除表
-
格式: drop table 表名;
-
举例:
drop table car;
show tables;
-
修改表名
-
格式: rename table 原名 to 新名;
-
-
添加表字段
-
最后面添加格式: alter table 表名 add 字段名 类型;
-
最前面添加格式: alter table 表名 add 字段名 类型 first;
-
-
在xxx字段的后面添加: alter table 表名 add 字段名 类型 after xxx;
-
-
举例:
create database db4;
use db4;
create table teacher(name varchar(20));
alter table teacher add age int;
alter table teacher add id int first;
alter table teacher add salary int after name;
-
删除表字段
-
格式: alter table 表名 drop 字段名;
alter table teacher drop salary;
-
修改表字段
-
格式: alter table 表名 change 原名 新名 新类型;
-
alter table teacher change age salary int;
表相关练习题:
-
创建数据库mydb4 字符集utf8并使用
create database mydb4 charset=utf8;
use mydb4;
-
创建员工emp表 有名字字段
create table emp(name varchar(50));
-
添加表字段: 最后添加salary 最前面添加id , salary前面添加age年龄
alter table emp add salary int;
alter table emp add id int first;
alter table emp add age int after name;
-
删除age字段
alter table emp drop age;
-
修改表名为e
rename table emp to e;
-
删除表
drop table e;
-
删除数据库
drop database mydb4;
表相关练习题:
-
创建数据库mydb3 字符集gbk 并使用
create database mydb3 charset=gbk;
use mydb3;
-
创建t_hero英雄表, 有名字和年龄字段 默认字符集
create table t_hero(name varchar(20),age int);
-
修改表名为hero
rename table t_hero to hero;
-
查看表的字符集
show create table hero;
-
查询表字段
desc hero;
6. 删除表 drop table hero;
7. 删除数据库 drop database mydb3;
数据相关SQL
-
执行数据相关的SQL语句必须使用了某个数据库并且已经创建好了保存数据的表
create database db5 charset=utf8;
use db5;
create table person(name varchar(50),age int);
-
插入数据
-
全表插入格式: insert into 表名 values(值1,值2);
-
指定字段插入格式: insert into 表名(字段1名,字段2名) values (值1,值2);
-
举例:
insert into person values("tom",30);
insert into person(name) values('jerry');
-
批量插入:
insert into person values("liubei",20),("guanyu",18),("zhangfei",15);
insert into person(name) values('libai'),('liucangsong');
-
插入中文:
insert into person values("刘德华",17);
-
如果执行上面的SQL语句报以下错误, 执行 set names gbk; 之后再次执行
-
(可能程序版本 编码不匹配)
-
查询数据
-
格式:select 字段信息 from 表名 where 条件;
-
举例:
select name from person;
select name,age from person;
select * from person;
select * from person where age>25;
select age from person where name='tom';
select name from person where age=15;
-
修改数据
-
格式: update 表名 set 字段名=值,字段名=值 where 条件;
-
举例:
update person set age=50 where name='libai';
update person set name='刘备' where age=20;
-
删除数据
-
格式: delete from 表名 where 条件;
-
举例:
delete from person where name='刘德华';
delete from person where age<20;
delete from person where age is null;
综合练习题:
1. 创建数据库day1db 字符集utf8并使用
2. 创建t_hero表, 有name字段 字符集utf8
3. 修改表名为hero
4. 最后面添加价格字段money, 最前面添加id字段, name后面添加age字段
5. 表中添加以下数据: 1,李白,50,6888 2,赵云,30,13888 3,刘备,25,6888
6. 查询价格为6888的英雄名
7. 修改刘备年龄为52岁
8. 修改年龄小于等于50岁的价格为5000
9. 删除价格为5000的信息
10. 删除表, 删除数据库