数据库是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合,可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。
关系型数据库
关系型数据库和常见的表格比较相似,数据表与数据表之间是有很多复杂的关联关系的
大多数的关系型数据库都遵循SQL(结构化查询语言,Structured Query Language)
常见的关系型数据库有:MySQL,SQLserver
非关系型数据库
出于简化数据库结构、避免冗余、影响性能的表连接、摒弃复杂分布式的目的被设计。
指的是分布式的、非关系型的、不保证遵循ACID(数据库事务正确执行的四个基本要素的缩写)原则的数据存储系统。
通常以数据集的方式,大量的数据集中存储在一起,类似于键值对、图结构或者文档。
常见的非关系型数据库有:Redis、MongoDB
安装
个人推荐使用安装包安装的形式安装MySQL数据库。省时省力,但是希望你们别遇到像我一样的数据库编码问题(my.ini配置了没用)。如果你们也遇到了数据库编码问题的话,解压包形式的数据库应该能够解决你们的问题。
解压免安装版本(没有初始密码)配置环境变量:配置数据库绝对路径下的bin目录到环境变量中配置服务:启动管理员终端(win+x打开Windows PowerShell(管理员))输入命令:mysqld --install卸载
如果是安装版的话会比较麻烦:
先按照正常软件一样卸载MySQL删除C:\Program Files\MySQL与C:\ProgramData\MySQL文件夹(ProgramData默认是隐藏的)将注册表中的关于MySQL的项全部删除在cmd中使用mysql命令连接数据库,单纯使用mysql是以游客模式登陆,没有大部分功能。
mysql -u root -p免安装版初始没有密码,直接回车。
使用-h 指定远程MySQL ip地址,使用-P指定端口号(MySQL默认使用3306端口)
mysql -h 127.0.0.1 -P 2206 -u root -p
退出数据库使用 exit 或 quit
使用 select user(); 来查看当前登陆用户
所有的用户信息都在 mysql 数据库的user数据表中,使用select * from mysql.user查看所有用户信息
创建用户
grant 权限 on 数据库.数据表 to 用户名@'主机名' identified by '密码'; # 如果账户不存在则创建该账户撤销权限
revoke 权限 on 数据库.数据表 from 用户名@'主机名';删除用户
drop user 用户名@'主机名';登陆状态下:
update mysql.user set password = password(新密码) where user != '';cmd命令:
mysqladmin -u root -p旧密码 -h域名 password 新密码修改数据库编码是我的一大痛处
这个可以去看看别人的数据库编码怎么修改,没有什么成功的经验,这几次都是运气修改掉了。气
查看已存在数据库
show databases;创建数据库
create databases 数据库名 charset=编码; # 如果不设置数据库编码就使用默认编码查看数据库的详细信息
show create database 数据库名;选择数据库
use 数据库名;查看数据库中的所有数据表
show tables;创建数据表
create table 表名( 字段1 数据类型 约束 ... 字段n 数据类型 约束 )charset = 编码 engine = innoDB; # 一般引擎默认是innoDB查看数据表详细信息
show create table 数据表名;查看数据表结构
desc 数据表;查看数据
select * from 表名; # * 代表显示所有字段信息 # 可以将 * 替换成字段,指定字段信息显示插入数据
insert into 表名(字段1,...字段n) values(字段值1,...字段值n); insert into 表名 values(按照字段顺序填写);更新数据
update 表名 set 字段 = 字段值 where 字段 = 字段值; # 如果没有where后的语句会修改整个表的数据删除数据
delete from 表名 where 字段 = 字段值; # 如果没有where后的语句会删除整个表的数据删除数据表
drop table 表名;删除数据库(谨慎)
drop database 数据库名;修改数据库编码
alter database 数据库名 charset=编码;修改数据表名字
alter table 旧表名 rename 新表名;修改数据表字段名
alter table 表名 change 旧字段 新字段 数据类型;修改数据表字段数据类型
alter table 表名 modify 字段 新类型;整型
tinyint 1字节 -127~127smallint 2字节 -32768~32767mediumit 3字节int 4字节 -2147483648~2147483647bigint 8字节浮点型
float(M, D):4字节,3.4E–38~3.4E+38double(M, D):8字节,1.7E–308~1.7E+308decimal(M, D):所在字节M,D大值基础上+2,其实就是M值+2就是decimal字段所占字节数(M, D) => M为位数,D为小数位,M要大于等于D float(255, 30):精度最低,最常用 double(255, 30):精度高,占位多 decimal(65, 30):字符串存,全精度
字符串型
char:定长,永远采用设置的长度存储数据 varchar:不定长,在设置的长度范围内,变长的存储数据
时间
year:yyyy(1901/2155) date:yyyy-MM-dd(1000-01-01/9999-12-31) time:HH:mm:ss datetime:yyyy-MM-dd HH:mm:ss(1000-01-01 00:00:00/9999-12-31 23:59:59) timestamp:yyyy-MM-dd HH:mm:ss(1970-01-01 00:00:00/2038-01-19)
枚举与集合
为某一个字段提供选项的 - 枚举只能单选(1个),集合可以多选(0-n个)
转载于:https://www.cnblogs.com/Gredae/p/11580755.html