Mysql的历史度娘上一堆,就不再介绍了。

本文依照此路径学习Mysql数据库:数据库->表->数据

首先启动Mysql服务,然后通过控制台命令登入root账户输入密码回车

C:\Users>mysql -u root -p
Enter password: ******

闲话不说,直接进入Mysql命令的学习。

一:数据库

1.1:查看当前所有的数据库

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |   -- 此数据库存放mysql的元数据,基础数据。
| mysql              |  -- mysql配置数据库,包括用户信息(账户名、密码、权限管理)等。
| performance_schema |  -- mysql数据库软件的运行数据、日志信息、性能数据
+--------------------+
 rows in set (0.00 sec)

1.2:创建数据库,并命名为isole

mysql> create database isole;
Query OK,  row affected (0.00 sec)

1.3:查看数据库的默认字符集

mysql> show create database isole;
+----------+------------------------------------------------------------------+
| Database | Create Database                                                  |
+----------+------------------------------------------------------------------+
| isole    |  DEFAULT CHARACTER SET latin1 */ |
+----------+------------------------------------------------------------------+
 row in set (0.00 sec)

 由上可知,此数据库的编码为latin1,我们都知道通常我们使用utf-8编码

1.4:修改数据库的默认字符集并且查看,注意修改的时候utf-8写成utf8

mysql> alter database isole default character set utf8;
Query OK,  row affected (0.00 sec)

mysql> show create database isole;
+----------+----------------------------------------------------------------+
| Database | Create Database                                                |
+----------+----------------------------------------------------------------+
| isole    |  DEFAULT CHARACTER SET utf8 */ |
+----------+----------------------------------------------------------------+
 row in set (0.00 sec)

1.5:删除数据库

mysql> drop database isole;
Query OK,  rows affected (0.00 sec)

1.6:在创建数据库的时候指定编码的格式:

mysql> create database isole default character set utf8;
Query OK,  row affected (0.00 sec)

二:表的管理

2.1操作表首先要选择相关的数据库,此处我们选择isole数据库

mysql> use isole;
Database changed
mysql>

2.2创建表student 字段设sid sname sage三个

mysql> create table student(  -- student是表的名称
    -> sid int,    -- int 是类型
    -> sname varchar(),  -- (30)是字段长度
    -> sage int    -- sage是字段名称
    -> );
Query OK,  rows affected (0.18 sec)

mysql>

2.3查看当前数据库中所有的表

mysql> show tables;
+-----------------+
| Tables_in_isole |
+-----------------+
| student         |
+-----------------+
 row in set (0.00 sec)

mysql>

2.4查看某个表字段的结构,此处以student为例

mysql> desc student;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| sid   | int()     | YES  |     | NULL    |       |
| sname | varchar() | YES  |     | NULL    |       |
| sage  | int()     | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+

2.5:student表增加字段sgender varchar(2)

mysql> alter table student add column sgender varchar();
Query OK,  rows affected (0.34 sec)
Records:   Duplicates:   Warnings: 

2.6:student表修改字段sgender改成gender

mysql> alter table student change sgender gender varchar();
Query OK,  rows affected (0.13 sec)
Records:   Duplicates:   Warnings: 

2.7student表中的sid int修改字段类型为sid varchar(5)

mysql> alter table student modify sid varchar();
Query OK,  rows affected (0.41 sec)

2.8student表删除字段gender

mysql> alter table student drop gender;
Query OK,  rows affected (0.35 sec)
Records:   Duplicates:   Warnings: 

2.9修改表的名称student为teacher

mysql> alter table student rename teacher;
Query OK,  rows affected (0.06 sec)

2.10删除表teacher

mysql> drop table teacher;
Query OK,  rows affected (0.10 sec)

三:数据

先创建学生表,字段以及类型如下

mysql> create table student(
    -> sid int,
    -> sname varchar(),
    -> sgender varchar(),
    -> sage int
    -> );
Query OK,  rows affected (0.18 sec)

3.1增加数据

  3.1.1增加张三、李四的信息,插入对应字段的所有信息,此时可以不写出字段

mysql> insert into student values(,);
Query OK,  row affected (0.06 sec)

mysql> insert into student values(,);
Query OK,  row affected (0.06 sec)

  3.1.2增加王二的信息,此时不知道王二的年龄,注意字段与值必须一一对应!

mysql> insert into student(sid,sname,sgender) values(,'王二','女');
Query OK,  row affected (0.07 sec)

3.2修改数据

  3.2.1修改所有的数据(建议少用,因为会影响整个表的每个学生),此处将所有学生的性别设置为'女'

mysql> update student set sgender='女';
Query OK, 1 row affected (0.09 sec)
Rows matched: 3 Changed: 1 Warnings: 0

  3.2.2带条件的修改,修改id为1的学生,将其性别修改为男,年龄修改为22

mysql> update student set sgender= where sid=;
Query OK,  row affected (0.06 sec)
Rows matched:   Changed:   Warnings:  

3.3删除数据

  3.3.1删除所有数据

mysql>delete from student;
Query OK,  row affected (0.06 sec)

  3.3.2带条件的删除 删除sid=3的学生信息

mysql> delete from student where sid=;
Query OK,  row affected (0.06 sec)

 注意:数据的删除有两种,一种delete删除,另外一种是truncate删除

区别:

  delete from:     可以全表删除   1)可以带条件的删除 2)删除表的数据不删除表的约束 3)删除的数据可以回滚

  truncate table:可以全表删除 1)不可待条件的删除 2)删除表的数据以及表的约束    3)删除的数据不能够回滚

 四、查询数据

  4.1查询表中的所有数据,*代表所有字段

mysql> select *from student;
+------+-------+---------+------+
| sid  | sname | sgender | sage |
+------+-------+---------+------+
|     | 张三  | 男      |    |
|     | 李四  | 女      |    |
|     | 王二  | 女      | NULL |
+------+-------+---------+------+
 rows in set (0.00 sec)

  4.2查询某些列的数据,例如查询学生id和姓名

mysql> select sid,sname from student;
+------+-------+
| sid  | sname |
+------+-------+
|     | 张三  |
|     | 李四  |
|     | 王二  |
+------+-------+
 rows in set (0.00 sec)

  4.3查询时去除重复的字段,例如只查询有多少种性别

mysql> select distinct sgender from student;
+---------+
| sgender |
+---------+
| 男      |
| 女      |
+---------+
 rows in set (0.00 sec)

  4.4查询时指定别名  AS

mysql> select sid as '编号',sname as '姓名' from student;
+------+------+
| 编号 | 姓名 |
+------+------+
|     | 张三 |
|     | 李四 |
|     | 王二 |
+------+------+
 rows in set (0.00 sec)

  4.5条件查询,and(且)和or(或)

查询id为2且姓名为'李四'的学生信息

mysql>  and sname='李四';
+------+-------+---------+------+
| sid  | sname | sgender | sage |
+------+-------+---------+------+
|     | 李四  | 女      |    |
+------+-------+---------+------+
 row in set (0.00 sec)

查询id=3或者姓名为张三的学生信息

mysql>  or  sname='张三';
+------+-------+---------+------+
| sid  | sname | sgender | sage |
+------+-------+---------+------+
|     | 张三  | 男      |    |
|     | 李四  | 女      |    |
+------+-------+---------+------+
 rows in set (0.00 sec)

为王二同学录入年龄信息

mysql> update student  where sname='王二';
Query OK,  row affected (0.06 sec)
Rows matched:   Changed:   Warnings: 

查询student表中年龄小于等于20岁的学生

mysql> select *from student where sage<=20;
+------+-------+---------+------+
| sid | sname | sgender | sage |
+------+-------+---------+------+
| 2 | 李四 | 女 | 20 |
| 3 | 王二 | 女 | 12 |
+------+-------+---------+------+
2 rows in set (0.00 sec)

查询student 表中年龄在19-21之间的学生

-- 方法1:
mysql>  and sage<;
+------+-------+---------+------+
| sid  | sname | sgender | sage |
+------+-------+---------+------+
|     | 李四  | 女      |    |
+------+-------+---------+------+
 row in set (0.00 sec)

-- 方法2:

mysql>  and ;
+------+-------+---------+------+
| sid  | sname | sgender | sage |
+------+-------+---------+------+
|     | 李四  | 女      |    |
+------+-------+---------+------+
 row in set (0.00 sec)

-- 查询性别不是'男'的学生

mysql> select *from student where sgender <> '男';

+------+-------+---------+------+
| sid | sname | sgender | sage |
+------+-------+---------+------+
| 2 | 李四 | 女 | 20 |
| 3 | 王二 | 女 | 12 |
+------+-------+---------+------+
2 rows in set (0.00 sec)

模糊查询Like

-- % 表示任意个任意字符
-- _ 表示一个任意字符

查询姓'李'的学生的信息
mysql> select *from student where sname like '李%';
+------+-------+---------+------+
| sid  | sname | sgender | sage |
+------+-------+---------+------+
|     | 李四  | 女      |    |
+------+-------+---------+------+
 row in set (0.00 sec)

增加字段math并且录入成绩

mysql> alter table student add math float;
Query OK,  rows affected (0.33 sec)
Records:   Duplicates:   Warnings: 

mysql> update student  ;
Query OK,  row affected (0.07 sec)
Rows matched:   Changed:   Warnings: 

mysql> update student  ;
Query OK,  row affected (0.08 sec)
Rows matched:   Changed:   Warnings: 

mysql> update student  ;
Query OK,  row affected (0.05 sec)
Rows matched:   Changed:   Warnings: 

聚合查询

常见的聚合函数:sum()  avg()  max()   min()  count()

mysql> select sum(math) as'数学总分' from student;
+----------+
| 数学总分 |
+----------+
|       |
+----------+
mysql> select avg(math) as '数学平均分' from student;
+-------------------+
| 数学平均分        |
+-------------------+
| 80.33333333333333 |
+-------------------+

mysql> select max(math) as '数学最高分' from student;
+------------+
| 数学最高分 |
+------------+
| 97 |
+------------+

mysql> select min(math) as '数学最低分' from student;
+------------+
| 数学最低分 |
+------------+
| 57 |
+------------+

mysql> select count(*) as'当前人数为' from student;
+------------+
| 当前人数为 |
+------------+
| 3 |
+------------+

查询排序 order by DESC /ASC

数学成绩的倒序
mysql> select *from student order by math desc;
+------+-------+---------+------+------+
| sid  | sname | sgender | sage | math |
+------+-------+---------+------+------+
|     | 王二  | 女      |    |    |
|     | 张三  | 男      |    |    |
|     | 李四  | 女      |    |    |
+------+-------+---------+------+------+
数学成绩的正序
mysql> select *from student order by math asc;
+------+-------+---------+------+------+
| sid  | sname | sgender | sage | math |
+------+-------+---------+------+------+
|     | 李四  | 女      |    |    |
|     | 张三  | 男      |    |    |
|     | 王二  | 女      |    |    |
+------+-------+---------+------+------+
数学成绩倒序,年龄正序(当数学成绩一样的时候以年龄正序排序)
mysql> select *from student order by math desc,sage asc;
+------+-------+---------+------+------+
| sid  | sname | sgender | sage | math |
+------+-------+---------+------+------+
|     | 王二  | 女      |    |    |
|     | 张三  | 男      |    |    |
|     | 李四  | 女      |    |    |

分组查询 group by

mysql> select sgender,count(*)from student group by sgender;
+---------+----------+
| sgender | count(*) |
+---------+----------+
| 女      |         |
| 男      |         |
+---------+----------+
 rows in set (0.00 sec)

分页查询 limit

起始行从0开始 公式:select *from student limit(当前页-1)*每页显示多少条,每页显示多少条;

mysql> ,;
+------+-------+---------+------+------+
| sid  | sname | sgender | sage | math |
+------+-------+---------+------+------+
|     | 张三  | 男      |    |    |
|     | 李四  | 女      |    |    |
+------+-------+---------+------+------+

特别板块,判空条件(null / '  ')

关键字: is null  /  is not null  /  ="  / <>"   null代表没有该值,空字符串有值且对应ASCII码值是:32

-- 判断null

select *from student where <字段名称>is null;

--判断空

select *from student where 字段名称=";

-- 判断空字符串或者null

select *from student where 字段名称 is null or 字段名称=";

2016-11-23 21:00:47 isole于博客园

Mysql基础(一)的更多相关文章

  1. Mysql基础代码(不断完善中)

    Mysql基础代码,不断完善中~ /* 启动MySQL */ net start mysql /* 连接与断开服务器 */ mysql -h 地址 -P 端口 -u 用户名 -p 密码 /* 跳过权限 ...

  2. MYSQL基础操作

    MYSQL基础操作 [TOC] 1.基本定义 1.1.关系型数据库系统 关系型数据库系统是建立在关系模型上的数据库系统 什么是关系模型呢? 1.数据结构可以规定,同类数据结构一致,就是一个二维的表格 ...

  3. 【夯实Mysql基础】记一次mysql语句的优化过程

    1. [事件起因] 今天在做项目的时候,发现提供给客户端的接口时间很慢,达到了2秒多,我第一时间,抓了接口,看了运行的sql,发现就是 2个sql慢,分别占了1秒多. 一个sql是 链接了5个表同时使 ...

  4. MySQL基础(非常全)

    MySQL基础 一.MySQL概述 1.什么是数据库 ? 答:数据的仓库,如:在ATM的示例中我们创建了一个 db 目录,称其为数据库 2.什么是 MySQL.Oracle.SQLite.Access ...

  5. mysql 基础篇5(mysql语法---数据)

    6 增删改数据 -- ********一.增删改数据********* --- -- 1.1 增加数据 -- 插入所有字段.一定依次按顺序插入 INSERT INTO student VALUES(1 ...

  6. MySQL 基础语句

    MySQL 基础语句 多个知识点 ----------------------------------------------------------------------------------- ...

  7. MySQL:基础—数据分组

    MySQL:基础-数据分组 1.为什么要分组: 比如一个表中有多条订单记录,如上图,每条记录对应着一个商品,现在我要查询 每个商品被订购的单数 准备出货?也就是找到每个商品被订购的数量. 如果只找一个 ...

  8. MySQL基础学习总结

    1.MySQL基础概念 mysql逻辑架构如下: 每个客户端连接都会在服务器中拥有一个线程,这个连接的查询只会在这个单独的线程中执行. MySQL是分层的架构.上层是服务器层的服务和查询执行引擎,下层 ...

  9. MySQL基础(五)——视图

    MySQL基础(五)--视图

  10. MySQL基础(四)——索引

    MySQL基础(四)--索引

随机推荐

  1. php 下设置cookie问题

    在php下设置了cookie,CI下set_cookie()方式,但是发现cookie不能马上生效,需要刷新后才能获取,后来在网上找到了一个解决办法,$_COOKIE[$var] = $value:多 ...

  2. python爬虫学习(6) —— 神器 Requests

    Requests 是使用 Apache2 Licensed 许可证的 HTTP 库.用 Python 编写,真正的为人类着想. Python 标准库中的 urllib2 模块提供了你所需要的大多数 H ...

  3. 【less】Bootstrap / Less 学习

    我是借助的 考拉 来编译LESS~~ http://www.openkoala.org/download.html 官网 less 提供的主要功能 1.变量个人觉得,变量是 Less 最重要的功能.举 ...

  4. [.NET逆向] 破解NET的四大神器

     原本这篇文章可以更早一星期写出来与大家分享,由于某方面的原因耽搁到现在,心里竟有那么一点好像对不住大家的感觉.这当然与神器有关,因为我发现利用这四大神器我似乎觉得几乎所有的NET程序破解都不在话下了 ...

  5. ubuntu14.04 yuv文件的播放及视频信息的查看

    1.安装ffmpeg sudo add-apt-repository ppa:mc3man/trusty-media sudo apt-get update sudo apt-get install ...

  6. hadoop fs -ls no such file or directory

    http://blog.csdn.net/baolibin528/article/details/43650919

  7. [LeetCode] Binary Tree Zigzag Level Order Traversal 二叉树的之字形层序遍历

    Given a binary tree, return the zigzag level order traversal of its nodes' values. (ie, from left to ...

  8. IEEE 802.11p (WAVE,Wireless Access in the Vehicular Environment)

    IEEE 802.11p(又称WAVE,Wireless Access in the Vehicular Environment)是一个由IEEE 802.11标准扩充的通讯协定.这个通讯协定主要用在 ...

  9. SQL 基础语法(一)

    SQL 语法 数据库表 一个数据库通常包含一个或多个表.每个表由一个名字标识(例如"客户"或者"订单").表包含带有数据的记录(行). 下面的例子是一个名为 & ...

  10. Java并发_volatile实现可见性但不保证原子性

    读后感 介绍了volatile实现可见性的基本原理 介绍了volatile不能实现原子性的示例,volatile复合操作不能实现原子性,读取值后在自增前改值可能被其它线程读取并修改,自增后刷新值可能会 ...