一. 基础
1.启动mysql
systemctl start mysqld.service
2. 查看mysql运行状态
systemctl status mysqld.service
3. 修改初始密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Root@123';
4. 进入mysql
mysql -uroot -p
5. 数据库的结构形式
1. 层次结构: 以树状形式
2. 网状结构: 集合通过链接,定义不同记录之间的关系
3. 关系模型: 使用表关联的方式
每个表都有一个主键作为唯一标识(唯一)
复合主键: 使用多个列联合作为主键
外键: 关联
6. SQL语句的分类
1. SQL方案语句, 用于定义表结构
2. SQL数据语句, 用于操作数据
3. SQL事务语句, 用于开始,结束,回滚事务
7. 创建、查看数据库
cerate database [name] ;
show databases
二. 基础语句
1. 用户管理
1. 创建用户
create user 'alex'@'192.118.1.1' identified by '123';
任意ip地址登录
create user 'alex'@'%' identified by '123';
2. 删除用户
drop user '用户名'@'IP地址';
3.修改用户
rename user '用户名'@'IP地址' to '新用户名'@'IP地址';
4.修改密码
set password for '用户名'@'IP地址'=Password('新密码');
2. 查看账户列表
select user from mysql.user
3. 用户权限管理
1. 查看权限
show grants for '用户'@'IP地址'
2. 授权 用户仅对db1.t1文件有查询、插入和更新的操作
grant select ,insert,update on db1.t1 to "alex"@'%';
3. 授权所有的权限,除了grant这个命令,这个命令是root才有的。授权用户对db1下的t1文件有任意操作
grant all privileges on db1.t1 to "alex"@'%';
4. 授权用户对db1数据库中的文件执行任何操作
grant all privileges on db1.* to "alex"@'%';
5. 授权用户对所有数据库中文件有任何操作
grant all privileges on *.* to "alex"@'%';
6. 取消权限
取消用户对db1的t1文件的任意操作
revoke all on db1.t1 from 'alex'@"%";
取消来自远程服务器的用户对数据库db1的所有表的所有权限
revoke all on db1.* from 'alex'@"%";
取消来自远程服务器的用户所有数据库的所有的表的权限
revoke all privileges on *.* from 'alex'@'%';
三. 数据类型 (mysql)
1. 字符集
分为单字符集和多字符集(单字符最大长度大于1)
修改默认字符集
create database foreign_sales character set [字符集]
2. 文本类型
如果被装载到文本列中的数据超出该类型的最大长度,数据将会被截断
排序和分组时,只会使用前1024个字节,可以配置放宽这个限制
类型(mysql): tinytext, text, mediumtext, longtext
3. 数值类型
整形: (unsigned) tinyint, smallint, mediumint, int, bigint
浮点: (unsigned) float, double, 可以通过(p, s)指定精度
4. 时间数据
date: 只有日期
timesyamp 秒的时间戳
四. 表基本操作
1. 创建表
create table [name] (
[name] [type],
[name] [type],
);
2. 查看表定义
desc [table-name]
3. 不能为空,
在创建字段定义的时候,后面添加 not null 关键字
指定默认值:default xx;
4. 自增
添加 auto_increment 关键字
5. 约束
主键约束: constraint [name:一般为pk_xxx] primary key (xx, xx)
外键约束: constraint [name: 一般为fk_xxx] foreign key (xx)
references [table-name] (外表字段)
6.修改已存在的表定义
alter table [table-name] [改变方式] [列名称] [定义内容]
改变方式:add增加, drop删除, change [列名称]改变 modify改变种类
7. 添加数据
insert into [table-name] (key, key) values (value, value);
可以添加一个临时表,也就是可以跟查询一起使用。
8. 查询
select (字段A, 字段B...) from [table-name];
添加过滤: 可以在结尾加上 where + 条件
添加排序: 结尾加上 order by xxx
9. 更新
update [table-name] set [key] = [value], [key] = [value] ...
可以在结尾添加过滤语句 where,用于选择要更改的行
10. 删除数据
delete from [tatle-name] where 条件