欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

mysql数据库的基本操作

程序员文章站 2022-05-31 21:45:23
...

mysql安装

  • 安装服务器端:在终端中输入如下命令,回车后,然后按照提示输入
sudo apt-get install mysql-server
  • 启动服务
sudo service mysql start
  • 停止服务
sudo service mysql stop
  • 重启服务
sudo service mysql restart
  • 查看进程中是否存在mysql服务
ps ajx|grep mysql

配置

  • 配置文件目录为/etc/mysql/mysql.cnf
  • 进入conf.d目录,打开mysql.cnf,发现并没有配置
  • 进入mysql.conf.d目录,打开mysql.cnf,可以看到配置项
  • 主要配置项如下
    • bind-address表示服务器绑定的ip,默认为127.0.0.1

    • port表示端口,默认为3306

    • datadir表示数据库目录,默认为/var/lib/mysql

    • general_log_file表示普通日志,默认为/var/log/mysql/mysql.log

    • log_error表示错误日志,默认为/var/log/mysql/error.log

客户端

sudo apt-get install mysql-client

登陆

mysql -u root -pmysql
  • root :登陆用户名
  • mysql: 登陆密码

退出
quit 或者 exit
查看版本:

select version();

显示当前时间:

select now();

查看所有数据库

show databases;

使用数据库

use 数据库名;

查看当前使用的数据库

select database();

创建数据库

create database 数据库名 charset=utf8;

删除数据库

drop database 数据库名;

数据表
查看当前数据库中所有表

show tables;

查看表结构

desc 表名;

创建表

CREATE TABLE table_name(字段1 约束条件,字段2 约束条件,.......)

修改表-添加字段

alter table 表名 add 字段名 类型;

修改表-修改字段:重命名

alter table 表名 change 原名 新名 类型及约束;

修改表-修改字段:不重命名

alter table 表名 modify 字段名 类型及约束;

修改表-删除字段

alter table 表名 drop 字段名;

删除表

drop table 表名;

查看表的创建语句

show create table 表名;

增删改查
查询所有列

select * from 表名;

查询指定字段

select 字段名1,字段名2,... from 表名 as 别名;

消除重复行

select distinct 字段1,... from 表名;

条件查询

select * from 表名 where 条件;
  • 比较运算符
    • 等于: =
    • 大于: >
    • 大于等于: >=
    • 小于: <
    • 小于等于: <=
    • 不等于: != 或 <>
  • 逻辑运算符
    • and
    • or
    • not
  • 模糊查询
    • like
    • %表示任意多个任意字符
    • _表示一个任意字符
  • 范围查询
    • in表示在一个非连续的范围内
    • between … and …表示在一个连续的范围内
  • 空判断
    • 判空is null
    • 判非空is not null
  • 优先级
    • 优先级由高到低的顺序为:小括号,not,比较运算符,逻辑运算符
    • and比or先运算,如果同时出现并希望先算or,需要结合()使用

增加

  • 全部插入
insert into 表名 values(所有字段对应的数据)
  • 部分插入
insert into 表名(字段名1,...) values(对应值1,...)
  • 全列多行插入
insert into 表名 values(字段1的值1,字段2的值1),(字段1的值2,字段2的值2)...;
insert into 表名(字段1,...) values(值1,...),(值2,...)...;

修改

update 表名 set 字段1=值1,字段2=值2... where 条件

删除

delete from 表名 where 条件

备份

mysqldump –uroot –p 数据库名 > 数据名.sql;

恢复

mysql -uroot –p 新数据库名 < 数据名.sql;

排序

select * from 表名 order by 列1 asc|desc [,列2 asc|desc,...]
  • 将行数据按照列1进行排序,如果某些行列1的值相同时,则按照列2排序
  • 默认按照列值从小到大排列(asc)
  • asc从小到大排列,即升序
  • desc从大到小排序,即降序

聚合函数

  • 总数
    • count(*)表示计算总行数,括号中写星与列名,结果是相同的
select count(*) from 表名;
  • 最大值
    • max(列)表示求此列的最大值
select max(字段) from 表名 where 条件;
  • 最小值
    • min(列)表示求此列的最小值
select mix(字段) from 表名 where 条件;
  • 求和
    • sum(列)表示求此列的和
select sum(字段) from 表名 where 条件;
  • 平均值
    • avg(列)表示求此列的平均值
select avg(字段) from 表名 where 条件;

分页

  • 从start开始,获取count条数据
select * from 表名 where limit start ,count;

连接查询

  • 内连接查询:查询的结果为两个表匹配到的数据
select * from 表1 inner join 表2 on 表1.字段 = 表2.字段;
  • 右连接查询:查询的结果为两个表匹配到的数据,右表特有的数据,对于左表中不存在的数据使用null填充
select * from 表1 right join 表2 on 表1.字段 = 表2.字段;
  • 左连接查询:查询的结果为两个表匹配到的数据,左表特有的数据,对于右表中不存在的数据使用null填充
select * from 表1 left join 表2 on 表1.字段 = 表2.字段;

子查询

  • 在一个 select 语句中,嵌入了另外一个 select 语句, 那么被嵌入的 select 语句称之为子查询语句
  • 主要查询的对象,第一条 select 语句
select 字段名 from 表名 where 条件 in (select 字段名 from 表名);

mysql创建用户并授权

创建用户

CREATE USER 'username'@'host' IDENTIFIFD BY 'password';

说明

  • username ,你将创建的用户名;
  • host ,指定该用户在那个主机上可以登陆,如果是本地用户可以用localhost,如果想让用户从任意远程主机登陆,可以用通配符%;
  • password ,该用户登陆的密码。可以为空,如果为空表示该用户可以不需要使用密码登陆;

授权

GRANT privileges ON dbname.tablename TO 'username'@'host'
  • privileges 用户的权限,如SELECT, INSERT, UPDATE等,如果使用所有权限使用ALL
  • dbname 数据库名
  • tablename 表名,
  • 如果是授予该用户所有的数据库和表和所有权限,可用*表示
    列如
GRANT ALL ON *.*TO 'username'@'host'
相关标签: mysql