作为过来人,给“新司机”一点建议:运维时需要搭建的生产环境,需尽量保持与测试环境一致;但搭建环境时,又苦于找不到合适的版本怎么办?不用怕,我是一个体贴的人,管杀也管埋(该链接为MySQL 各个历史版本下载的链接:http://downloads.mysql.com/archives/community/)。
 
1.MySQL
    [1]数据库简介
        - DataBase
        - 存储数据的仓库
        - 关系型数据库
        - 关系型数据库中保存全都是表格(Table)
        - 数据库的有点:
            1.可以保存大量的信息
            2.有较好的查询性能
 
        - 常见数据库:
            - MySQL --> 甲骨文
            - DB2 --> IBM
            - Oracle --> 甲骨文
            - SQL Server --> 微软
 
    [2]SQL(Structured Query Language)简介
        - 结构查询语言
        - SQL就是一门来操作数据库的语言
        - SQL的国际化标准是由ISO组织来定义的
            大部分厂商都对SQL标准进行了实现,而各个厂商又在SQL标准上进行了扩展,
                数据库厂商自己扩展的功能,我们称为方言。
        - SQL的基本语法:
            1.SQL是大小写不敏感的,但是我们要求关键字要大写。
            2.SQL语句要求以;结尾(主要指在命令行窗口)
            3.SQL中的命名规范,单词之间使用下划线连接
 
    [3]数据库操作
        > 基本操作
            - 登录:
                mysql -u用户名 -p密码
            - 退出:
                quit/exit
            - 显示所有数据库:
                SHOW DATABASES;
            - 使用数据库:
                USE 数据库名;
            - 创建数据库:
                CREATE DATABASE 数据库名;
            - 显示所有表:
                SHOW TABLES;
            - 查看表中的数据:
                SELECT * FROM 表名;
            - 删除数据库
                DROP DATABASE 数据库名;
 
        > 表操作:
            - 创建表
                CREATE TABLE 表名(
                    列名 列类型,
                    列名 列类型,
                    ...
                    列名 列类型
                );
 
                例子:
                    CREATE TABLE t_stu(
                        name VARCHAR(50)
                    );
 
            - 查看表结构
                DESC 表名;
 
            - 删除表
                DROP TABLE 表名;
 
 
        > 常用数据类型
            - 字符串
                CHAR
                    - 定长字符串,char的长度是固定的
                        比如:CHAR(10),长度永远为10
                            如果内容的长度不够10,则自动在字符串后边补空格
                        char型数据在保存时会自动去掉后边的空格
                    - 一般我们使用char型来保存一些长度固定的数据,身份证号
                    - CHAR的最大长度是255   
 
                VARCHAR
                    - 可变长度的字符串
                    - 最大长度65535
 
            - 数值
                INT
                    - 整型
                    - 创建int类型也可以指定长度
                    - int(11),默认长度也是11,所以在创建int型的不用指定长度
 
                DOUBLE
                    - 浮点型
                    - 表示浮点数
                    - 声明double可以指定一个长度
                        double(5,2) --> 表示数字长度是5位,其中有两位小数
 
                DECIMAL
                    - 浮点类型
                    - 十进制精确计算的浮点类型
                    - DECIMAL使用方式和DOUBLE类似,也是可以声明一个长度 DECIMAL(6,2)
                    - 一般涉及到钱的数据时我们需要使用
 
            - 时间
                DATE
                    - 只保存日期
                    - 2016-1-9
                TIME
                    - 只保存时间
                    - 11:21:00
                DATETIME
                    - 同时保存时间和日期
                    2016-1-9 11:21:00
                TIMESTAMP
                    - 保存时间戳
                    - 时间戳值:1970-1-1 0:0:0 到当前时间的一个毫秒数
                    - 时间戳默认在数据被修改后自动更新
 
        - 创建一个学生表
            int id
            String name
            Date birth
            String gender
 
            CREATE TABLE t_stu(
                id INT,
                name VARCHAR(50),
                birth DATE,
                gender CHAR(2)
            );
 
 
 
        > 数据库的操作主要就是对表中数据的增删改查(CRUD)
 
        > 数据的修改
            - 插入数据
                > INSERT INTO 表名 (列名1,列名2,列名3, ... 列名N) VALUES(列值1,列值2,列值3 ... 列值N);
                    - 例子,我们向t_stu表中插入一个学生信息
                        id为1,name为sunwukong,birth为1980-8-8,性别为male
                    - INSERT INTO t_stu (id, name, birth, gender) VALUES(1,'sunwukong','1980-8-8','male')
                    - 在mysql中操作字符串时一定要使用单引号'
                        INSERT INTO t_stu (id, name, birth) VALUES(1,'sunwukong','1980-8-8');
 
                > INSERT INTO 表名 VALUES(列值1,列值2,列值3 ... 列值N);
                    - 如果表名后边不写列名,则values中的值,应该按照创建表时顺序来写
                    INSERT INTO t_stu VALUES(3,'zhubajie','1970-7-1','male');
 
 
            - 修改数据
                > UPDATE 表名 SET 列名1=列值1,列名2=列值2, ... 列名N=列值N [WHERE 条件];
                > 例子:
                    UPDATE t_stu SET gender='male'
                    这种不加条件的update语句,会修改表中的所有数据。
                        如果只希望修改部分数据,则需要在语句后边添加上条件。
 
                > 例子2
                    UPDATE t_stu SET gender='怪蜀黍' WHERE id=4;
                     - 在WHERE关键字后边可以附加条件,这样语句只会对符合条件的数据生效
                     - SET之后的=号,代表赋值
                     - WHERE之后的=号,代表判断
                     - 大部分逻辑运算符都可以在SQL中使用
 
                > 例子3
                    UPDATE t_stu SET gender='猪' WHERE id=3 AND name='zhubajie';
                    UPDATE t_stu SET gender='男' WHERE id=3 OR id=4;
                    - AND表示并列,AND前后的条件必须同时满足,才会执行
                    - OR表示或者,OR前后的条件只要满足一个就好执行。
 
 
            - 删除数据
                > DELETE FROM 表名 [WHERE 条件];
                > 例子1:
                    DELETE FROM t_stu;
                    - 不带条件的删除,会删除表中的所有数据(慎用)
 
                > 例子2:
                    DELETE FROM t_stu WHERE id=3;
                    - 删除id为3的学生信息
 
            - 清空表
                > TRUNCATE TABLE 表名;
                > 清空表时干了两件事:
                    1.删除整个表
                    2.创建一个新表
 
 
        > 数据的查询
            - 查询表中的所有列
                SELECT * FROM 表名 [WHERE 条件];
                * 代表查找全部的列
            - null比较特殊,不能用=判断,使用IS NULL
 
            - 查询表中的指定列
                SELECT 列名1 , 列名2 , ... 列名N FROM 表名 [WHERE 条件];
                SELECT empno , ename , job , mgr , hiredate , sal , comm , deptno FROM emp;
                - 真正开发时,数据库表的列数往往是很多的,所以向SELECT * FROM emp这种语句,开发中用的不多。
 
 
            - 使用别名
                SELECT 列名1 AS 别名1 , 列名2 AS 别名2 , ... 列名N AS 别名N FROM 表名 [WHERE 条件];
 
                - 例子:我们可以在列名后跟着一个AS关键字,然后设置别名
                SELECT empno AS 员工号 , ename AS 姓名 , job AS 职位 , mgr AS 上级 , hiredate AS 入职日期 , sal AS 工资 , comm AS 提成 , deptno AS 部门编号 FROM emp;
 
                SELECT 列名1 别名1 , 列名2 别名2 , ... 列名N 别名N FROM 表名 [WHERE 条件];
                - 例子:也可以不使用AS关键字,直接在列名后加一个空格,然后加别名
                SELECT empno 员工号 , ename 姓名 , job 职位 , mgr 上级 , hiredate 入职日期 , sal 工资 , comm 提成 , deptno 部门编号 FROM emp;
 
            - 排序
                > 升序
                    SELECT * FROM 表名 ORDER BY 列名 ASC;
                    例子:
                        SELECT * FROM emp ORDER BY sal ASC;
 
                > 降序
                    SELECT * FROM 表名 ORDER BY 列名 DESC;
                    例子:
                        SELECT * FROM emp ORDER BY sal DESC;
 
        > 函数(做一些计算)
            1.COUNT
                - 用来对查询到数据进行计数的。
                - 例子1:   
                    SELECT COUNT(*) FROM emp;
                    - COUNT(*) 统计所有数据的行数
                - 例子2:
                    SELECT COUNT(列名) FROM emp;
                    - 统计当前列不为null的数据的条数
                - 列子3:
                    SELECT COUNT(1) FROM emp;
                    - 和CONUT(1)和CONUT(*)一样
            2.MAX
                - 获取多个值中的最大值
                - 例子:
                    SELECT MAX(sal) FROM emp;
            3.MIN
                - 获取多个值中的最小值
                - 例子:
                    SELECT MIN(sal) FROM emp;
            4.AVG
                - 多个值取平均值
                - 例子:
                    SELECT AVG(sal) FROM emp;
            5.SUM
                - 多个值得求和:
                - 例子:
                    SELECT SUM(sal) FROM emp;
    [4]约束
        - 约束就是为表中的内容添加限制条件
        > 主键(PRIMARY KEY)
            - 就是一条数据的唯一标识,通过主键可以快捷的检索到数据。
 
            特点:
                - 唯一
                - 非空
                - 可以被引用
 
            - 创建主键:
                CREATE TABLE t_user(
                    id INT PRIMARY KEY,
                    `name` VARCHAR(50)
                );
 
        > 主键自增(AUTO_INCREMENT)
            - 主键自增指的是主键自动生成并且自动累加
            - 注意:自增主键只适用于int型主键,字符串主键不能使用。
            - 创建方式:
                CREATE TABLE t_user2(
                    id INT PRIMARY KEY AUTO_INCREMENT,
                    uname VARCHAR(50)
                )
 
        > 非空(NOT NULL)
            CREATE TABLE test_tb(
                username VARCHAR(50) NOT NULL
            )
        > 唯一(UNIQUE)
            CREATE TABLE test_tb(
                username VARCHAR(50) UNIQUE
            )
 
        > 外键(FOREIGN KEY)
            - 外键关联指的是将一个表中的列和另一个表的主键进行关联。
                FOREIGN KEY (列名) REFERENCES 引用表的表名(引用列的列名)
                FOREIGN KEY (dept_id) REFERENCES dept(id)
 
            - 可以被外键关联的列,一定是主键   
            - 注意:含外码的关系称为参照关系。
 
            - 一对多 1-N
                例子:部门与员工
                 - 一个部门可以有多个员工,一个员工只能属于一个部门
                 - 一对多的关系我们一般是通过在多的一方来保存一的一方主键
                #一对多的关系
                #创建一个dept表
                CREATE TABLE dept (
 
                    id INT PRIMARY KEY AUTO_INCREMENT,
                    dept_name VARCHAR(50)
 
                )
 
                #创建一个员工表
                CREATE TABLE emp(
                    id INT PRIMARY KEY AUTO_INCREMENT,
                    emp_name VARCHAR(50),
                    dept_id INT,
                    FOREIGN KEY (dept_id) REFERENCES dept(id)
                )
 
            - 一对一 1-1
                > 夫妻的关系就是一对一的关系
                > 一个丈夫只能有一个妻子,一个妻子只有一个丈夫
 
                #一对一关系
                #创建一个husband表
                CREATE TABLE husband(
                    id INT PRIMARY KEY,
                    hname VARCHAR(50)
                )
 
                #创建一个wife
                CREATE TABLE wife(
                    id INT PRIMARY KEY,
                    wname VARCHAR(50),
                    FOREIGN KEY (id) REFERENCES husband(id)
                )
 
                #插入一个husband
                INSERT INTO husband VALUES(1,'武大郎');
 
                INSERT INTO husband VALUE(1,'西门庆');
 
                #插入一个wife
                INSERT INTO wife VALUES(1,'潘金莲');
 
            - 多对多 N-N
                > 老师和学生
                - 一个老师可以有多个学生
                - 一个学生可以有多个老师
                - 多对多的关系我们一般都是以创建一个中间表的形式来映射
                - 例子:
                #多对多的关系
                #创建一个tea
                CREATE TABLE tea(
                    id INT PRIMARY KEY AUTO_INCREMENT,
                    tname VARCHAR(50)
                )
 
                #创建一个学生
                CREATE TABLE stu(
                    id INT PRIMARY KEY AUTO_INCREMENT,
                    sname VARCHAR(50)
                )
 
                #创建一个中间表
                CREATE TABLE tea_stu(
                    tea_id INT,
                    stu_id INT,
                    FOREIGN KEY (tea_id) REFERENCES tea(id),
                    FOREIGN KEY (stu_id) REFERENCES stu(id)
                )
 
                #插入几个老师
                INSERT INTO tea VALUES(NULL,'张三丰');
                INSERT INTO tea VALUES(NULL,'陈近南');
                INSERT INTO tea VALUES(NULL,'扫地僧');
 
                #插入几个学生
                INSERT INTO stu VALUES(NULL,'张无忌');
                INSERT INTO stu VALUES(NULL,'韦小宝');
                INSERT INTO stu VALUES(NULL,'乔峰');
                INSERT INTO stu VALUES(NULL,'杨过');
 

转载请注明出处!

http://www.cnblogs.com/libingbin/

感谢您的阅读。如果文章对您有用,那么请轻轻点个赞,以资鼓励。

 

Sql与MySQL简单入门的更多相关文章

  1. Mysql简单入门

    这两天比较懒,没有学习,这个是我问一个学java的小伙伴要的sql的总结资料,大体语句全在上面了,复制到博客上,以后忘记可以查看 #1命令行连接MySQLmsyql -u root -proot;#2 ...

  2. Linux上SQL及MYSQL简单操作

    Linux上检查MYSQL是否安装: $ sudo service mysql start Ubuntu Linux安装配置MYSQL: $ sudo apt-get install mysql-se ...

  3. [原创]MYSQL的简单入门

    MYSQL简单入门: 查询库名称:show databases; information_schema mysql test 2:创建库 create database 库名 DEFAULT CHAR ...

  4. Mysql基本操作、C++Mysql简单应用、PythonMysql简单应用

    MySql基本操作 -- 当指定名称的数据库不存在时创建它并且指定使用的字符集和排序方式 CREATE DATABASE IF NOT EXISTS db_name CHARACTER SET UTF ...

  5. day39——SQL语句简单介绍、库、表、记录、安装mysql简单命令

    day39 SQL语句简单介绍 库(增删改查) 查看数据库 show databases; 查看其中一个库 show create database db1; 创建数据库 create databas ...

  6. [转]MySQL主从复制入门

    1.MySQL主从复制入门 首先,我们看一个图: 影响MySQL-A数据库的操作,在数据库执行后,都会写入本地的日志系统A中. 假设,实时的将变化了的日志系统中的数据库事件操作,在MYSQL-A的33 ...

  7. [置顶] Mysql存储过程入门知识

    Mysql存储过程入门知识 #1,查看数据库所有的存储过程名 #--这个语句被用来移除一个存储程序.不能在一个存储过程中删除另一个存储过程,只能调用另一个存储过程 #SELECT NAME FROM ...

  8. Java中Redis简单入门

    Redis是一个开源的,先进的 key-value 存储可用于构建高性能,可扩展的 Web 应用程序的解决方案. Redis官方网网站是:http://www.redis.io/,如下: Redis ...

  9. MyBatis学习总结(一)简单入门案例

    MyBatis学习总结(一)简单入门案例 主要内容:本文主要通过对数据库中的use表进行增删改查总结mybatis的环境搭建和基本入门使用 一.需要的jar包: 1.核心包 2.依赖包 3.jdbc数 ...

随机推荐

  1. 127.0.0.1\SQLEXPRESS连接异常

    当你的数据库为SQLEXPRESS时,在程序的数据库连接字符串的服务Server使用127.0.0.1\SQLEXPRESS时,如下: 它会显示一异常: Server Error in '/' App ...

  2. Jquery请求Ajax的json数据

      获得单个json对象 $.getJSON("test.js", { name: "John", time: "2pm" }, funct ...

  3. 组件Newtonsoft.Json实现object2json转换

    很多情况下,我们需要把数据类型做一些转换,供其它外部的子系统调用. 最为典型的是生成json格式供javascript作调用. 现成的组件Newtonsoft.Json可以实现object2json之 ...

  4. JS中跨域和沙箱的解析

    先来直接分析源码,如下: <!DOCTYPE HTML><html><head> <meta charset="UTF-8"/> & ...

  5. 说说web 2.0生态圈的那些事

    先来说一道面试题吧,“说一下,web 2.0 和web 1.0的区别?” 官方的解释是这样的: Web1.0 的主要特点在于用户通过浏览器获取信息,Web2.0 则更注重用户的交互作用,用户既是网站内 ...

  6. CI框架源码阅读笔记1 - 环境准备、基本术语和框架流程

    最开始使用CI框架的时候,就打算写一个CI源码阅读的笔记系列,可惜虎头蛇尾,一直没有行动.最近项目少,总算是有了一些时间去写一些东西.于是准备将之前的一些笔记和经验记录下来,一方面权作备忘,另一方面时 ...

  7. 使用loadrunner进行压力测试之----post请求

    1. 发送post请求时使用web_submit_data 如: web_submit_data("create",//事务名 "Action=http://bizhi. ...

  8. TestNG 三 测试方法

    一.设置参数 测试方法是可以带有参数的.每个测试方法都可以带有任意数量的参数,并且可以通过使用TestNG的@Parameters向方法传递正确的参数. 设置方式有两种方法:使用testng.xml或 ...

  9. TestNG官方文档中文版(1)-介绍

    TestNG的官方文档请见: http://testng.org/doc/documentation-main.html 1. 介绍    TestNG是一个设计用来简化广泛的测试需求的测试框架,从单 ...

  10. 说说IT技术团队招聘那点事

    因为近来由于新项目的需要,各种招聘比较多,几乎每周都要面试几个人,顺便对以前的面试和带开发经验进行简单的总结 1.首先负责招聘的人一定得是自己团队的人,而且在招聘的时候一定要想清楚目标候选人进来的职责 ...