数据库之MySQL基本操作

数据库之MySQL

可以把MySQL看成一款支持远程操作文件的软件。

库 >>> 文件夹

表 >>> 文件

记录 >>> 文件内一行行的数据叫做一条条的记录

表头:就是表格的第一行数据

字段:字段名+字段类型

本质:一款基于网络通信的软件

任何基于网络通信的软件,底层都是socket

服务端:

-基于socket通信

-收发消息

-SQL语句(是一个公共的标准)

客户端:

-基于socket通信

-收发消息

-SQL语句

ps:MySQL不单单支持MySQL的客户端来操作,也支持其他语言直接操作。Python、Java、php语法都不一样,指定标准SQL。

DBMS:数据库管理系统
  • 关系型数据库:数据与数据之间可以有关联和限制

    MySQL,oracle,sqlite,db2,sql server

    关系型数据库通常都是表结构,意味着使用关系型数据库时,第一步就是确定关系结构。

    字段有特定的类型。

  • 非关系型数据库:通常都是以k/v键值对的形式存储数据。

    redis, mongodb(文档型数据库,非常接近关系型的非关系型数据库),memcache

MySQL文件结构:

bin: 执行文件夹

​ mysqld 服务端

​ mysql 客户端

docs: 文档

lib: 库

data: 数据库所在文件夹

常用操作
  • mysql中的语句以 ;结尾。

  • sql语句输错的时候输入 c 退出

  • 客户端登录:mysql -h 127.0.0.1 -P 3306 -uroot -p

    可以简写:mysql -uroot -p

    如果不输入用户名和密码也可以进去的话, 默认是访客模式登陆 所能用到的功能很少

  • 客户端退出:exit / quit

  • windows系统下,需要将mysqld服务端制作成系统服务

    mysqld --install

  • 修改密码

    set password=password('your password')

    alter user 'root'@'localhost' identified by 'Quattro!';

配置文件

  • s 查看mysql服务端简单配置

  • 通常情况下配置文件的后缀都是 ini 结尾

  • mysql自带的配置文件不要修改,但是可以新建一个 my.ini 文件,mysql服务端在启动的时候会自动加载你的 my.ini 配置文件里面的配置。linux系统要创建一个 my.cnf 文件

    1、在mysql文件目录下创建配置文件 my.cnf

    2、修改 my.cnf 文件权限为 777 :sudo chmod 777 my.cnf

    3、填写配置信息

    [mysqld]
    character-set-server=utf8
    collation-server=utf8_general_ci
    
    [client]
    default-character-set=utf8
    
    [mysql]
    user='root'
    password=123
    default-character-set=utf8
    

    4、修改文件权限为 664 :sudo chmod 664 my.cnf 。因为文件权限只有是 664 ,mysql才认为是安全的。

    5、重启mysql服务端

  • 修改完配置文件需要重新启动服务端才能生效。

  • linux下Mysql启动时读取配置文件的顺序为
    1./etc/my.cnf
    2./etc/mysql/my.cnf
    3./usr/local/mysql/etc/my.cnf(自己安装mysql的目录)
    4.~/my.cnf

数据库的基本操作:

库:类似于文件夹
  • create database db1;

  • show databases; 查看所有数据库

    show create database db1; 查看单个数据库

  • alter database db1 charset='gbk'; 修改编码

  • drop database db1; 删除

表:

在创建表的时候需要先指定库:use 库名

查看当前所在的库:select database();

  • create table userinfo(id int, name char);

  • show tables; 查看该数据库下所有表

    show create table userinfo; 查看单个表

    desc userinfo; <=> describe userinfo;

  • alter table userinfo modify name char(32);

  • drop table userinfo;

记录
  • insert into userinfo values(1,2),(3,4)

  • select * from userinfo

    select name from userinfo

    select id, name from userinfo where id=1 or name=tank

  • update userinfo set name='1' where id=1

    update userinfo set name='1', password='2' where id=1

  • delete from userinfo where id=1;

    delete from userinfo;

设置严格模式
	set session  临时有效  只在你当前操作的窗口有效
	set global   全局有效  终生有效
	set global sql_mode = 'STRICT_TRANS_TABLES';
	设置完之后 你只需要重新退出客户端再次进入即可