MySQL数据库SQL语句小结

数据库指的是文件的集合,操作这个集合需要用到SQL语句,SQL语句是由socket连接的。

一,启动数据库:

Linux下启动服务器进程:进入管理员身份,执行 service  mysqld  start,然后执行 mysql  -u  root   -p,如果有密码的话则输入密码,无密码就直接enter。

由上图信息可知数据库的版本和版权,选择帮助方式,命令结尾以';'或者'\g'结尾;

二,数据库语句:

SQL语句基本分为以下几种:

  • DDL:数据定义语句(针对结构的增删改查)create  drop  alter  show;
  • DML:数据操纵语句(针对数据的增删改查)  insert  delete  update  select;
  • DCL:数据控制语句(针对权限的控制)grant :赋权限,revoke:回收权限;

数据库的结构主要包括库,表,索引,视图;

查看数据库结构的语句为:show  x_names;例如,查看数据库可以用:show  databases;

以下介绍DDL语句:

创建表的SQL语句:create  database   base_name;其中base_name代表数据库的库名。如果该库存在则创建失败,为了保证程序的健壮性,我们可以这样写:create  database if  not  exists  base_name;创建或者删除其他结构也可以这样写。

创建其他结构需要指明在哪个数据库里面创建,语句为:use  database_name;

创建表:create  table  table_name

{

字段1名称,字段1类型,字段1约束

字段2名称,字段2类型,字段2约束

}

查看表结构:desc table_name(字段信息)  ;  或者  show  create  table  table_name;

修改表:

以下介绍DML语句:

给表中插入数据:insert into tb_name  values( "001","zhangsan",18,"nan");insert  into  tb_name(id,name,age,sex) values  ( "001","zhangsan",18,"nan"); 

插入多条数据:insert into tb_name  values( "001","zhangsan",18,"nan"),

                                                                    ( "001","zhangsan",18,"nan"),

                                                                    ( "001","zhangsan",18,"nan");

批量插入时用load  source ;

  1. 修改字段类型及大小:alter  table  table_name  modify  X_name  varchar(20);此语句用来将X_name字段的类型以及大小修改为varchar(20);
  2. 修改字段名称:alter  table  table_name  change  X_name  mname  varchar(20);此语句用来将X_name的字段名称修改为mname并且将其类型及大小改为varchar(20);
  3. 添加新字段:alter  table  table_name  add  new_name  int  [after  X_name];添加一个新字段new_name放在X_name字段后面,放在第一行的话中括号内添first;默认新加入的字段在最后一行。
  4. 删除一个字段:alter  table  table_name  drop  X_name;删除X_name 字段;
  5. 修改表名:alter  table  table_name  rename  new_tbname;将名为table_name的表名改为new_tbname;

 删除数据:delete  from  tb_name  where  name = " zhangsan ";(条件删除)

                   truncate table  tb_name;(删除表中所有元素,破坏表的结构,不计入日志文件)

查询数据:select * from  tb_name;

去重查询:select distinct age from  tb_name;

查询后排序:order  by  ASC(升序)/DESC(降序);(默认情况下是升序排列)

分组查询:group  by:select  id ,sum(score) from table_name group by id;

等值查询效率很低(笛卡尔乘积方式匹配),连接查询效率高。

连接查询包括外连接,内链接;外连接包括左外连接,右外连接和全外连接;

左连接:left  join 左表保留,右表补空;右连接:right join 右表保留,左表补空;全外连接:full [outer]  join:都补空;

内连接:inner join(不补空);

联合查询:union 联合两个表到一起且自动去重;union all不去重;联合查询的字段和类型都需要匹配。      

猜你喜欢

转载自blog.csdn.net/shang_12266029/article/details/88537887