MySQL数据库
1. 什么是数据库?
答:数据库是以一定方式存储在一起、能予多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。
2. 数据库的分类?具体含义?常见的数据库?
答:关系型数据库和非关系型数据库
关系数据库:是建立在关系数据库模型基础上的数据库,借助于集合代数等概念和方法来处理数据库中的数据,同时也是一个被组织成一组拥有正式描述性的表格,该形式的表格作用的实质是装载着数据项的特殊收集体,这些表格中的数据能以许多不同的方式被存取或重新召集而不需要重新组织数据库表格。
非关系型数据库:是个轻量、开源、不兼容SQL 功能的关系型数据库,NOSQL主要是指I非关系型、分布式、不提供ACID (数据库事务处理的四个本要素)的数据库设计模式。
常见的数据库: oracle、db2、sqlserver、sybase、mysql
3. MySQL数据库服务器、数据库和表的关系?
答: 所谓数据库服务器,只是在机器上装了一个数据库管理程序,这个管理程序可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库。
为保存应用中实体的数据,一般会在数据库创建多个表,以保存程序中实体的数据。
数据库服务器、数据库和表的关系如图所示:
4. MySQL数据库服务器下载和安装?【解决MySQL安装到最后一步未响应的三种方法】
答: https://downloads.mysql.com/archives/community/
MySQL安装与配置详情见CSDN MySQL安装与配置。
这种情况一般是你以前安装过MySQL数据库服务项被占用了。
解决方法:
1、卸载MySQL
2、删除安装目录及数据存放目录
3、在注册表(regedit)查询mysql,全部删除,
注意的是注册表 cmd -> regedit
1.HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application\MySQL 目录
2.HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application\MySQL 目录
3.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\MySQL 目录
4.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControl001\Services\MYSQL 目录
5.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControl002\Services\MYSQL 目录
6.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MYSQL 目录
4、在c盘查询MySQL,全部删除;一般是在ProgramData文件夹下(该文件是隐藏的,需要设置为显示隐藏文件)和winbdows文件夹下
4、重新安装就好了
5.SQL语言
1.基本数据库操作语句
答: DDL (数据定义语句)
数据定义语言 - Data Definition Language
用来定义数据库的对象,如数据表、视图、索引等
DML (数据操纵语句)
数据处理语言 - Data Manipulation Language
在数据库表中更新,增加和删除记录
如 update、insert、delete — 增删改
DCL (数据控制语句)
数据控制语言 – Data Control Language
指用于设置用户权限和控制事务语句
如grant、revoke、if…else、while、begin transaction
DQL (数据查询语句)
数据查询语言 – Data Query Language
Select
2.MySQL常用数据类型
答: #字符串型 VARCHAR、CHAR
#数值型TINYINT 、SMALLINT、INT、BIGINT、FLOAT、DOUBLE
#逻辑性 BIT(0/1)
#日期型DATE、TIME、DATETIME、TIMESTAMP
#大数据类型BLOB、TEXT(一般不使用)
3.MySQL定义表的字段的约束
答: 定义约束可以保证数据的有效性和完整性
定义主键约束:primark key 不允许为空,不允许重复
主键自动增长:auto_increment(主键多为自动增长类型)
定义唯一约束:unique 不能重复
定义非空约束:not null 不允许为空
4.基本数据库表操作语句
答: 4.1、查看数据库服务器上的现有数据库
show databases;
4.2、选中自己需要使用的数据库
use test;
4.3.查看被选中的数据库中有没有数据表
show tables;
4.4.删除已选中的数据库
drop database test;
4.5.创建一个属于自己的数据库
create database test;
5.INSERT 语句向表中插入数据
答: create table t_student(
stuid int primary key auto_increment,
stuname varchar(20)unique,
stuage int not null,
stusex bit,
stuheight double,
stugister datetime
);
为指定列添加数据
insert into t_student(stuname,stuage,stusex)values(‘张三’,23,1);
为全列添加数据
insert into t_student values(null,‘李四’,24,0,178.5,‘2020-07-29’);
6.update语句修改表中数据
答: update t_student set stuheight=180.5;
update t_student set stuage=11,stuheight=178.8,stugister=‘2020-05-21’ where stuname=‘张三’;
update t_student set stuage=12,stuname=‘李四儿’,stusex=1,stuheight=188 where stuid=2;
7.delete语句删除表中数据
答: delete from t_student where stuid=1;
delete from t_student where stuid=2 and stuname=‘李四’;
delete from t_student where stuid=3 or stuname=‘李三’;
6.select语句
6.1.基本select语句
查询所有数据
select * from t_student;
查询指定列的数据
select * from t_student where stuname=‘张三’;
在where子句中经常使用的运算符
例如:
使用where子句,进行过滤查询
1.比较运算符 > < >= <= == <>
between low[小/低] and hei[大/高] 查询【小/低】到【大/高】之间的数据
in(集合数据值) 查询在in集合中的数据
like ‘zhang%’ / like ‘%san’ / like ‘%zi%’ 模糊查询
is null 查询为空的数据
2.逻辑运算符 {or[逻辑或] and [逻辑与]} 可以链接多个查询条件
not 非
< >= <= == <>
查询年龄大于30的数据记录
select * from t_student where stuage > 30;
between low[小/低] and hei[大/高]
查询年龄在25至30之间数据记录
select * from t_student where stuage between 25 and 30;
in(集合数据值) 查询在in集合中的数据
#查询编号在(2,5,8)集合中的数据记录
select * from t_student where stuid in(2,5,8);
like ‘zhang%’ / like ‘%san’ / like ‘%zi%’ 模糊查询
查询姓zhang的学生信息
select * from t_student where stuname like ‘zhang%’;
查询叫si的学生信息
select * from t_student where stuname like ‘%si’;
查询包含java的学生信息
select * from t_student where stuname like ‘%java%’;
is null 查询为空的数据
#查询姓名为null的数据
select * from t_student where stuname is null;
or[逻辑或]
查询编号为2 或者 姓名是wangwu 或者 年龄为27的数据
select * from t_student where stuid=2 or stuname=‘wangwu’ or stuage=27;
and [逻辑与]
查询编号为2 并且 姓名是wangwu 并且 年龄为27的数据
select * from t_student where stuid=2 and stuname=‘wangwu’ and stuage=27;
not 非
select * from t_student where not(stuage>25);
6.2.多表查询
1.1 表与表之间的关系
一对一(主键关联、外键关联)
--创建用户信息表
create table t_user(
u_id int primary key auto_increment,
u_name varchar(20),
u_age int,
u_sex bit,
u_address varchar(30),
foreign key t_user(u_id) references t_card(c_id)
);
--创建用户省份证信息表
create table t_card