one , mySQL

1.1 什么是数据库
按照特殊格式存储数据的仓库,方便我们存取操作
1.2 关系型数据库管理系统
RDBMS RelationShip DataBase Management System
应用软件–mysql:操作仓库、表、记录(信息)
1.3 实体和表
关系一个实体对应一张表一个对象对应一条记录
1.4 常见数据库
java语言中:MySQL、Oracle、DB2(银行系统)
二 数据库安装和使用【知道】
2.1 安装数据库参考文档一步步来,注意不要有中文路径
2.2 使用【了解】
a)window窗口
b)dos窗口需要使用超级管理员身份登录关闭:net stop mysql启动:net start mysql
2.3 连接数据库直接连接数据库【掌握】-- 格式
mysql -u用户名 -p密码

– 例如
mysql -uroot -proot指定ip连接数据库
– 格式
mysql -h主机地址 -u用户名 -p密码

– 例如
mysql -hlocalhost -uroot -proot指定ip全名连接数据库
– 格式
mysql --host=主机地址 --user=用户名 --password=密码

– 例如
mysql --host=127.0.0.1 --user=root --password=root使用图形化工具三 SQL语句【重点】
3.1 什么是SQLStructured Query Language
结构化查询语言通过SQL,可以实现对记录增删改查【CURD】:create 创建、update 修改、retrieve 检索(read)、delete 删除
3.2 方言
sql是一套标准,所有的数据库厂商都支持,但是各自厂商在此基础上增加了特有的语句,这部分我们称为方言;例如:MySQL 注释
3.3 语法
sql语句可以单行或多行书写,以分号结尾sql语句忽略大小写,建议关键字大写注释单行:-- 注释内容 # 注释内容(MySQL方言)多行:/* 注释内容 */
3.4 分类
分类操作对象主要关键字DDL:数据定义语言
Data Definition Language数据库 表create drop alter
DML:数据操作语言 Data Manipulation Language记录insert update delete
DQL:数据查询语言【非官方】Data Query Language记录select
TCL:事务控制语言 Transaction Control Language事务commit rollback
DCL:数据控制语言 Data Control Language用户 权限grant revoke
3.5 DDL进入企业开发,一般一个项目对应一个仓库,一个实体对应一张表,仓库和表创建完毕后基本不再修改a)操作数据库创建数据库直接创建数据库
– 格式
create database 数据库名;

– 例如
create database db_day01;先判断数据库是否存在,若不存在创建
– 格式
create database if not exists 数据库名;

– 例如
create database if not exists db_day01;创建数据库并指定字符集 GBK
– 格式
create database 数据库名 character set 字符集;

– 例如
create database db_day01_1 character set gbk;查看数据库查看所有数据库
– 格式
show databases;查看建库语句
– 格式
show create database 数据库名;

– 例如
show create database db_day01_1;修改数据库修改数据库字符集 utf8
– 格式
alter database 数据库名 character set 字符集;

– 例如
alter database db_DAY01_1 character set utf8;删除数据库直接删除数据库
– 格式
drop database 数据库名;

– 例如
drop database db_DAY01_1;先判断数据库是否存在,若存在删除
– 格式
drop database if exists 数据库名;

– 例如
drop database if exists db_day01_1;使用数据库查看当前的库
– 格式 函数==方法
select database();使用、切换数据库
– 格式
use 数据库名;

– 例如
use db_day01;b)操作表创建表
– 格式
create table 表名(
字段名 字段类型,
字段名 字段类型,

);

– 例如
create table student(
id int,
name varchar(32),
birthday date

);常用类型
int 整型
double 浮点型
varchar(指定长度) 字符串
date 日期型 格式:yyyy-MM-dd查看表查看所有表
– 格式
show tables;查看表结构
– 格式
desc 表名;

– 例如
desc student;查看建表语句
– 格式
show create table 表名;

– 例如
show create table student;快速创建表结构
– 格式
create table 新表名 like 旧表;

– 例如
create table teacher like student;修改表添加字段
– 格式
alter table 表名 add 字段名 字段类型;

– 例如
alter table teacher add remark varchar(50);修改字段类型
– 格式
alter table 表名 modify 字段名 新类型;

– 例如
alter table teacher modify remark varchar(666);修改字段名
– 格式
alter table 表名 change 旧字段名 新字段名 字段类型;

– 例如
alter table teacher change remark intro varchar(111);删除字段
– 格式
alter table 表名 drop 字段名;

– 例如
alter table teacher drop intro;修改表名
– 格式
rename table 旧表名 to 新表名;

– 例如
rename table teacher to tch;修改表字符集 GBK
– 格式
alter table 表名 character set 字符集;

– 例如
alter table tch character set gbk;删除表直接删除
– 格式
drop table 表名;

– 例如
drop table tch;先判断表是否存在,若存在删除
– 格式
drop table if exists 表名;

– 例如
drop table if exists tch;3.6 DML对记录的增删改a)添加记录插入全部字段
– 格式
insert into 表名 values(值1,值2,值3…);

– 例如
insert into student values(1,‘tom’,‘1999-12-12’);
insert into student values(3,‘jack’,NULL);要求字符串可以插入所有的数据类型,底层会动转换,推荐使用单引号指定字段名插入
– 格式
insert into 表名(字段1,字段2…)values(值1,值2…);

– 例如
insert into student(name,id) values(‘jerry’,2);蠕虫复制把已有表的记录快速插入到另一张表,压力测试要求:二张表的结构一致
– 快速创建表结构
create table stu like student;
– 压力测试
insert into stu select * from student;中文乱码使用dos窗口 GBK;数据库 UTF8查看数据库字符集
– 格式
show variables like ‘%character%’;临时修改字符集
– 格式
set names gbk;b)修改记录[] 里面的关键字可写可不写
– 格式
update 表名 set 字段名=字段值,字段名=字段值 [where 条件];

– 例如
update stu set birthday=‘1998-1-1’;-- 一般不用
update stu set birthday=‘1996-1-1’ where id =4;-- 推荐使用c)删除记录
– 格式
delete from 表名 [where 条件];

– 例如
delete from stu;-- 收拾行李跑路吧
delete from student where id = 1;-- 推荐使用truncate收拾行李的时间都没了,赶紧订机票把摧毁表,重建表,与原来表结构相同
– 格式
truncate table 表名;

– 例如
truncate table student;
3.7 DQL​ 表简单查询准备数据
– 创建表
create table student1(
id int,
name varchar(20),
chinese double,
english double,
math double
);
– 插入记录
insert into student1(id,name,chinese,english,math) values(1,‘tom’,89,78,90);
insert into student1(id,name,chinese,english,math) values(2,‘jack’,67,98,56);
insert into student1(id,name,chinese,english,math) values(3,‘jerry’,87,78,77);
insert into student1(id,name,chinese,english,math) values(4,‘lucy’,88,NULL,90);
insert into student1(id,name,chinese,english,math) values(5,‘james’,82,84,77);
insert into student1(id,name,chinese,english,math) values(6,‘jack’,55,85,45);
insert into student1(id,name,chinese,english,math) values(7,‘tom’,89,65,30);

– 查询表中所有学生的信息
select * from student1;
– 查询表中所有学生的姓名和对应的语文成绩
select name,chinese from student1;
– 查询表中学生姓名(去重)
select distinct name from student1;
select distinct name,chinese from student1;
– 在所有学生数学分数上加10分特长分
select name,math+10 from student1;
– 统计每个学生的总分
select name,math+ifnull(english,0)+chinese from student1;
– 使用别名表示学生总分
select name,(math+ifnull(english,0)+chinese) as total from student1;
select stu1.name,tch1.name from student1 [as] stu1;distinct对查询结果,完全相同的内容进行去重显示
– 格式
select distinct 字段名1,字段名2 from 表名;ifnull()函数
– 格式
ifnull(字段名,定义值) – 如果该字段有值就直接返回,如果该字段没有值返回我们定义的值完整格式
select [distinct] * | ifnull(字段名,定义值) [as] 别名 from 表名 [as] 表别名

猜你喜欢

转载自blog.csdn.net/weixin_42943720/article/details/82929695
one
今日推荐