zoukankan      html  css  js  c++  java
  • MySql初识

    一.安装:

    windows:点击我!

    linux:yum install mysql-server

    windows安装步骤:(5.7.18为例)下载完成后

    1.下载完成后,双击安装程序运行。详细教程点击这里

    2.安装成功后,找到文件安装路径下的BIN目录。默认一般是:C:Program FilesMySQLMySQL Server 5.7in 首先以管理员方式运行命令行,cd C:Program FilesMySQLMySQL Server 5.7in 切换到此目录。

    3.执行 mysqld --initialize-insecure 指令初始化data目录 此时可以看到安装目录下多了data文件夹。

    4.启动并连接mysql:  命令行键入 mysqld 回车便可以开启mysql。 然后可以重开一个cmd 输入mysql -u root -p 回车 (d是服务端开启,没有d是客户端对服务端的连接。-u root 表示root用户,也可更改其它已存在用户。),此时会提示输入密码。如果安装时候设置过密码则输入正确密码回车即可。

    注:如果未添加环境变量,则需要先cd到mysql的bin目录下才可执行相应操作,所以为了方便我们最好应该添加环境变量,具体配置可以看这里;注意bin目录要改成自己对应的真实目录。

    5.添加mysql服务。上一步解决了一些问题,但不够彻底,因为在执行【mysqd】启动MySQL服务器时,当前终端会被hang住,即开启服务端后需要等待客户端的接入,那么做一下设置即可解决此问题:

     # 制作MySQL的Windows服务,在终端执行此命令:  (必须以管理员方式运行终端)

    "c:mysql-5.7.16-winx64inmysqld" --install  (引号内为自身实际路径
    这样便可以为windows注册了mysql服务,以后再开启或者关闭服务时,只需要 net start mysql   |   net stop mysql 便可以。(不知道是不是个例,这里我的mysql服务变成了mysql57 所以对应的需要改成net start mysql57)
     
    如果要移除服务: "c:mysql-5.7.16-winx64inmysqld" --remove  

    二.基本操作

    连接:

    默认:用户root


    查看data所有文件: show databases;

    切换到目录下:use 数据库名称;

    查看目录下所有的表:show tables;

    查看表里所有内容:select * from 表名;

    查看表的对应列内容:select name,age,id from 表名;

    查看账户信息表:mysql数据库user表
    use mysql;
    select user,host from user;

    创建用户:
    create user 'alex'@'192.168.1.1' identified by '123123';  (create user创建用户 'alex'用户名@'ip地址,%表示所有地址' by'密码')
    create user 'alex'@'192.168.1.%' identified by '123123';
    create user 'alex'@'%' identified by '123123';
    授权:
    权限 人

    grant select,insert,update on db1.t1 to 'alex'@'%';   (select查看 insert 插入 updata 更新 on 表明 *.*表示所有文件 to '账户名以及ip')
    grant all privileges on db1.t1 to 'alex'@'%';

    revoke all privileges on db1.t1 from 'alex'@'%';  (解除权限)

    DBA: 用户名密码


    3. 学习SQL语句规则

    操作文件夹
    创建文件夹:create database db2;
    创建文件夹以UTF8编码:create database db2 default charset utf8; *****
    show databases;
    删除文件夹:drop database db2;

    操作文件
    show tables;
    创建表,id限制Int类型,name列限制10个字符 默认编码utf8:create table t1(id int,name char(10)) default charset=utf8;
    engine=innodb,存储引擎,区别: create table t1(id int,name char(10))engine=innodb default charset=utf8;
    id int类型作为主键,主键是唯一的。:create table t3(id int auto_increment primary key,,name char(10))engine=innodb default charset=utf8; *****

    null,可以为空。

    create table t1(
    列名 类型 null,
    列名 类型 not null,
    列名 类型 not null auto_increment primary key,
    id int,
    name char(10)
    )engine=innodb default charset=utf8;
    # innodb 支持事务,原子性操作
    # myisam myisam

    auto_increment 表示:自增
    primary key: 表示 约束(不能重复且不能为空); 加速查找
    not null: 是否为空
    数据类型:

    数字:
    tinyint(

    tinyint[(m)] [unsigned] [zerofill]
    
                小整数,数据类型用于保存一些范围的整数数值范围:
                有符号:
                    -128 ~ 127.
                无符号:
                    0 ~ 255
    
                特别的: MySQL中无布尔值,使用tinyint(1)构造。


    int(

     int[(m)][unsigned][zerofill]
    
                整数,数据类型用于保存一些范围的整数数值范围:
                    有符号:
                        -2147483648 ~ 2147483647
                    无符号:
                        0 ~ 4294967295
    
                特别的:整数类型中的m仅用于显示,对存储范围无限制。例如: int(5),当插入数据2时,select 时数据显示为: 00002


    bigint(

     bigint[(m)][unsigned][zerofill]
                大整数,数据类型用于保存一些范围的整数数值范围:
                    有符号:
                        -9223372036854775808 ~ 9223372036854775807
                    无符号:
                        0  ~  18446744073709551615



    FLOAT
    0.00000100000123000123001230123
    DOUBLE
    0.00000000000000000000100000123000123001230123
    0.00000100000123000000000000000
    decimal
    0.1(唯一精确的小数类型。)

    字符串:
    char(10) 速度快()  ,如存储字符不足10自动补全10
    root
    root
    varchar(10) 节省空间
    root
    PS: 创建数据表定长列往前放

    text

    上传文件:
    文件存硬盘
    db存路径
    时间类型
    DATETIME

    enum (

    枚举类型,
                An ENUM column can have a maximum of 65,535 distinct elements. (The practical limit is less than 3000.)
                示例:
                    CREATE TABLE shirts (
                        name VARCHAR(40),
                        size ENUM('x-small', 'small', 'medium', 'large', 'x-large')
                    );
                    INSERT INTO shirts (name, size) VALUES ('dress shirt','large'), ('t-shirt','medium'),('polo shirt','small');


    set(

    集合类型
                A SET column can have a maximum of 64 distinct members.
                示例:
                    CREATE TABLE myset (col SET('a', 'b', 'c', 'd'));
                    INSERT INTO myset (col) VALUES ('a,d'), ('d,a'), ('a,d,a'), ('a,d,d'), ('d,a,d');




    create table t1(
    id int signed not null auto_increment primary key,
    num decimal(10,5),
    name char(10)
    )engine=innodb default charset=utf8;

    清空表:
    delete from t1;  (计数不归零,不可以回滚)
    truncate table t1;    (针对具有自动递增值的字段,做计数重置归零重新计算。可以回滚)
    删除表:
    drop table t1;

    操作文件中内容
    插入数据:
    insert into t1(id,name) values(1,'alex');
    删除:
    delete from t1 where id<6  
    修改:
    所有age列的值更新为18:update t1 set age=18;
    所有age为17的值改为18:update t1 set age=18 where age=17;
    查看数据:
    select * from t1;

    外键:

    create table userinfo(
    uid bigint auto_increment primary key,
    name varchar(32),
    department_id int,
    xx_id int,
    constraint fk_user_depar foreign key (department_id) references color(id)
    )engine=innodb default charset=utf8;

    create table department(
    id bigint auto_increment primary key,
    title char(15)
    )engine=innodb default charset=utf8;

    今日内容参考博客:
    http://www.cnblogs.com/wupeiqi/articles/5713315.html
    作业:
    http://images2015.cnblogs.com/blog/425762/201608/425762-20160803224643778-2071849037.png
    http://www.cnblogs.com/wupeiqi/articles/5729934.html

  • 相关阅读:
    webservice 使用
    不错的下载网站。
    nvarchar 删除 tab 空格
    easyui juery 使用中发现的问题
    jquery easyui 文档资料
    easyui 合并单元格
    extjs4 中汉字显示不好看存在的问题
    微软语音提示
    一个简单的页面跳转
    导出 sqlsever 到access
  • 原文地址:https://www.cnblogs.com/mitsui/p/6945817.html
Copyright © 2011-2022 走看看