zoukankan      html  css  js  c++  java
  • mysql

    mysql开始

    1.mysql引言
    -电脑(服务器 要求性能比较高)
    -文件夹 数据库 (多个)
    - user.txt 文件(多个)
    id|name|pwd 字段
    1,xxx,123 数据(记录)
    2,ooo,321

    -school.txt

    client server


    单机程序


    mysql软件来管理你的数据库文件


    它其实是基于socket客户端和服务端的一个软件


    --- mysql服务端

    -- socket服务端 (开启)
    -- 解析指令
    -- 根据指令执行文件操作



    --- mysql客户端

    -- socket客户端 (连接)
    -- 发送指令操作(mysql语句)

    -- 解析指令


    接下来要做什么事情?

    1.下载mysql
    2.安装mysql服务端
    3.客户端连接服务端
    4.学习sql语法规则****




    局域网下的程序

    user
    {
    id:1,
    name:'alex',
    age:18
    }

    mysql的安装

    1.解压目录

    2.添加环境变量
    系统的环境变量

    3.初始化
    mysqld --initialize-insecure

    4.启动服务端
    mysqld 直接启动 这个时候 吼住


    5.连接服务端
    mysql -uroot -p


    查看当前进程的pid号:
    tasklist |findstr mysql

    杀死进程:
    taskkill /F /PID mysql


    6.制作windows服务 一定要以管理员身份运行
    安装windows服务:mysqld --install
    卸载windows服务: mysqld --remove

    命令启动服务:net start mysql
    命令关闭服务:net stop mysql


    查看所有的数据库

    show database;

    使用数据库
    use 数据库的名字
    查看所有的表:
    show tables;

    7.统一字符编码
    1.在C:mysql-5.7.23-winx64mysql-5.7.23-winx64当前的目录下 新建一个my.int
    [mysql]
    # 设置mysql客户端默认字符集
    default-character-set=utf8
    [mysqld]
    #设置3306端口
    port = 3306
    # 设置mysql的安装目录
    basedir=C:mysql-5.7.23-winx64mysql-5.7.23-winx64 # 这个目录一定是自己电脑上的安装mysql目录
    # 设置mysql数据库的数据的存放目录
    datadir=C:mysql-5.7.23-winx64mysql-5.7.23-winx64data # 这个目录一定是自己电脑上的安装mysql数据目录
    # 允许最大连接数
    max_connections=200
    # 服务端使用的字符集默认为8比特编码的latin1字符集
    character-set-server=utf8
    # 创建新表时将使用的默认存储引擎
    default-storage-engine=INNODB

    2.net stop mysql
    再开启 让my.ini文件配置生效
    net start mysql

    3.mysql -uroot -p

    执行 s; 查看数据库配置
    Server characterset: utf8
    Db characterset: utf8
    Client characterset: utf8
    Conn. characterset: utf8


    8.破解密码

    (1)以管理员身份 打开cmd 停掉服务端 net stop mysql

    (2)开启服务端 并跳过所有的授权表
    mysqld --skip-grant-tables

    (3)客户端连接服务端
    mysql -uroot -p

    (4)修改密码:update mysql.user set authentication_string =password('') where User='root';

    (5)刷新权限 flush privileges;

    9.初学sql



    创建数据库:create database db1;


    使用数据库:use db1;



    创建表:
    create table user(id int,name char(8));

    查看表结构:
    desc user;


    插入一条数据:

    insert into user(id,name) values (1,'alex');

    查询记录:
    select name from user;

     

    初始mysql语句

     

    mysql的基本语法

    操作文件夹(库)

    create database db1 charset utf8;

    # 查看当前创建的数据库
    show create database db1;
    # 查看所有的数据库
    show databases;

    alter database db1 charset gbk;

    drop database db1;

    操作文件(表)

    use db1; #切换文件夹
    
    select database(); #查看当前所在文件夹

    create table t1(id int,name char);

    语法:

    复制代码
    create table 表名(
    字段名1 类型[(宽度) 约束条件],
    字段名2 类型[(宽度) 约束条件],
    字段名3 类型[(宽度) 约束条件]
    );
    
    #注意:
    1. 在同一张表中,字段名是不能相同
    2. 宽度和约束条件可选
    3. 字段名和类型是必须的
    复制代码

     

    查 

    复制代码
    #查看当前的这张t1表
    show create table t1;
    
    # 查看所有的表
    show tables;
    
    # 查看表的详细信息
    desc t1;
    复制代码

    # modify修改的意思
    alter table t1 modify name char(6);
    # 改变name为大写的NAME
    alter table t1 change name NAMA char(7);

    # 删除表
    drop table t1;

    操作文件内容(记录)

     增

    # 插入一条数据,规定id,name数据leilei
    insert t1(id,name) values(1,"mjj01"),(2,"mjj02"),(3,"mjj03");

     查

    select id from db1.t1;
    select id,name from db1.t1;
    select * from db1.t1; 

    update db1.t1 set name='zhangsan';
    update db1.t1 set name='alex' where id=2;

     删

    delete from t1;
    delete from t1 where id=2;

     

    mysql: 基于socket的一个C/S架构的软件

    设置utf8的编码:
    my.ini(如果修改了配置,一定要重启mysql服务端)


    破解密码:
    (1) 先把之前的mysql服务端关闭
    (2) 再次开启mysql服务端同时 mysqld --skip-grant

    (3) 客户端 连接服务端
    (4) 修改密码 update mysql.user .... where user = 'root'
    (5) 刷新权限 flush privileges
    (6) 查看进程 tasklist |findstr mysql
    (7) 杀死进程 taskkill /F /PID 进程号
    (8) net start mysql 开启mysql的服务端

    基本常用的mysql语句:

    数据库的创建
    create database db1;

    使用数据库
    use db1;

    创建表:
    create table t1(id int,name char(10));

    插入数据:
    insert into t1(id,name) values (1,'alex'),(2,'wusir');


    查询:
    select * from t1;


    今日内容:


    1.存储引擎
    innodb
    myisam
    memory
    blackhole
    2.数据类型
    mysql强类型的语言
    整型:
    (1)tinyint 默认是有符号的 范围:-128~127
    create table t1(x tinyint unsigned); # 0~255

    (2)int
    验证 显示宽度
    zerofill:宽度不够 用0填充
    create table t2(x int(10) unsigned zerofill);
    insert into t2 values(20);

    select * from t2;

    x

    0000000020


    当定义数值的类型 不用指定显示宽度 用它默认的.
    除了int等指的显示宽度 ,其它的类型都表示存储宽度


    小数:
    float(255,30) 255:表示的是总长 30:小数点后位数
    单精度 随着小数位数的增多 也不准确
    double(255,30)
    双精度 随着小数位数的增多 也不准确 但是要比单精度准确
    decimal(65,30)
    精度 准确的小数
    字符:
    char: 定长 存储速度快 浪费空间

    让char类型显示 字符的长度: SET sql_mode = 'PAD_CHAR_TO_FULL_LENGTH';

    varchar: 变长 存储速度慢 节省空间

    text : 文本



    时间:
    datetime **** 年月日时分秒
    year
    date
    time
    枚举:
    enum



    集合:
    set


    create table user(
    id int,
    name char(10),
    sex enum('male','female','other'),# 多选一
    level enum('vip1','svip','vvip'), # 多选一
    fav set('抽烟','喝酒','烫头') # 多选多
    );


    额外函数:now() length() 获取字节的长度 char_length:获取字符的长度

    3.完整性约束(字段) 用于保证数据的完整性和一致性

    not null (不能为空)与 default null
    create table t1(id int not null default 2);
    # 如果约束了 not null 并且设置default值 那么插入空值 是默认的值



    unique (唯一的)

    单列唯一

    create table dep(
    id int,
    name char(8) unique
    );

    联合唯一

    create table dep2(
    id int unique,
    name char(6) unique

    );


    create table dep2(
    id int,
    name char(6),
    unique(id),
    unique(name)

    );


    组合唯一
    create table dep3(
    id int,
    name char(6),
    unique(id,name)

    );
    primary (主键)

    5.5 版本的以上 至少有一个主键 通常一张表中有一个主键 一般这个主键是id int

    # 单列的主键
    create table t3(
    id int primary key,
    name char(6) not null

    );
    # 多列的主键 ****** 这个地方有坑
    create table t4(
    id int ,
    name char(6),
    primary key(id),
    primary key(name)
    );


    #复合主键

    create table t5(
    id int,
    name char(6),
    primary key(id,name)

    );

    # not null +unique 等价于 primary key


    create table t4(
    id int not null unique,
    name char(6) not null

    );
    auto_increment (自增长)

    约束的字段为自动增长,约束的字段必须同时被key约束


    create table t6(
    id int primary key auto_increment,
    name char(10) not null

    );
    foreign key (外键)

    # 1.先创建被关联表(主表)
    create table dep(
    id int primary key auto_increment,
    name varchar(10) not null,
    descripe varchar(40) not null
    );

    # 2.再创建 关联表(从表)

    create table emp(
    id int primary key auto_increment,
    name varchar(10) not null,
    age int not null,
    dep_id int,
    test_id int,
    constraint fk_dep foreign key(dep_id) references dep(id)
    on delete cascade
    on update cascade,
    constraint fk_dep foreign key(test_id) references test(id)
    on delete cascade
    on update cascade,

    );

    insert into emp values
    (1,'zhangsan',18,1),
    (2,'lisi',19,1),
    (3,'egon',20,2),
    (4,'alex',18,2);

  • 相关阅读:
    Dubbo限制大数据传输的解决方案
    出现The folder is already a source folder
    用Eclipse进行远程Debug代码
    Scanner和BufferReader之区别
    IO操作中的建议
    Android Serialization序列化
    flash画图API:解析obj格式
    UVA 6475 Effective Infection Time
    swift user guide.pdf下载
    【cocos2d-x制作别踩白块儿】第一期:游戏介绍
  • 原文地址:https://www.cnblogs.com/zhaosijia/p/9555879.html
Copyright © 2011-2022 走看看