MySQL数据库
数据库的作用
当用户点击登录时,并没有做真正的验证用户和密码存在。
用户在注册的时候,将用户信息放入到数据库中。登陆的时候,在拿信息去验证
能够长期保存(断电,关机)
作用,存储数据。
数据库的分类
关系型数据库:RDBMS
关系型数据库管理系统
表与表之间的关系
Mysql , Sqlserver , Orcale
非关系型数据库:NoSQL
表与表之间没有关系
产生原因,传统关系型数据库太慢,
不仅仅是sql,是关系型数据库的补充
Redis(基于内存),mongdb(基于硬盘),HBASE(基于大数据)
NEWSQL
概念性:集合两家之所长,想达到既有非关系型的速度,又有关系型数据库的功能
MYSQL 8.0 版本
数据库的介绍
平时说的数据库,数据库这个软件
一个数据库里面可以有多个数据库(单位,文件夹)
一个数据库里面可以有多个表(一个一个文件)
一个表里边可以有多条数据
数据库(数据库系统)c(客户端)/s(服务器)模式
(1)启动服务器
(2)客户端连接到服务器
Mysql-u 用户名 -p 密码
数据库的安装
(1)官方网站下载:www.dev.mysql.com
(2)使用集成开发环境,环境完整可直接使用
Mysql的使用
(1)指定安装目录下:
(2)双击运行
(3)启动Mysql
如果启动失败,可能是端口占用
那么停止之前的mysql服务
(1)右键此电脑,点击管理,点击服务与应用程序,点击服务,找Mysql。停止服务。
(4)然后再XAMPP中 启动 MYSQL
(5)登录 MySQL:MySQL -u root -p
注意:xampp的mysql默认密码为空,出现提示填入密码,直接回车
Sql语句:
结构化查询语言简称SQL,是一种特殊的目的的编程语言。是一种数据库查询和程序的 设计语言。一般用于存储数据,更新管理关系型数据库。
使用SQL有就可以实现增删改查等数据库操作。
启动命令
Windows 下:Net start mysql
Linux下:server start mysql
SQL的分类:
数据查询语言(DQL):
负责进行数据查询而不会更改数据
代表命令:select
数据定义语言(DDL):
负责数据结构定义和数据库对象定义的语言
代表命令:create(创建) drop(删除)
数据操作语言(DML):
负责对数据库对象访问工作的语句
代表命令:insert delect update
数据控制语言(DCL):
是对数据库的访问与权限进行控制
代表命令:grant revoke
SQL基本命令:
连接服务器
每次使用MySQL之前必须连续上服务器,
语法:mysql -u 用户名 -p
MySQL默认用户 root 密码为空
查看所有数据库:
语法:Show databases;
创建数据库:
语法:create database 数据库名;
案例:创建软件123 rj123;
Create database rj123;
切换数据库:
语法:use + 数据库名;
案例:使用mysql
查询数据库中的所有表:
在查看一个数据库之前必须use一个数据库
语法:Show tables;
创建一个表:
语法:create table 表名(
字段名称1 字段类型,
字段名称2 字段类型,
字段名称3 字段类型
);
SQL中常见的字段类型:
数字:int float double
字符串:char(固定长度) varchar(可变长度)
时间:time
浮点数:float double(5,2) 总长度5位 2个小数位
布尔:boolean
案例:创建一个学生用户表 user 字段:id 名字 密码
Create table user(
Id int,
Name varchar(50),
Password varchar(50)
);
查看定义的一个表结构:
语法:desc 表名;
添加字段
语法:alter table 表名 add 字段名 字段类型
修改表名
语法:rename table 旧的表名 to 新的表名
修改字段类型
语法:alter table 表名 modify 字段名 新的字段类型
删除字段
语法:alter table 表名 drop 字段名
字段重命名
语法:alter table 表名 change 旧的字段名 新的字段名 字段类型
DML操作(表中的数据)
插入数据:
语法:insert into 表名 (字段名列表) value(内容列表)
案例: id是1 name 是 zs 密码 是 123456.
一次插入多行数据
案例:创建一个BOOK表,字段:书号 bid 书名 bname 书籍价格 bprice
插入三条数据 1 ats 30 2 gl 40 3 ts 50
查看数据
语法:select 字段名称 from 表名 where 条件
查询所有:select * form 表名
案例:按学号为1的学生信息。
精确查询
案例:查找名字以Z开头的学生信息
模糊查询
修改数据
语法:update 表名 set 字段 = 修改后的内容 where xx = yy;(限制条件)
案例:密码改为123;
案例:将id为1的这个人密码改为888;
案例:将id为2的这个人改名字和密码
删除数据:
语法:Delete from 表名 where 条件
案例:删除学号为1的
案例:删除所有数据
删库或删表:
语法:drop table 表名;
drop database 库名;
truncate table 表名;
Delete 仅仅删除表中数据插入的记录并没有删除
Truncate 删除数据和记录,相当于将drop这张表在create这张表
约束
主键约束特点:唯一性,非空性
设置主键和自动增长
主键:在创建表时,在要设置为主键的字段后面 添加上主键(primary key)
自增长:在创建表时,在要设置为自增长的字段后面 添加上 auto_increment
非空约束:不能为空
在约束位置加上 not null
外键约束:
要基于主表的主键去创建
在字段定义后 添加外键
Constraint aa foreign key(id) references aa(id)
主表作为约束的字段需要是该表的主键
DQL(重点)
基础查询
查询所有:
select * from 表名
查询指定列的数据:
Select 列名1,列名2…… from 表名 写那(几)列查那列
在当前数据库查看其他数据库中的表
Show tables in 数据库名
查看非当前数据库下表的数据
Select 列名 from bank.user;
Where 查询条件
关系运算符:> < = != >= <=
区间:between A and B(A和B之间)【A,B】
AND && 和 并且
OR || : 或
NOT : 非 取反
Is null:是空
is not null : 非空
In 在什么里面 包含
模糊查询
Like 像
通配符
_:任意一个字符
%:任意多个