Mysql学习->DML和DDL语句

DDL语句:数据库定义语言,一般是对数据库的操作,create,drop,alter等

DML语句:数据操作语言,curd操作

DDL:

  create databases 数据库名     //创建一个数据库

  show databases 数据库名    //查看数据库

  use databases 数据库名    //使用数据库

  drop databases 数据库名     //删除数据库   删除数据库后数据库中的库和表全部会被清空

  #创建数据库

  create table 数据库名(

    column_name(字段名)  column_type(数据类型) constraints(约束条件,一般为空非空默认等)

  )

  desc 数据表名   查看数据表的信息

  show create table 数据库表名 \G   查看数据表信息(全面) \G是代表竖向排列

  drop table 数据表名     删除数据表

  #一般对已经创建好的表,需要做结构上的变动就需要alter table 语句

  alter table 数据表名 modify  column_name(字段名)   column_type(数据类型)     //修改表字段,只能修改其字段类型

  alter table 数据表名 add  column_name(字段名)   column_type(数据类型)    //新增数据表字段

  alter table 数据表名 drop column column_name(字段名)             //删除数据字段

  alter table 数据表名  change column_name(列名) column_type(数据类型)        //修改字段名,可以修改字段名和字段类型,比modify多一个功能

  alter table 数据表名 rename 表名                     //修改数据表名

  其中有first | after ,这个两个关键字是字段排序、

DML语句:

  insert into 表名 values(value1,value2,...) 新增数据,values后面的顺序要和字段的的排序一致,有默认值的字段,自增的字段可以不用写在values后面
  insert into 表名 (字段1,字段2) values (value1,value2)
  第二种方式可以大大提升插入数据库的效率

  update 表名 set 字段 = value [wehere 条件] 修改数据,也可以多表一同更新
  delete from 表名 [where 条件] 删除数据,也可以删除多表或关联的表
  删除表或更新的时候需要加更新条件,不然很容易修改整个表或删除整个表

  select * from 表名 查询数据
  select distinct 字段 from 表名 查询这个表这个字段不重复的数据
  select * from 表名 where[条件] 条件查询
  select * from 表名 order by 字段 desc|asc 排序查询,关键字是order by 其中desc是倒序排,asc是正序排
  select * from 表名 limit[条数] limit起始偏移量

  #聚合
  count 记录数
  sum 求和
  max 最大值
  min 最小值
  一般都是和GROUP BY 分组一起使用
  HAVING 对分组后的结果在进行条件的过滤

  where和having的区别在于,haveing是对聚合后的结果进行条件的过滤,而where是聚合前进行了过滤,一般先用where进行过滤,在进行having过滤

  #表连接[内连接,外连接]
  内连接:仅选出两张表中相互匹配的记录
  外连接:选出其他不匹配的记录

  内连接: select * from 表1,表2, where 表1.字段名1 = 表2.字段名2
  外连接:
  左连接:包含左表中的记录和右表中没有和他匹配的记录 select * from 表1 left join 表2 on 表1.字段1 = 表2.字段2 left join
  右连接:包含右表中的记录和左表中没有和他匹配的记录 select * from 表1 right join 表2 on 表1.字段1 = 表2.字段2 right join

  #记录联合UNION 和 UNION ALL的区别
  UNION ALL 是将结果集直接合并在一起
  UNION 是将合并后的结果在一次进行distinct(去重)操作

  还有一个DCL一句是对数据库权限的操作一般为grant 和 revoke

 

 

 

 

 

  

posted @ 2017-10-19 22:34  king`s  阅读(310)  评论(0编辑  收藏  举报