参考: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. 团队项目:二次开发--v.2.1--软件工程

    原先代码,对于基本对象的Get,Set方法构造函数等方法与实现基本功能的方法统一放到了一起,容易造成代码不清晰,别人比较难阅读的情况.而且其中代码冗余比较多. 改进代码,进行了层次的分析,将基本对象与 ...

  2. Jmeter中控制某一段脚本失败后重复执行,并在每个HTTP Request名字中加上循环次数

    ================================================== 1.While Controller之前有一个BeanShell Sampler,用于Init N ...

  3. process_进程池

    from multiprocessing import Poolimport os,timeimport multiprocessingdef func(msg): print("msg:& ...

  4. 《JavaScript高级程序设计》笔记

    1. 当在函数内部定义了其他函数时,就创建了闭包.闭包有权访问包含函数内部的所有变量. 2. 闭包可以分隔变量空间,不会占用全局空间而造成相互间的干拢.使用闭包可以在JavaScript中模仿块级作用 ...

  5. msys2 设置home路径为windows用户路径

    1配置/etc/nsswitch.conf db_home: windows 2(可不配)增加windows环境变量HOME为%USERPROFILE% 3(可不配)ssh默认仍使用msys中的hom ...

  6. part1:13-linux编译器GCC

    Gcc特点 Gcc基本用法 1.gcc的概念 GCC(GNU Compiler Collection,GNU编译器套装),是一款由GNU开发的编程语言编译器.GCC原名为GNU C 语言编译器,因为它 ...

  7. 让IIS 7 如同IIS 8 第一次请求不变慢

    当我们把网站部署在IIS7或IIS6S的时候,每当IIS或是Application Pool重启后,第一次请求网站反应总是很慢,原因大家都知道(不知道可以参考这个动画说明ASP.NET网页第一个Req ...

  8. 编译 link

    --generating dsym file change the appropriate one from 'DWARF with dSYM file' to just 'DWARF',This s ...

  9. Json和XML解析

    NSXMLParse 关于XML,有两种解析方式,分别是SAX(Simple API for XML,基于事件驱动的解析方式,逐行解析数据,采用协议回调机制)和DOM(Document Object ...

  10. hdu-1181(bfs)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1181 思路:bfs,就是每次找到匹配麻烦一点,注意如果结尾和开头相同,就不算. #include< ...