[mysql]数据库基础知识

数据库管理系统DBMS

  软件

    bin

    config

    db (保存数据)

写程序:

  数据库在本地

    找到目录

    添加数据

  数据库在远程

    socket连接上远程机器

    socket发送命令

    需要做的事情

      程序

        socket客户端

      数据

        socket服务端

      规则

        add |内容

        delete | 内容

        ........

      socket服务端和客户端用户认证,授权,限制

 远程连接数据库要做的这些事情被一些人整合成一个软件,这些软件就是数据库软件,例如:

  oracle,mysql,sqlerver,sqlite,access......

下载安装

  1.下载

  2.解压

  3.运行服务器端

  4.客户端连接

#将mysql服务器端制作成一个 windows服务

  net start mysql

  net stop mysql

  ===, 打开服务管理

×××××××××××正题××××××××××××××××××××××××××××××××××××××××

    ××××××××××××mysql×××××××××××××

1.概念

  数据库  >> 文件夹

  数据库表  >>  文件夹里的文本文件

  数据行   >> 文件中的一行数据

2.启动服务器

  net start mysql

  或者

    /etc/init.d/mysql start

  客户端连接

    mysql -u root -p

3.  基础操作命令

  show databases;  # 查看当前mysql都有哪些数据,根目录里有哪些文件夹

  create database 数据库名;   #创建文件夹

  use  数据库名;   #使用选中的数据库,进入数据库目录

  show tables;    #查看当前数据库下都有哪些表

  create table  表名 (nid int,name varchar(22),pwd varchar(64));    #创建数据库表

  select × from 表名;  # 查看表中的所有数据

  insert into 表名(nid,name,pwd) values(1,'zhangw','1234'); # 插入数据

4.用户授权

  用户管理特殊命令:

    创建用户

      create user '用户名'@' ip地址' identfied by '密码';

    删除用户

      drop user '用户名'@'IP地址';

      修改用户

      rename user '用户名'@'IP地址' to '新用户名'@'IP地址';

    修改密码

      set user '用户名'@'ip地址' = Password('新密码')

  权限

    默认,没有任何权限

    grant  权限 on 数据库.表 to '用户'@'ip地址'  ---授权

    

5.远程连接

  不再重复操作,直接发送命令给服务器

  远程操作的内容:数据库,表,行

  开户和授权

    密码,必须用

    其他,推荐用

  客户端连接

    mysql -u root -h 192.168.1.1 -p  #-h   指定主机

    

6.SQL语句

  数据库

    show databases;

    create database     数据库名称 ;

    create database  数据库名称 default charset utf8 collate utf8_general_ci;

    use 数据库名称;

    drop database 数据库名称;

  表

    show tables;

    desc tb1;

    create table tb1(nid int,name varchar(10));

    #  主键

      不能为null,

      不能重复,

       一张表只有一个主键(可以多列组成主键)

    #用法

      nid int auto_increment primary key

    #  创建tb5, nid做主键,name 变长16,age 默认19,选用innode引擎,默认编码utf8

    create table tb5

    (  

      nid int not null auto_inctement primary key,

      name varchar(16),

      age int default 19

      )engine = innodb default charset=utf8;

    # 外键foreign key

7.字符串

  定长 char(22)

    查找速度快,浪费空间

  变长 varchar(22)

    查找速度慢,节省空间

8.二进制数据

  TinyBlob,Blob,MediumBlob,LongBlob

    上传文件

    Blob, 强制二进制方式

    varchar(65)

9. 时间

  DATE

    YYYY-MM-DD(1000-01-01/9999-12-31)

  TIME

    HH:MM:SS('-838:59:59'/'838:59:59')

  YEAR

    YYYY(1901/2155)

  DATETIME

    YYYY-MM-DD HH:MM:SS(1000-01-01 00:00:00/9999-12-31 23:59:59    Y)

  TIMESTAMP

    YYYMMDD HHMMSS(1970-01-01 00:00:00/2037 年某时)

  

10.连表操作

  select * form a,b where a.x = b.o

  

  join

    left join

      select * from a LEFT OUTER JOIN b ON a.x = b.o

    inner join

      select * from a inner JOIN b ON a.x = b.o

  

人生短短数十载,经不起几次重头再来
原文地址:https://www.cnblogs.com/bk770466199/p/5980982.html