SQL的第一次学习

                                

一、SQL介绍

  SQL是我们进行存取数据,删除数据,查询数据以及管理数据库系统的语言,主要有3中类型:

  DML(data manipulation language):用来对数据库里的数据进行操作的语言,主要增加数据INSERT,修改数据UPDATE,删除数据DELETE,查看数据SELECT

  DDL(data definition language):主要用来定义或改变表(TABLE)的结构,数据类型。创建表CREATE,查看表信息DESC,修改表的结构ALTER,删除表DROP

  DCL(Data Control Language):是数据库控制功能。比如设置用户的访问权限

  在学习一种新语言的时候,首先要知道语言的一下规范,SQL语言的语言规范如下:

    (1) SQL语句不区分大小写,但字符串常量区分大小写。建议命令大写,表名库名小写;

    (2) SQL语句允许单行或多行书写,以分号“;”为结尾。关键词不能跨多行或简写。

    (3)为了提高语句的可读性,SQL可以 用空格和缩进。

    (4)每种语言都有注释,在SQL语句中注释:

      单行注释:--

      多行注释:/* 

            建立数据库

           */

    (5)SQL语句可以折行操作

二、数据库操作:

  1、创建数据库

  CREATE DATABASE 数据库名字 [character set xxx][collate xxx]

  也可以通过在数据库所在的文件夹中直接创建一个文件夹,这也是创建数据库的方式。但是如果数据库已存在,就会报错

  例如:

  创建一个使用utf8字符集,并带有校队规则的J1数据库

  create database J1 character set utf8 collate utf8

  2、查看数据库

  show databases; 查看所有数据库

  show create database 数据库名字; 查看数据库的创建方式

  3、修改数据库

  alter database 数据库名字  [character set xxx][collate xxx]

  4、删除数据库

  drop database 数据库名字  // 但是数据库不存在,将会报错

  5、使用数据库

  use 数据库名字         //进入数据库之后不能退出,只能进行通过use进行切换

三、数据表的操作

  1、建表

  create table 表名(

    filed1 type,

    .....

  )

  

  其中:primary key (非空且唯一) :能够唯一区分出当前记录的字段称为主键!

     auto_increment:主键字段必须是数字类型。

  2、查看表的信息

  (1)desc 数据表的名字;    查看表结构

  

  (2)show tables;       查看当前数据库中的所有的表

  

  (3) show create table 表的名字;     查看表的建表语句

  

  3、修改表结构

  (1)增加一列

  alter table 表名 add [colum] 列名 类型

  

  (2)修改一列类型

  alter table 表名 modify [colum] 列名 类型;

  

  (3)修改列名

  alter table 表名 change [colum] 列名 新列名 类型;

  

  (4)删除一列

  alter table 表名 drop [colum] 列名;

  

  (5)修改表名

  rename table 表名 to 新表名;

   

  (6)修改该表所以的字符集

  alter table 表名 character set utf8

  

  

三、表记录

  (1)增加一条记录

   (a)insert into 表名字 (field1,field2) values(value1,value2);

  

   (b)insert into 表名字 values(value1,value2);

  

  (c)增加多行数据

  insert into 表名字 (field1,field2) values(value1,value2),

                   (value3,value4);

  

  (2)修改表记录

  update 表名 set field1=value1,field2=value2..... [where语句];

  update语法可以用新值更新原有表行中的各列,set语句句指示要修改哪些列和要给予哪些值,where句指定应更新哪些行。如没有WHERE子句,则更新所有的行。

  

  (3)删除表操作

  (a)delete from 表名[where语句];

   若不跟where语句则删除整张表中的数据,delete只能用来删除一行记录,不能只删除一行记录中的某一列值。

   delete语句只能删除表中的内容,不能删除表本身,想要删除表,用drop。

  

  (4)查找数据

  select [distinct] *| filed1,field2,.... from 表名 ;

  (a)dinstinct 用来剔除重复的行,from语句表示从那张表查找,*表示查找所有列。

  (b)select 也可以使用表达式,使用as将列名临时改成别的名字,这种操作不会修改表中的原始数据。

  (c)select可以使用where语句进行过滤查询,在where语句中可以使用比较运算符。

    比较运算符:

       大于号>,小于号 <,大于等于 >=,小于等于<=, 不等号<>,     between a and b   值在a到b之间, in(a,b,c)值是a或b或c

       like(ki%)  表示已ki开头的。

    逻辑运算符:

       and , or, not

  

  (4)Order by 指定排列的列(表中的列名)

  select [distinct] *| filed1,field2,.... from 表名 order by 列名 [ASC];

  ASC 升序(默认),DESC降序,ORDER BY语句应位于select语句的末尾

  (5)聚合函数

    在sql中的聚合函数主要有:

      sum(列名):统计在该列的所有行的内容的和。

      count(列名):统计行的个数。

      AVG(列名):统计在该列的所有行的内容的平均值。

      Max,Min:最大值和最小值

    注意:在表中若有的地方是空的,将入在表中显示NULL,所以再进行运算的时候需要使用ifnull将所有的null转化为0.

  (6)group by 分组查询

    gruop by后面跟上可以跟上多个列名进行分组,亦可以跟上having语句对gruop by的结果进行筛选。

    where语句有筛选的功能,having语句也有这个功能,但是两种有一些差别:

      (a)使用where语句的地方都可以用having进行替换

      (b)having语句中可以用聚合函数,where中就不行。

          (c)where语句只能用在分组之前的筛选,having可以用在分组之后的筛选;

  (7)MySQL执行SQL语句的顺序(直接使用>表示优先级)

    from  > where > select > group by > having > order by.

  

猜你喜欢

转载自www.cnblogs.com/xiaoqi521/p/11050085.html