MySQL基础知识 (用于个人复习)V 0.1.0

MySQL基础知识

常见数据库软件

Oracle:大型系统
MySQL:web应用最多,最高支持千万级别 的并发访问
DB2:银行系统使用最多
SQLServer:C#、.net常用

数据库的基本概念

  • 数据库用于存储和管理数据 的仓库
  • 特点
    持久存储数据库,数据库是文件系统
    方便存储和管理数据
    使用了同意方式操作的数据库

MySQL目录基本介绍

安装目录

bin
	二进制可执行文件
	mysql用于登录服务器

data
	数据文件

include
	C语言头文件

lib
	mysql需要的jar包,库文件

share
	数据库错误文件

my.ini
	修改数据库的核心配置文件

数据目录
	数据库
	文件夹

SQL的基本概念

  • SQL:结构化查询语言,可以操作所有关系型数据库,每一种数据库操作的方式,存在不一样的差异。
  • Oracle、MySQL、SQL server

SQL通用语法

  • 单行、多行书写,不区分大小写,关键字大写
  • 注释:
    单行注释:-- 注释 ,#注释
    多行注释:/注释/

SQL分类

  • DDL
    操作数据库和表
    create、drop、alter等
    CREATE TABLE VIEW INDEX SYN CLUSTER

  • DML
    操作数据库记录
    insert、update、add等

  • DQL
    查询数据库记录
    select、from、where等

  • DCL
    授权
    grant、revoke、rollback、commit、autocommit等

DDL

一般操作表结构和数据库结构
alter、modify、change、create、add、drop、show crate、character set

操作数据库

  • 创建

      创建数据库
      create database 数据库名称
    
      创建数据库的同时判断数据库存在则不创建
      create database if not exists 数据库名称
    
      创建数据库的同时指定字符集
      create database  数据库名称 character set gbk
    
      创建数据库判断是否存在并且指定字符集
      create  database if not exists 数据库名称 character set gbk
    
  • 查看

      查看所有数据库名称
      show databases;
      	
      查看某个数据库的创建语句 
      show create database mysql;    
      
      查询当前正在使用的数据库名称
      select database();
    
  • 默认表

      information_schema:存放视图
      mysql:数据库核心表服务
      performance_schema:数据库性能
      test:测试使用
    
  • 修改

      修改数据库字符集
      alter database 数据库名称 character set 字符集名称
    
  • 删除

      删除数据库
      drop database 数据库名称
      
      判断数据库存在则删除:
      drop database if exists 数据库名称
    
      使用数据库
      use 数据库名称
    

操作表

  • 创建

      	1、普通创建
      	create table 表名字 (
    		列名1  数据类型  束 ,
    			..........
      	);
    
      	2、创建前判断表是否存在
        	列名1  数据类型  束 ,
    			..........
      );
    
  • 查询

      查看数据库中所有表的名称
      show tables;
    
      查看表的创建语句
      show create table 表名;
    
      查看表结构
      desc 表名称
    
  • 修改

      修改表名
      alter table 表名 rename 新表名
    
      修改表的字符集
      alter table 表名character set 字符集名称
      alter table new_student character set utf8;  
    
      添加列
      alter table 表名 add 列名 数据类型
    
      修改列名称/类型
      alter table 表名 change 旧字段 新字段 类型
      alter table 表名 modify 字段  数据类型
      alter table  表名 add  字段名  列名
      alert table 表名  rename 新的表名
    
      删除列
      alert table 表名 drop 列名
    
  • 删除

      存在就删除
      drop table if exists  表名
      
      直接删除
      dorp table 表名
    
  • 复制表

      create table  复制后的表 like  原表
    

DML&DQL&DDL 阶段复习一

操作数据库

操作数据库和表的记录,并非结构

1、创建

创建数据库
create database 数据库名称

创建数据库的同时判断数据库存在则不创建
create database if not exists 数据库名称

创建数据库的同时指定字符集
create database  数据库名称 character set gbk

创建数据库判断是否存在并且指定字符集
create databases if not exists 数据库名 CHARACTER set 字符集;

2、查看

查看所有数据库名称:
show databases;

查看某个数据库的创建语句
show create database mysql;    

3、默认表

information_schema:存放视图		
mysql:数据库核心表服务		
performance_schema:数据库性能 		
test:测试使用

4、修改

修改数据库字符集
alter database 数据库名称 character set 字符集名称

5、删除

删除数据库
drop database 数据库名称

判断数据库存在则删除:
drop database if exists 数据库名称

操作表

1、创建

1)直接创建
create table 表名字 (
  列名1  数据类型 约束 ,
  ..........
);

如:
create table student(
  id int,
  name varchar(32),
  age int,
  score double(4,1),
  birthday date,
  insert_time timestamp 
);
commit;

2)创建前先判断
create table if not exists 表名字 (
  列名1  数据类型 约束 ,
  ..........
);

create table if not exists student(
	id int(3)  auto_increment primary key,
	name varchar(20),
	age int(3),
	sex varchar(2),
	address varchar(100),
	math double(4,1),
	engelish double(4,1)		
);
COMMIT;

2、查看

查看数据库中所有表的名称
show tables;

查看表的创建语句
show create table 表名;

查看表结构
desc 表名称
desc student;

3、修改

修改表名
alter table 表名 rename 新表名

修改表的字符集
alter table 表名character set 字符集名称;   

注意:创建时间戳类型,必须是数据库为空没有任何数据情况下,才有效。
alter table stu modify insert_time timestamp default CURRENT_TIMESTAMP not null;
alter table new_student character set utf8; 

修改列名称/类型
alter table 表名 change 旧字段 新字段 类型
alter table 表名 modify 字段  数据类型
alter table 表名  rename 新的表名
alter table student add insert_time TIMESTAMP default CURRENT_TIMESTAMP not null;
commit; 

4、添加

	添加列
	alter table 表名 add 列名 数据类型

5、删除

删除列
alter table 表名 drop 列名	

表存在就删除
drop table if exists  表名

直接删除表
drop table 表名

6、复制表

	create table  复制后的表 like  原表

DML 操作表记录

1、 添加

缺省值的时候为空填写: NULL 
可以缺省值: NSERT INTO 表名 列名 1,列名2 列名..VALUES	( value1, value2, value3,....);
不可以缺省值: INSERT INTO 表名 VALUES( value1, value2, value3,....);
	
添加单条记录
insert into stu(id,name,age,score,birthday)  values (17,'小乔',25,null,null);

批量插入
insert into stu(id,name,age,score,birthday)
				values  (18,'打击',25,99.0,'2021-06-09'),
							(19,'庄周',25,99.0,'2021-06-09'),
							(20,'大桥',25,99.0,'2021-06-09'),
							(21,'亚瑟',25,99.0,'2021-06-09'),
							(22,'鲁班',25,99.0,'2021-06-09');
								 
批量插入
insert into student (name,age,sex,address,math,engelish)
 					values ('何*松',15,'女','广西桂平',60,100),
						('何*星',16,'男','广西柳州',70,80),
						('李*英',19,'女','广西桂平',69,59.3),
						('黄*停',58,'女','广西桂平',100,100),
						('覃*星',15,'男','广西南宁',70,30.1),
						('钱*波',18,'男','浙江省绍兴市',80,60),
						('闫*宝',19,'男','北京五环',69,99.0),
						('何*',20,'男','湖南省怀化市',80,78);
						commit;

插入空值
insert into student (name,age,sex,address,math,engelish) values ('张*',28,'男','湖南省常德市',20,null);
commit;

2、删除

删除某一条记录
delete from 表名 where 条件=值;
commit;

删除所有记录,逐条删除,效率低
delete form 表名;
commit;
 
删除所有记录,删除表数据并创建一个新的一摸一的表及其结构,效率高
truncate table 表名;
truncate table student;			
commit;

3、修改

修改表中某一条记录
pdate stu  set 列名=值 where id=18;

修改表中所有记录
update stu  set 列名=值;

修改其中两个记录
update stu  set 列名=值,列名n=值n where id=18;

DQL 查询表记录

1、查询语法综合

select 字段列表 from  表名 列表 where 条件列表  group by 分组字段  having 分组之后的条件 order by  排序 limit 分页限定;

2、基础查询

查询全部
select * from 表名
select * from student;

多个字段查询
select 字段1,字段2.... from 表名;
select name,address from student;

去除重复
select distinct 字段1,字段2.... from 表名;
select distinct address,name  from student;

计算表
select 字段1,字段2,(字段1+字段2) from 表名;
select id ID ,name 姓名,math 数学,engelish 英语, (math+engelish) 总分 from student;
null值参与计算
语法:ifnull(需要判断的字段,如果判断的字段为空就填充0)
select 字段1,字段2,(字段1+ifnull(字段2,0)) from 表名;
select id ID ,name 姓名,math 数学,engelish 英语, (math+ifnull(engelish,0)) 总分 from student;

起别名
select name  别名 from 表名;
select name 姓名,sex 性别,address 地址 from student;

条件查询

  • 语法:where子句后跟条件

  • 运算符

      >,<,<=,>=,<>、between...and、in(集合)、is null 、is not null、and,&&、or,||、not,!
    
  • 模糊查询

    like
    ‘_’:任意单个字符
    %:任意多个字符
    [ ]:在范围内的
    [^ ]:不在范围内的
    注意:符号之间都可以混合使用

查询语句练习笔记

查询年龄大于20岁 
select * from student where age>20;

查询年龄等于20岁
select * from student where age=20;

查询年龄不等于20岁
select * from student  where age !=20;
select * from student where age <>20;

查询年龄大于等于20小于等于30岁的
select * from student where age >=20 and age <=30;
select * from student where age between 20 and 30;

查询20岁,19岁,58岁的信息
select * from student where age in(20,19,58);
select * from student where age = 20 or age = 19 or age = 58;

查询英语成绩为空的
select * from  student  where engelish is null;

查询英语成绩不为空的
select * from student where engelish IS NOT NULL;
模糊查询练习笔记
查询班姓李的学生
select * from student where name like '李%'

查询第二个字为泽的学生
select * from student where name like '_泽%';

查询姓名为三个字的学生
select * from student where name like '___';

查询姓名中包含何的人
select * from  student  where name like '%何%';

待更新

排序查询

聚合函数

分组查询

分页查询

数据库的约束

多表之间的关系

范式(表设计)

数据库的备份与还原

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值