分享

MYsql学习旅程 2017-08-26

 小马哥技术屋 2017-08-26
                                          第一章:SQL基础
一、入门
1、分类
   1) DDL:数据定义语言:定义不同的数据段,数据库,表,列,索引等数据库对象。
   2)DML:数据操作语句:用于添加,删除,更新和查询数据库记录并检查数据完整性。常用的语句有:insert,delete,update,select等。
   3)DCL:数据控制语句:用于控制不同数据段直接的许可和访问级别的语句。定义了数据库,表,字段,用户的访问权限和安全级别,主要的语句关键字包括grant,revoke等。

2、创建数据库后的几个额外数据库

  1) information_schema:主要存储了系统中的一些数据库对象信息,比如用户表信息,列信息,权限信息,字符集信息,分区信息等。
  2) cluster:存储了系统的集群信息
  3) mysql:存储了系统的用户权限信息。
  4) test:系统自动创建的测试数据库,任何用户都可以使用。
3、DDL的操作方法
  1)创建数据库
    mysql -uroot -p
    输入密码  回车
    create database 库名
  2)删除数据库
    drop database 库名
  3) 创建表
    create table 表名()
  4)删除表
    drop table  表名
  5) 修改表
    a.修改表类型:alter table 表名 modify ....
    b.添加表字段 :alter table 表名 add ...
例如:新加字段birth,加载ename后面。
  alter table emp add birth date after ename;
    c.删除表字段: alter table 表名 drop...
例如:修改字段aage,将它放在最前面。
  alter table emp modify age int(3) first
    d.字段改名: alter table change ...
注意:
  change和modify都可以修改表的定义,不同的是change后面需要写两次列名,不方便,但是change的优点是可以修改列名称。modify则不能。

6)更改表名
  alter table 表名 【To】 新表名
例如:将表名emp改为emp1
  alter table emp rename mep1

4、DML语句
   操作是对数据库中表记录的操作,主要包括记录的插入,更新,删除和查询。
 1)插入记录
  eg:插入一条数据
   insert into emp(ename,hiredate,sal) values('zz','20001-02-29','2000');
  也可以不用指定字段。但是values后面的顺讯必须和字段的排列顺序一致。
   insert into emp values('zz,'2001-02-29,'2000');
  eg:一次性插入多条数据
   insert into dept values(5,'dept5'),(6,'dept6);
2) 更新记录
  语法:
   update 表名 set 字段='值',字段='值'
   update emp set sal=4000,ename='yy';
3) 删除记录
  delete from 表名 where 字段='值'
4) 查询记录
   select *,count(*)等聚合函数  from 表名 where 条件 order by 字段 【desc/asc】   group by 字段  having count(1) > 1
5) 表连接(分为左连接和右连接)
  eg:
 select ename,depname from emp 【left/right】 join dept on emp.deptno= dept.detno;
6)子查询
  eg:
 select * from emp where deptno in (select deptno from dept);
注意:
  如果子查询记录唯一,那么可以用"="代替in

7)记录联合
  将两个表数据按照一定的查询条件查询出来后,将结果合并到一起显示出来,这个时候,就需要用union和union all 关键字来实现这样的功能
  eg:
 select deptno from emp union select deptno from dept//此时将两个表中的deptno一块显示出来。

5、DCL语句
  主要是DBA用来管理系统中的对象权限时使用。
eg:
  创建数据库z1,具有对sakila数据库中所有表的select/insert权限
grant select,insert on sakila.* to 'z1'@'localhost'或者% identified by '124';
 如果:
  此时将z1的权限变更,收回insert,只能对数据进行select操作
eg:
  revoke insert on sakila.* from 'z1'@'localhost';

二、帮助文档的使用
  1、使用"? contents" 命令来显示所有可供查询的分类
 
 对于列出的分类,可以使用"? 类别分类"的方式针对用户感兴趣的内容做进一步查看。
例如:
 想看看mysql中都支持哪些数据类型,可以执行"? types"命令
 
 列出了此版本支持的所有数据类型,如果想知道int类型的具体介绍,也可以利用上面的方法做进一步查看。
 
 
2、快速查询文档
 show命令
 
 如果想查看create table语法,可以用命令:
 ? create table
 
 

 


   
    

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多