mysql:关系型数据库的一种,用来存储数据;

一个仓库------一个数据库;

一个箱子------ 表;

进入mysql命令行:mysql -uroot -p(密码);查看数据库中所有表:show tables

创建表:create table name charset utf-8;

删除表:drop table name;

选择数据库:use tablename;

查看数据库的建立语句:show create databases name;

约束:自增长——auto increment;  非空——not null; 默认——default 'xx';

  唯一——unique; charset——指定字符集; 主键——primary key(唯一性,不能为空)

     外键——用来表示两个表之间的关系

增:

#score

create table score(

id int auto_increment primary key,

s_id int not null,

grade float not null

);

create table blk (

  id int auto_increment primary key

  name varchar(10) not null,

  sex varchar(5) default '男'

  addr varchar(50),

  phone int not null unique,

);

删除:drop table test

改表名:alter table blk rename stu

alter table blk modify name varchar(20) unique;

修改字段的数据类型:alter table blk chage name stu_name varchar(30);

新增一个字段,放在那个位置:alter table blk add money float not null after stu_name;

删除某个字段:alter table tablename drop addr

查看建表语句:show create table tablename;

查看表结构:desc tablename;

查看所有表:show tables;

数据

增:insert into blk (stu_name,money,sex,phone) values ('张三','100.1','女',110);

  insert into blk (stu_name,money,phone) values ('李四','100.1',110);

指定字段、不指定字段

insert into blk values ('','王五',1000,'',10991);

指定字段的话,插入的值和字段对应

不指定的话,要把所有的字典值都写全

insert into blk(stu_name,money,phone) values ('赵六',100011,1091199),('张华',1000,1999),('张伟',1000,1999);同时插入多条数据

删除

detele from blk;删除整个表的数据

truncate tablename;删除整个表里的数据,再输入时id从头开始

delete清空的表自增长id还会继续增长,truncate清空的表自增长id从1开始,truncate速度比delete要快,truncate是从磁盘上直接删除的,数据无法恢复。

删除指定的数据

update blk set money=80;不指定条件的话,修改的是整个表的数据

update blk set money=90 where name='';

update blk set money=money+100;在原来的数值基础上修改

select * from blk limit 1,5;从第几条开始,下面的x条,不包含开始那条

select * from blk limit 5;查询5条

select id,stu_name,sex,money,phone from blk;指定查询的字段

SELECT * from blk where sex='男' and money>100; #多个条件,必须同时满足
SELECT * from blk where sex='男' or sex='未知' ; #多个条件,有一个满足即可

select * from blk where sex !='男';<>也是不等于

SELECT * FROM blk where addr like '%东京%';#模糊匹配,%代表的是通配符,必须得用like

select * from blk a where a.stu_name like '姚_';#_通配符表示任意一个单字符

SELECT a.stu_name 学生名称,a.phone 学生电话 from blk as a where a.stu_name='姚远';#给表起别名,as可以省略

SELECT * from blk ORDER BY money desc; #order by xxx desc,根据哪个字段继续排序,默认是升序,降序是desc,升序asc

SELECT * from blk a where a.addr = '' or a.addr is null; #查询数据为空

SELECT DISTINCT a.money from blk a ;#去重

SELECT COUNT(*) 学生人数 from blk  where sex='女'; #统计行数

SELECT MAX(a.money) 钱最多 from blk a; #最大值

SELECT sex 性别,count(*) 人数 from blk GROUP BY sex; #分组

SELECT
    sex 性别,
    count(*) 人数,
    a.stu_name 名字

FROM
    blk a
WHERE
    a.money > 300
GROUP BY
    a.id
HAVING
    a.stu_name LIKE '姚%';

#如果group by后面有条件的话,必须得用having子句,having子句里面用到的字段必须出现在select后面,如果group by和order by一起用的话,order by必须写在group by后面

SELECT *,COUNT(*) from blk GROUP BY sex,class; #多个字段进行分组

SELECT id,stu_name from blk UNION SELECT id,t_name from teacher;
#用来合并两条select语句的结果,两条select语句字段数量要一致,并且数据类型也要一致
union和union all的区别就是一个会去重一个不会

表关联

select * from user a,accounts b where a.id=b.user_id and a.username='niuhy';

SELECT * from blk a LEFT JOIN score b on a.id=b.s_id;
-- LEFT JOIN会把左边表所有的数据都查出来,右边表有匹配的就查出来
SELECT * from blk a RIGHT JOIN score b on a.id=b.s_id;
-- RIGHT JOIN会把右边表所有的数据都查出来,左边表有匹配的就查出来
SELECT * from blk a inner JOIN score b on a.id=b.s_id;
-- INNER JOIN两边表里都匹配的数据才查到

子查询:一条sql的结果,作为另一条sql的条件

SELECT * from score a where a.s_id = (SELECT id from blk where stu_name='张三');

把子查询当成一个表
SELECT
    a.grade 成绩,
    b.stu_name 学生名称,
    b.id 学号
FROM
    score a,
    (
      SELECT
        id,
        stu_name
      FROM
        blk
      WHERE
        stu_name = '张三'
    ) b
WHERE
    a.s_id = b.id;

数据库权限:mysql数据的权限实质上都是在user表里控制的

1.grant 所以的权限 所有的数据库下面的所有表 用户 用户ip

grant all on *.* to 'andashu' @ 'localhost' identified by '123456' with grant option;

      密码  #有执行grant语句的权限

grant all on     *.* to 'andashu'@'%' identified by '123456' with grant option

取消授权:

Revoke select on *.* from dba@localhost

Revoke all on *.* from andashu@localhost

修改user表的数据

对user表进行增加,修改和删除

flush privileges;刷新权限

备份数据库:

  mysqldump -uroot -p123456 db > db.sql

  mysqldump -uroot -p123456 -A > all.sql

恢复数据:

  mysqldump -uroot -p123456 db < db.sql

存储过程:

批量的造数据

delimiter $$;为了改结束符

create procedure big_data1(num int)代表要造多少条数据

begin

declare i int;

set i=0;

while i<num do

insert into blk (stu_name,money) values (concat('李四',i),2000);

concat 的作用是连接不同类型的数据

把字符串和数字拼接在一起

set i=i+1;

end while;

end

$$;

delimiter;

call big_data1(500);调用

环境搭建:1.下载依赖软件,安装好

     2.获取源代码(代码)得根据语言的不同来看是否需要编译,打包

     3.导入基础数据

4.修改配置文件

5.启动      java程序(tomcat,weblogic,jetty,resin,ws)

     php,ruby,python,(nginx,apache)

日常部署

    1.获取最新的代码(编译,打包)如果有表结构变更的话,要执行sql

2.修改配置文件

3.重启你的程序

mysql入门的更多相关文章

  1. 21分钟 MySQL 入门教程(转载!!!)

    21分钟 MySQL 入门教程 目录 一.MySQL的相关概念介绍 二.Windows下MySQL的配置 配置步骤 MySQL服务的启动.停止与卸载 三.MySQL脚本的基本组成 四.MySQL中的数 ...

  2. MySQL入门02-MySQL二进制版本快速部署

    在上篇文章 MySQL入门01-MySQL源码安装 中,我们介绍了MySQL源码安装的方法. 源码安装虽然有着更加灵活和更加优化等诸多优势.但源码编译安装部署的过程相对复杂,而且整个过程所花费的时间很 ...

  3. MYSQL入门全套(第三部)

    MYSQL入门全套(第一部) MYSQL入门全套(第二部) 索引简介 索引是对数据库表中一个或多个列(例如,employee 表的姓名 (name) 列)的值进行排序的结构.如果想按特定职员的姓来查找 ...

  4. MySQL入门(三)

    写了两篇<MySQL入门>以后我发现,写书的人还是都挺有本事的,起码人家知道怎么编排自己想讲的知识点,我实在是不知道该先说那里后说哪里,那我就想到什么讲什么吧. 一 写SQL 其实我是不想 ...

  5. MySQL入门笔记

    MySQL入门笔记 版本选择: 5.x.20 以上版本比较稳定 一.MySQL的三种安装方式: 安装MySQL的方式常见的有三种: ·          rpm包形式 ·          通用二进制 ...

  6. MySQL入门转载

    21分钟 MySQL 入门教程 http://www.cnblogs.com/mr-wid/archive/2013/05/09/3068229.html 目录 一.MySQL的相关概念介绍 二.Wi ...

  7. mysql 入门 基本命令

    MYSQL入门学习之一:基本操作  1.登录数据库    www.2cto.com     命令:mysql -u username –p (mysql -h主机地址 -u用户名 -p用户密码)   ...

  8. MySQL入门笔记(一)

    一.数据类型 1. 整型 2. 浮点型 3. 字符型 4. 日期时间型 二.数据库操作 1. 创建库 CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_nam ...

  9. MySQL入门(上)

    1 课程回顾 自定义标签&编码实战 1)自定义标签步骤: 1.1 编写标签处理器类,继承SimpleTagSupport类,覆盖doTag方法 1.2 在WEB-INF目录下建立tld文件,在 ...

  10. 第二章 MySQL入门篇

    第一章 MySQL入门篇 一.MySql简介 简言: 和SQL Server数据库相同,MySQl也是一个关系型数据库管理系统.由瑞典的MySQL AB公司开发,2008年被SUN公司收购,2009年 ...

随机推荐

  1. 关于APP接口设计(转)

    最近一段时间一直在做APP接口,总结一下APP接口开发过程中的注意事项: 1.效率:接口访问速度 APP有别于WEB服务,对服务器端要求是比较严格的,在移动端有限的带宽条件下,要求接口响应速度要快,所 ...

  2. 创建ACCESS数据库,并且创建表和数据。重点:关闭ACCESS数据库引用

    /// <summary> /// 创建ACCESS数据库,并且创建表和数据 /// </summary> /// <param name="dictTable ...

  3. 虚拟机和windows主机中的文件共享

    22:54 2015/12/22 虚拟机和windows主机中的文件共享:特别推荐:我的一个老师特别推荐的方法:在windows安装SSH Secure File Transfer Client,直接 ...

  4. lua中的中文乱码

    最近在用lua, 发现一个有点意思的槽点啊-____-! 那就是lua貌似会使用系统所用的字符集. 具体点说, 就是在windows上, 它会使用cp936来表示代码中的中文. 来个例子: print ...

  5. ZeroMQ接口函数之 :zmq_msg_move - 将一个消息里面的内容移动到另一个消息里面

    ZeroMQ 官方地址 :http://api.zeromq.org/4-1:zmq_msg_move zmq_msg_move(3)   ØMQ Manual - ØMQ/3.2.5 Name zm ...

  6. FK JavaScript之:ArcGIS JavaScript API之地图动画

    地图要素动画应用场景:动态显示地图上的要素的属性随着时间的改变而改变,并根据其属性的变化设置其渲染.比如:某水域项目中,随着时间的变化,动态展现水域的清淤进度 本文目的:对ArcGIS JavaScr ...

  7. 深入浅出Android App耗电量统计

    前言 在Android统计App耗电量比较麻烦,直至Android 4.4,它仍没公开“电量统计”API或文档……额,是的,仅没有公开,并不是没有.平时在手机“设置- 电量”看到的数据 就是系统调用内 ...

  8. PHP性能监测的工具介绍 - XHProf

    http://segmentfault.com/a/1190000003509917 http://www.cnblogs.com/casatwy/archive/2013/01/17/2865241 ...

  9. C语言中定义全局变量

    (1)在C语言的头文件中定义变量出现的问题 最好不要傻嘻嘻的在头文件里定义什么东西.比如全局变量: /*xx头文件*/ #ifndef  _XX_头文件.H #define  _XX_头文件.H in ...

  10. Canvas小游戏里,删除过期或者死亡元素技巧

    在许多canvas游戏,canvas效果中,经常会有过期的元素需要删除 例如现在需要制作一个笨鸟先飞(flappy bird)小游戏,游戏中障碍物(且称为柱子),此时会有一个全局变量保存所有柱子的实例 ...