Chinaunix首页 | 论坛 | 博客
  • 博客访问: 164268
  • 博文数量: 35
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 401
  • 用 户 组: 普通用户
  • 注册时间: 2014-11-28 14:09
文章分类

全部博文(35)

文章存档

2015年(27)

2014年(8)

分类: 数据库开发技术

2015-06-22 15:01:30

1.控制台基本操作:

        show     databases ;     查看所有的数据库

        use     数据库名称;    使用某数据库

        select    databas();       查看当前使用数据库名称

        show    tablses;         查看数据库下所有的表

        desc       表名;        查询表的结构

2.数据库的定义:

        DDL , 数据定义语言,(结构有关) create 创建 , alter 修改 , drop 删除

              DML , 数据操作语言,(数据有关) insert 录入,update 修改 , delete 删除

              DQL , 数据查询语言, select 查询

set names gbk; ----- 快速设置客户端相关三个编码集 (临时 )

修改mysql 配置文件,永久改变客户端编码集 ----- mysql/my.ini

   2.1,DDL数据库的结构定义:

        数据库:

            create  datebase  数据库名称;      创建数据库

            dorp   database  数据库名称;      删除数据库

        数据表:

            char(n);  固定长度字符串; 如果长度不够用空格替补

            varchar(n); 可变长度

            int 整型

            doule(m,d)

                  numeric(m,d)

             create   table   表名( 字段字段描述

                                字段字段描述

                             );              创建数据表

添加字段   alter   table   表名  add  column  字段  字段描述  

修改字段   alter   table   表名  change  column  修改的字段名称  新的字段描述

删除字段   alter   table   表名  drop    column  字段名称

           truncate  表名; 删除表里面全部数据

    2.2.DML数据操作语句:

            录入数据:

             这种方法可以指定录入数据的字段,不用全部录入

               insert  into  表名(字段1,字段2....values (1,值2......)

             这种方法默认录入全部数据,按照对应的字段录入

               insert  into  表名  values(值1,值2.....

            跟新数据:

               update  表名 set 字段=值,字段=.....where 条件

            删除数据:

                delete  from  表名  where 条件

    2.3.DQL 数据库查询语句

            基本查询

              查询全部:select表示查询,表示 全部,from表示来自哪里

                 查询   所有字段      来自   某个表

                select     *      from  表名

            查询指定字段的数据:

             select  字段1,字段2....  from   表名

            查询指定字段的数据并添加条件:

             select  字段1,字段2....  from   表名    where  条件

            查询数据,排除重复的数据:

             select  distinct 字段1,字段2....  from   表名    where  条件

             select 列名运算表达式 from 表名  (如在查询的列进行运算)

             select 列名 as 列别名 from 表名  (as 在查询的时候可以省略)

           区间查询(小值在前,大值在后,数据类型)

             select * from 表名 where  between 字段< and 字段<;

           固定值查询in(set),

             select * from 表名 where  字段 in(值,值,值....)

           模糊查询:like   %表示所有,下划线表示占位符,一个下划线表示一个字

           如下,表示张的前面有一个字张的后面没有字数长度限制

             select * from 表名 where  字段 like "%_%"

           判断一列是否为空 is null

             select * from 表名 where  字段  is  null

           判断一列是否不为空 is not null

             select * from 表名 where  字段  is  not  null

          逻辑运算中 and or and优先执行,缩小查询的范围)

              select * from 表名 where  字段判断 and 字段判断 or 字段判断

            order by排序查询(默认是asc()desc,多个排序,按照最后一个排序)

              select * from 表名 where  查询条件 order by 列名   --升序默认可以不写

            聚集函数(分组函数)

              count返回查询结果记录条数

                    select  count(字段) from 表;

              sum 对一列的数据求和,sum求和时 null不运算

                    select  sum(字段) from 表;

              avg对一列数据求平均值

                    select  avg(字段) from 表;

              maxmin 对一列数据 计算最大值和最小值

                    select  max(字段) from 表;

                    select  min(字段) from 表;

       3.数据库的高级查询;

         3.1约束,完整的约束有五种

             1,主键约束 primary key 原来表示数据表记录的唯一标识,唯一和非空

             2,唯一约束 unique     表示该字段取值唯一,数据不能重复

             3,非空约束 not null     表示该数据的字段数据不能为空

             4,外键约束 foreign key  两张表关联时使用,外键约束引用另一表主键

mysql不支持 5,条件约束 check      chwck age < 100表里面数据不能大于100   mysql

 

         3.2数据表与数据表之间关系三种:实体之间关系 多对多、一对多、一对一

建表原则:多对多关系,必须引入第三张数据表,同时引入另两张实体表主键作为外键

建表原则:一对多关系,在多的一方添加一方 主键作为外键

建表原则:一对一关系,可以在任何一方添加 另一方主键作为外键

         3.4笛卡尔积

            select * from 1,表2。当两个表数据进行关联查询的时,第一张表的数据会去匹配第二张表的每一条数据,如:两张表各有十条数据,那么查询出来就是10x10=100

 解决笛卡尔积的方法:链接查询(内链接,外连接)            

         3.4.1内连接查询:

               语法:select * from a inner join b on A.A_ID = B.A_ID

               简化:select * from a,b where A.A_ID = B.A_ID  (返回两个表的id相同的数据,如果两张表的id不相等就不显示)

         3.4.2外连接查询:(左外连接、右外连接、全外连接)

                   左外连接:select * from a left outer join b on A.A_ID = B.A_ID ;

                   右外链接:select * from a right outer join b on A.A_ID = B.A_ID ;

 mysql不支持       全外链接:select * from a full outer join b on A.A_ID = B.A_ID ; 

  mysql支持        全外链接:select * from A left outer join B on A.A_ID = B.A_ID

                              union

                              select * from A right outer join B on A.A_ID = B.A_ID;


 

 

阅读(1794) | 评论(0) | 转发(0) |
1

上一篇:从Aa-Zz

下一篇:坦克大战游戏代码

给主人留下些什么吧!~~