ubuntu SQL 学习笔记 (基础语法+mysql安装)
mysql 学习笔记
1.安装mysql(ubuntu下)
sudo apt install mysql-server
sudo mysql_secure_installation #初始化安全设置
systemctl status mysql.service #查看mysql运行情况
systemctl start mysql.service #启动mysql
systemctl stop mysql.service #停止mysql
mysql -u root -p #登录mysql 的root用户
datagrip Ubuntu安装
2.数据模型 ‘
关系型数据库 (RDBMS) 通过表来存储数据
mysql 的数据模型 (mysql数据管理系统DBMS)
3.SQL 的语法
SQL分类
1.DDL 数据定义语言 定义数据库对象(库 表 字段 索引)
2.DML 数据操作语句 对于表当中的数据进行增删改
3.DQL 数据查询语言 查询数据库中表的记录
4.DCL 数据控制语言 创建数据库用户,控制用户的权限
4.查询
show databases; //查询所有数据库
select database(); //查询当前数据库
创建数据库
create database [if not exists] 数据库名
删除数据库
drop database [if exists] 数据库名;
使用数据库
use 数据库名 ;
查询当前数据所有表
show tables; //需要先进入数据库
查询表结构
desc 表名;
查询指定表的建表语句
show create table 表名;
创建表 e'x
create table 表名(
字段 字段类型 [comment 字段1注释],
.......
)[comment 表注释];
表操作
添加字段
alter table 表名 add 字段名 类型(长度) [comment 注释] [约束]
修改数据类型
alter table 表名 modify 字段名 新数据类型(长度);
修改字段名 和 字段类型
alter table 表名 change 旧字段名 新字段名 类型(长度) [comment 注释] [约束]
删除字段
alter table 表名 drop 字段名;
修改表名
alter table 表名 rename to 新表名;
删除表
drop table [if exists] 表名
删除指定表
truncate table 表名;
表添加数据
1.给指定字段添加数据
insert into 表名(字段名1,字段名2,...) values(值1,值2,...);
2.给全部字段添加数据
insert into 表名 values(值1,值2,...);
3.批量添加数据
insert into 表名(字段名1,字段名2,...) values(值1,值2,...),(值1,值2,...);
insert into 表名 values(值1,值2,...),(值1,值2,..);
表修改数据
1.update 表名 set 字段名1=值1,字段名2=值2,..[where 条件];
删除表中数据
2.delete from 表名 [where 条件];
查询表中的记录
select
字段列表
from 表名列表
where
条件列表
having
分组后条件列表
orderby
排序字段列表
limit
分页参数
查询语法
查询多个字段
select 字段1,字段2,... from 表名
设置别名
select 字段1 [as 别名]... from 表名
去除重复记录
select distinct 字段列表 from 表名
条件查询
select 字段 from 表 where 条件列表;
聚合函数
count max min avg sum
select 聚合函数(字段列表) from 表名;
分组查询
select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组后过滤条件];
排序查询 方式 asc升序 desc 降序
select 字段列表 from 表名 order by 字段 排序方式;
分页查询
select 字段列表 from 表名 limit 起始索引,查询记录;
起始索引从0开始 起始索引=(查询页码-1)*每页显示记录数
数据库控制 (管理用户访问权限)
管理用户
1.查询用户
use mysql;
select * from user;
2.创建用户
create user '用户名'@'主机名' identified by '密码'
3.修改用户密码
alter user '用户名'@'主机名' identified with mysql_native_password by '新密码';
4.删除用户
drop user '用户名'@'主机名';
用户权限控制
权限类型
all 所有权限 select 查询数据 insert 插入语句 update 修改数据 delete 删除数据
alter 修改表 drop 删除数据库/表/视图 create 创建数据库/表
语法
1.查询权限
show grants for '用户名'@'主机名';
2.授予权限
grant 权限列表 on 数据库名.表名 to '用户名'@'主机名';
3.删除权限
revoke 权限列表 on 数据库名.表名 from '用户名'@'主机名';