一、linux 安装 sudo apt install mysql-sever
mysql -u 用户名 -p 密码
-u 用户 -p 密码 -h ip地址 -P 端口号
show databases; 显示所有的数据库
select virson; 显示版本号
create database 数据库名 charseet=utf8; 创建数据库
drop database 数据库名; 删除数据库
select database(); 显示当前使用的数据库
use 数据库名; 选择数据库
show tables; 显示数据库所有表
create table 表名(列名 类型 约束, 列名 类型 约束); 创建表
desc 表名 查看表结构
drop table 表名 删除数据表
alter table 表名 drop 列名;
add 列名 类型 约束;
change 原列名 新列名 类型 约束;
约束 primary key 主键
not null 非空
auto_increment 自增
unique 唯一
default 默认
foreign key 外键
check() 检查 mysql8能用
外键 创建、添加 contraint 外键名 foreign key (列名) references 表(列) on updat cascade on delete casecade;
删除 alter table 表名 drop foreign key 外键名;
二、对表的增删改查
查看表信息
select * from 表名; 查询所有 耗时
select 列, 列, 列, from 表名; 查询表中几列
select 列 as 列名, 列 as 列名, from 表名; 查询表中的列并赋予别名
条件 where 比较运算符 > < = >= <= != <>
逻辑运算符 and or not
成员运算符 in is
between and 范围比较 左右包含
like 与通配符结合使用 %多个字符 _单个字符
关联查询 嵌套查询 一个查询的结果作为另一查询的条件
表连接 内连接 inner join 返回最有用的列
外连接 左外连接 left join 以左表为主
右外连接 right join 以右表为主
全连接 full join mysql 不支持
使用左外连接 union 右外连接
去重 distinct 分组 group by 排序 order by asc 升序 desc 降序 分页 limit
添加表信息 insert into 表名 values (值1,值2),(值1,值2);
insert into 表名 (列1,列2) values (值1,值2),(值1,值2);
insert into 表名 set 列1 = 值1, 列2 = 值2
修改表信息 alter 表名 set 列1 = 值1 where 条件;没有条件就修改整个表
删除表信息 delete from 表名 where 条件; 如果没有条件就清空整个表
select user,host,authentication_string from user; 查看mysql的用户的信息
host 限制 为%代表所有ip都可以访问
create user '用户名'@'%' identified by '123456'; 创建用户
grant 权限列举 on 数据库.表名 to '用户名'@'%' 分配权限 all 所有权限 *.*所有数据库的所有表
flush privileges; 刷新权限
drop user '用户名'@'%' 删除用户
alter user '用户名'@'%' indentrfied by '123456';
三、函数和数据类型
函数 select database();
select user();
select version();
select now();
select date();
select curdate();
select curtime();
select unix_timestamp();
特殊数据类型 int vachar,char datatime enum(枚举)