1. 数据库的概念:将保存数据的部分,存到一个公共的地方,所有的用户涉及到数据相关都必须来这个公共地方查找
2. DBMS: 数据库管理系统
1: 关系型数据库:数据与数据之间可以有关联和限制的,关系型数据库通常都是表结构,也就意味着你在用关系型数据库的时候第一步就是确定表结构,关系型数据库中字段有特定的类型,常见的有:MySQL, oracle, sqlite, db2, sql server
2: 非关系型数据库:通常都是以k,v键值的形式 存储数据,常见的有:redis,mongodb(文档型数据库 非常接近关系型的非关系型数据),memcache
3. 数据库之mysql:
1. mysql:可以把它看成一款支持远程操作文件的软件,本质就是一款基于网络通信的应用软件,任何基于网络通信的软件 底层都是socket,所谓基于socket就因该拥有客户端与服务端
2. MySQL不单单支持MySQL的客户端来操作 也支持其他编程语言直接操作,介于每种编程语言语法都不一样,而都要操作数据库,mysql为了统一然后有了SQL语句,也就是一个公共的标准
3. 结构:
4.第一次操作mysql:
1: 下载安装
2: 配置环境变量
3: 初始化配置文件(my.ini) (可以配置端口,默认编码格式)
4: 启动服务端 (mysqld) 管理员权限
5 : 制作系统服务
6 : 登陆客户端 mysql -u root -p 之后输入密码登陆成功
4. mysql 操作:
1.显示数据库:
SHOW DATABASES;
2. 创建数据库:
CREATE DATABASE 数据库名称;
CREATE DATABASE 数据库名称 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;# 设置数据库的默认编码格式
3. 使用数据库:
USE 数据库名;
4. 用户管理
创建用户 create user '用户名'@'IP地址' identified by '密码';删除用户 drop user '用户名'@'IP地址';修改用户 rename user '用户名'@'IP地址'; to '新用户名'@'IP地址';;修改密码 set password for '用户名'@'IP地址' = Password('新密码')
5.授权管理
show grants for '用户'@'IP地址' -- 查看权限grant 权限 on 数据库.表 to '用户'@'IP地址' -- 授权revoke 权限 on 数据库.表 from '用户'@'IP地址' -- 取消权限
all privileges 除grant外的所有权限 select 仅查权限 select,insert 查和插入权限 ... usage 无访问权限 alter 使用alter table alter routine 使用alter procedure和drop procedure create 使用create table create routine 使用create procedure create temporary tables 使用create temporary tables create user 使用create user、drop user、rename user和revoke all privileges create view 使用create view delete 使用delete drop 使用drop table execute 使用call和存储过程 file 使用select into outfile 和 load data infile grant option 使用grant 和 revoke index 使用index insert 使用insert lock tables 使用lock table process 使用show full processlist select 使用select show databases 使用show databases show view 使用show view update 使用update reload 使用flush shutdown 使用mysqladmin shutdown(关闭MySQL) super ??使用change master、kill、logs、purge、master和set global。还允许mysqladmin????调试登陆 replication client 服务器位置的访问 replication slave 由复制从属使用对于权限
6. 忘记密码
# 启动免授权服务端mysqld --skip-grant-tables2.修改管理员用户对应的密码update mysql.user set password=password(123) where user='root' and host='localhost';3.关闭当前服务端 重新以校验用户名密码的方式启动4.正常以用户名密码的方式 连接mysql服务端
5 数据库基本操作:
库:
增 create database db1;查 show databases; 查所有 show create database db1; 查单个改 alter database db1 charset='gbk'; 修改编码删 drop database db1; 删库
表:
在创建表的时候 需要先指定库指定库: use 库名查看当前虽在的库: select database()增create table userinfo(id int,name char);查show tables; 查看某个库下面的所有的表show create table userinfo; 查看单个表desc userinfo; <==> describe userinfo; 查看表结构改 alter table userinfo modify name char(32);删drop table userinfo;
记录:
先创建一个库或者指定一个已经存在的库切换到该库下 创建表然后再操作记录create database db1; 创建库create table userinfo(id int,name char(32),password int); # 创建表,需要指定字段名与类型增insert into userinfo values(1,'jason',123); 插入单条数据insert into userinfo values(1,'jason',123),(2,'egon',123),(3,'tank',123); 插入多条数据查select * from userinfo; 查询所有的字段信息select name from userinfo; 查询指定字段信息select id,name from userinfo where id=1 or name=tank; 带有筛选条件的字段信息改update userinfo set name='kevin' where id=1; 修改数据的一个字段信息update userinfo set name='jason',password=666 where id=1; 修改数据的多个字段删delete from userinfo where id =1; 指定删符合条件的数据delete from userinfo; 将表中的数据全部删除