% mysql 代表_MySQL的基本使用

1、常见数据库

关系型数据库:MySQL、sqllite、db2、oracle、access、sql server....

一条记录之间的字段是强关联,不能只删字段,只能删整条记录,支持事务

非关系型数据库:MongoDB、redis....

一条记录之间的字段之间弱关联,一般以键值对存储,虽然支持事务但是不完善,可以单独删除字段的值

2、MySQL安装

3、MySQL目录结构

1936e4526b5f

MySQL8.0

bin:可执行文件目录

我这是8.0版本,如果有Data文件夹,那配置文件my.ini就在Data 文件夹里

不然默认在C:\ProgramData\MySQL\MySQL Server 8.0里

my.ini的常用配置如下:

[mysqld]

# 设置3306端口

port=3306

# 设置mysql的安装目录

basedir=C:\Program Files\MySQL

# 设置mysql数据库的数据的存放目录

datadir=C:\Program Files\MySQL\Data

# 允许最大连接数

max_connections=200

# 允许连接失败的次数。

max_connect_errors=10

# 服务端使用的字符集默认为utf8mb4

character-set-server=utf8mb4

# 创建新表时将使用的默认存储引擎

default-storage-engine=INNODB

# 默认使用“mysql_native_password”插件认证

#mysql_native_password

default_authentication_plugin=mysql_native_password

[mysql]

# 设置mysql客户端默认字符集

default-character-set=utf8mb4

[client]

# 设置mysql客户端连接服务端时默认使用的端口

port=3306

default-character-set=utf8mb4

4、在网络环境下MySQL的工作流程

在服务器端运行mysqld.exe(在bin下),在客户端运行mysql.exe

客户端连接到服务器端

在客户端使用SQL语句操纵服务端数据库

5、创建用户以及授权

cmd进mysql之后常见操作如下:

# 查看当前数据库

SHOW DATABASE;

# 创建用户

# '%'表示可以从哪个ip地址访问 identified by'1234'表示设置密码

create user 'user1'@'%' identified by'1234';

# 修改用户

rename user 'user1'@'%' to'user2'@'%';

# 修改密码

set password for 'user2'@'%' ='12345';

# 删除用户

drop user 'user2'@'%';

# 授权

# test.*表示test数据库下所有表 all privileges表示所有权限

grant all privileges on test.* TO 'user1'@'%';

# 取消授权

# 撤回select权限

revoke select on test.* from 'user1'@'%';

常见权限

All/All Privileges权限代表全局或者全数据库对象级别的所有权限

Alter权限代表允许修改表结构的权限,但必须要求有create和insert权限配合。如果是rename表名,则要求有alter和drop原表, create和insert新表的权限

Alter routine权限代表允许修改或者删除存储过程、函数的权限

Create权限代表允许创建新的数据库和表的权限

Create routine权限代表允许创建存储过程、函数的权限

Create tablespace权限代表允许创建、修改、删除表空间和日志组的权限

Create temporary tables权限代表允许创建临时表的权限

Create user权限代表允许创建、修改、删除、重命名user的权限

Create view权限代表允许创建视图的权限

Delete权限代表允许删除行数据的权限

Drop权限代表允许删除数据库、表、视图的权限,包括truncate table命令

Event权限代表允许查询,创建,修改,删除MySQL事件

Execute权限代表允许执行存储过程和函数的权限

File权限代表允许在MySQL可以访问的目录进行读写磁盘文件操作,可使用的命令包括load data infile,select … into outfile,load file()函数

Grant option权限代表是否允许此用户授权或者收回给其他用户你给予的权限,重新付给管理员的时候需要加上这个权限

Index权限代表是否允许创建和删除索引

Insert权限代表是否允许在表里插入数据,同时在执行analyze table,optimize table,repair table语句的时候也需要insert权限

Lock权限代表允许对拥有select权限的表进行锁定,以防止其他链接对此表的读或写

Process权限代表允许查看MySQL中的进程信息,比如执行show processlist, mysqladmin processlist, show engine等命令

Reference权限是在5.7.6版本之后引入,代表是否允许创建外键

Reload权限代表允许执行flush命令,指明重新加载权限表到系统内存中,refresh命令代表关闭和重新开启日志文件并刷新所有的表

Replication client权限代表允许执行show master status,show slave status,show binary logs命令

Replication slave权限代表允许slave主机通过此用户连接master以便建立主从复制关系

Select权限代表允许从表中查看数据,某些不查询表数据的select执行则不需要此权限,如Select 1+1, Select PI()+2;而且select权限在执行update/delete语句中含有where条件的情况下也是需要的

Show databases权限代表通过执行show databases命令查看所有的数据库名

Show view权限代表通过执行show create view命令查看视图创建的语句

Shutdown权限代表允许关闭数据库实例,执行语句包括mysqladmin shutdown

Super权限代表允许执行一系列数据库管理命令,包括kill强制关闭某个连接命令, change master to创建复制关系命令,以及create/alter/drop server等命令

Trigger权限代表允许创建,删除,执行,显示触发器的权限

Update权限代表允许修改表中的数据的权限

Usage权限是创建一个用户之后的默认权限,其本身代表连接登录权限

6、常见的SQL操作

# 创建表

# use test选择test数据库,在test创建表

use test;

# 创建表t1

create table t1(

# 创建字段id,类型为int,长度(5)位十进制,

# auto_increament自增/一定要是key(只能有一个)

# primary key不能重复,不为空。会创建索引,加速查找。

id int(5) auto_increament primary key,

# NULL表示可以为空 NOT NULL不能为空

#char(255)表示字段长度固定为255,如果插入值不够255则用空格填充,这样查找速度快

#varchar(255)是可变长字符,最大长度255,插入值不够255它不会进行填充,查找速度慢。

#由于MySQL中字段存储为id | name |.....所以将固定长度的字段放前面会提高查询效率

name char(255) NULL,

# 枚举

size ENUM('s','m','l','xl'),

# 集合

color SET('red','blue','yellow'),

# 时间TIMESTAMP 默认插入当前时间CURRENT_TIMESTAMP/now()

create_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,

# 非空默认值为1

department_id int(2) NOT NULL DEFAULT 1,

#外键约束 约束名fk_t1_department ,把department_id关联到表department的id字段

constraint fk_t1_department foreign key ('department_id') references department('id')

)engine=innodb default charset utf8;

# engine表示数据库用什么引擎innodb支持事务,myisam不支持事务,支持全局索引

# default charset utf8;表示设置字符集为utf8

# 清空表 并不直接删除可以回滚,自增id延续使用

DELETE FROM t1;

TRUNCATE TABLE t1;

# 删除表 直接删除,自增id从头开始

DROP TABLE t1;

# 操作记录

# 查询 选择来自表t1的字段id,name,select *表示所有字段

select id,name from t1;

# 插入 插入到t1 插入字段为(id,name) 值为(1,'alex')

insert into t1(id,name) values(1,'alex')

#删除 删除t1中名字为"小明"的记录

delete from t1 where name='小明';

#修改 修改t1表中id为6的记录,将名字改为“小明”

update t1 set name='小明' where id=6;

# 插入集合

insert into t1(color) values('red','blue')

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值