参考:http://www.cnblogs.com/wupeiqi/p/5713315.html

单机程序(自己DB)
    
    单机程序(公用DB)
 
    MySQL:是用于管理文件的一个软件
        - 服务端软件
            - socket服务端
            - 本地文件操作
            - 解析指令【SQL语句】
        - 客户端软件(各种各样)
            - socket客户端
            - 发送指令
            - 解析指令【SQL语句】
        
        PS:
            - DBMS数据库管理系统
            - SQL语句
            
    技能:
        - 安装 服务端和客户端
        - 连接
        - 学习SQL语句规则;指示服务端做任意操作
        
 
    其他类似软件:
        关系型数据库:sqllite,db2,oracle,access,sql server MySQL
        非关系型数据库:MongoDB,redis
    
MySQL在linux下安装

在安装过程中还需要设置密码。

mysql -u root -p(连接)

show databases;(数据库)

show tables;(表)

create database 数据库名;

创建用户及授权

创建的用户登录

 操作文件夹、操作文件、操作文件内容

学习SQL语句规则

操作文件夹

create database db2;
create database db2 default charset utf8; (兼容中文)
show databases;
drop database db2;

操作文件
show tables;
create table t1(id int,name char(10)) default charset=utf8;
create table t1(id int,name char(10)) engine=innodb default charset=utf8;        #engine = innodb,传输时中断,数据不会出错。出错回滚回原状态。
create table t3(id int auto_increment primary key,name char(10))engine=innodb default charset=utf8;

create table t1(
        列名 类型 null,     #可以为空
        列名 类型 not null,    #不允许为空
        列名 类型 not null auto_increment primary key,
            id int,
            name char(10)

)engine=innodb default charset=utf8;

操作文件中内容

在表中插入数据:insert into t1(id,name) values(1,'alex');

可以为空null

auto_increment,id自增

一个表中只能有一个自增列,自增的,必须是主键,auto_increment primary key,primary key对该列进行约束,不能重复,不能为空,可以快速查找。

默认值

默认值,创建列时可以指定默认值,当插入数据时如果未主动设置,则自动添加默认值

            create table tb1(
nid int not null defalut 2, #默认值
num int not null
)

清空表

delete from t2;  #清除表中的内容,再添加时会从上一次自增id处开始。

truncate table t1; #清除表中的内容,再添加时会从1处开始,而且速度块。

delete from t1 where id<6;

改:update t1 set age = 18 where age =17;         #age 17全改为18

删除表

drop table t1;

表内容操作

1、增

1
2
3
insert into 表 (列名,列名...) values (值,值,值...)
insert into 表 (列名,列名...) values (值,值,值...),(值,值,值...)
insert into 表 (列名,列名...) select (列名,列名...) from

2、删

1
2
delete from
delete from where id=1 and name'alex'

3、改

1
update set name 'alex' where id>1

4、查

1
2
3
select * from
select * from where id > 1
select nid,name,gender as gg from where id > 1

修改表

 
添加列:alter table 表名 add 列名 类型
删除列:alter table 表名 drop column 列名
修改列:
        alter table 表名 modify column 列名 类型;  -- 类型
        alter table 表名 change 原列名 新列名 类型; -- 列名,类型
  
添加主键:
        alter table 表名 add primary key(列名);
删除主键:
        alter table 表名 drop primary key;
        alter table 表名  modify  列名 int, drop primary key;
  
添加外键:alter table 从表 add constraint 外键名称(形如:FK_从表_主表) foreign key 从表(外键字段) references 主表(主键字段);
删除外键:alter table 表名 drop foreign key 外键名称
  
修改默认值:ALTER TABLE testalter_tbl ALTER i SET DEFAULT 1000;
删除默认值:ALTER TABLE testalter_tbl ALTER i DROP DEFAULT;
 
改变添加位置: alter table 表名 auto_increment = 3;

数据类型         
                数字:
                    tinyint
                    int
                    bigint
                    
                    FLOAT
                        0.00000100000123000123001230123
                    DOUBLE
                        0.00000000000000000000100000123000123001230123
                        0.00000100000123000000000000000
                    decimal(小数时推荐)  num decimal(10,5)  (总位数,精确数)
                        0.1
                    
                字符串:
                    最多255个字符
                    char(10)      速度快()
                        root    未沾满则填充满        
                    varchar(10)   节省空间
                        root  占四个位置,节省空间,定长
                                                                                           PS: 创建数据表定长列往前放
                    
                    text (长度比char大)                
                    上传文件:  
                        文件存硬盘(过大文件不适合放数据库)
                        db存路径
                时间类型
                    DATETIME
            
                enum枚举   插入时只能选择枚举中一个
                set集合    只能插入集合set('a', 'b', 'c', 'd')中的任意组合'a, b'

外键:

department与id对应。

外键:
 节省空间
        create table userinfo(
            uid int auto_increment primary key,        自增
            name varchar(32),
            department_id int,
            xx_id int,
            constraint fk_user_depar foreign key (department_id) references department(id)          #约束department 与 id对应
        )engine=innodb default charset=utf8;
        
        create table department(
            id bigint auto_increment primary key,
            title char(15)
        )engine=innodb default charset=utf8;

 自增列起始值与步长

alter table 表名 auto_increment = 20;

基于会话级别:
        show session variables like 'auto_inc%';    查看全局变量
        set session auto_increment_increment=2;     设置会话步长,该设置的步长只在当前窗口下有效

基于全局级别:
        show global variables like 'auto_inc%';        查看全局变量
        set global auto_increment_increment=2;         设置会话步长

唯一索引         能确定某个数据列将只包含彼此各不相同的值(如身份证号)
        create table t1(
            id int ....,
            num int,
            xx int,
            unique 唯一索引名称 (列名num,列名xx),                                  #联合唯一索引
            constraint ....
        )
        #

id num xx
        1   1   1  联合索引唯一   这一行
        2   1   2                          与这一行不同
        PS:  
            唯一:
                约束不能重复(可以为空)
                PS: 主键不能重复(不能为空)
            加速查找

打开和停止服务

查看新建的数据库nzp

练习:http://www.cnblogs.com/wupeiqi/articles/5729934.html

答案:https://www.cnblogs.com/wupeiqi/articles/5748496.html

ERROR 1215 (HY000): Cannot add foreign key constraint 解决方法

因为你要添加外键时,你的外键类型是int

而引用的主键类型也是 int,如果你的主键设置auto_increment(那么你的字段类型实际上是unsigned_int)

主键,外键类型不一致,所以无法添加外键。

所以此时将我们的外键字段类型改为无符号整数。那么就可以成功添加外键了。

MySQL(安装,服务,创建用户及授权)的更多相关文章

  1. 制作MySQL的Windows服务+创建用户及授权

         在上一篇随笔中详述了MySQL的Windows 64位版本的安装,以及初始化操作.启动服务端.客户端连接.一些基本的文件操作等.然而在进行这些操作的时候,需要我们去输入一长串的路径和命令才能 ...

  2. 命令行下创建MySQL数据库与创建用户以及授权

    先以root用户登录mysql: C:\Users\XXX>mysql -u root -p 输入密码后登录,接下来操作如下: 1.创建数据库 语法:create schema [数据库名称] ...

  3. MySQL数据库(1)- 数据库概述、MySQL的安装与配置、初始SQL语句、MySQL创建用户和授权

    一.数据库概述 1.什么是数据(Data) 描述事物的符号记录称为数据,描述事物的符号既可以是数字,也可以是文字.图片,图像.声音.语言等,数据由多种表现形式,它们都可以经过数字化后存入计算机. 在计 ...

  4. mysql 创建用户及授权(2)

    一. MySQL初始密码 新安装的MySQL默认是没有密码的,设置初始密码可以用以下命 mysqladmin -u root password 'new-password' mysqladmin -u ...

  5. CentOS如何安装MySQL8.0、创建用户并授权的详细步骤

    # 安装相关软件 yum install -y gcc gcc-c++ openssl openssl-devel ncurses ncurses-devel make cmake # 获取MySQL ...

  6. Mysql基础(一):Mysql初识、基本指令、数据库密码相关、创建用户及授权

    来源:https://www.cnblogs.com/liubing8/p/11432534.html 目录 数据库01 /Mysql初识.基本指令.数据库密码相关.创建用户及授权 1. 数据库概述 ...

  7. 数据库01 /Mysql初识、基本指令、数据库密码相关、创建用户及授权

    数据库01 /Mysql初识.基本指令.数据库密码相关.创建用户及授权 目录 数据库01 /Mysql初识.基本指令.数据库密码相关.创建用户及授权 1. 数据库概述 2. 数据库管理系统/DBMS ...

  8. MySQL创建用户与授权(CentOS6.5)

    1.相关SQL语句 #创建用户与授权方法 ##本地访问 create user 'zend'@'localhost' IDENTIFIED BY '123456'; grant ALL privile ...

  9. python 全栈开发,Day63(子查询,MySQl创建用户和授权,可视化工具Navicat的使用,pymysql模块的使用)

    昨日内容回顾 外键的变种三种关系: 多对一: 左表的多 对右表一 成立 左边的一 对右表多 不成立 foreign key(从表的id) refreences 主表的(id) 多对多 建立第三张表(f ...

随机推荐

  1. HDFS高可用性及其分布式系统思想基础

    源自单点失效问题,也就是当NameNode不可用的时候,用什么办法可以平滑过渡? 最直接的办法是再添加一个备用的NN,这就产生了Active NameNode和Standby NameNode的设计思 ...

  2. VK Cup 2016 D. Bear and Two Paths 模拟

    D. Bear and Two Paths time limit per test 2 seconds memory limit per test 256 megabytes input standa ...

  3. Jmeter的一个jmx文件(备忘)

    <?xml version="1.0" encoding="UTF-8"?> <jmeterTestPlan version="1. ...

  4. Java 8 Stream API

    Java 8 Stream API JDK8 中有两大最为重要的改变.第一个是 Lambda 式:另外 Stream API(java.util.stream.*) Stream 是 JDK8 中处理 ...

  5. linq group by / distinct

    https://www.cnblogs.com/qixu/p/6033532.html http://www.cnblogs.com/A_ming/archive/2013/05/24/3097062 ...

  6. centos6.5 设置ssh无密码登录

    :关闭防火墙 vim /etc/selinux/config 把SELINUX=enforcing修改为SELINUX=disabled   A机器root连接B机器root用户 (root用户登录) ...

  7. RAC环境数据库重启实例

    1.重启之前最好先看一下节点信息和运行状态 可以通过srvctl status database -d 数据库名 //查看节点信息 Crs_stat //查看节点状态 可以看到数据节点它由两个实例组成 ...

  8. AWS S3 CLI的安装和配置

    以Ubuntu系统为例,说明如何使用CLI调试AWS S3环境: 1. 安装 # sudo pip install awscli 2. 配置AWS CLI 执行命令aws configure, 注意, ...

  9. 常用算法 (JS实现)

    全排序列 function swap(array,a,b){ var m=array[a]; array[a]=array[b]; array[b]=m; } function full_sort(a ...

  10. hdu 4950 打怪

    http://acm.hdu.edu.cn/showproblem.php?pid=4950 给定怪兽血量h,你攻击力a,怪物回血力b,你攻击k次要休息一次,问能否杀死怪兽 特判一次打死怪兽的情况和第 ...