SQL语言学习小结(一)

来源:互联网 发布:初学者学linux 编辑:程序博客网 时间:2024/05/18 03:53

SQL:结构化查询语言

SQL使我们有能力访问数据库

SQL是一种ANSI的标准计算机语言

SQL对大小写不敏感

 

SQL语法分为:

    1.DDL(Data Definition Language):

        CREATE(创建),ALTER(修改),DROP(删除),RENAME(重命名)

    2.DML(Data Manipulation Language):

        SELECT(查询),INSERT(插入),DELETE(删除),UPDATE(更新)

    3.DCL(Data Control Language):

        GRANT,REVOKE

    4.TCL(Transaction Control Language):

        COMMIT,SAVEPOINT,ROLLBACK

 

SQL数据类型:

    整数:integer(size)/int(size), smallint(size), tinyint(size)

    浮点型:decimal(size, d)/numberic(size, d)   size:数字位数 d:小数位数

    字符:

        char(size) 固定长度的字符窜  size:字符串长度

        varchar(size) 可变长度的字符串  size:字符串最大长度

        TEXT 长度更长的字符串

        日期:date(yyyy-MM-dd)

 

数据库管理:

    1.创建数据库 create database 数据库名

    2.删除数据库 drop database 数据库名

    3.重命名数据库(此语句在MySQL中不支持)

 

使用数据库:

    1.查看数据库 show databases;

    2.使用数据库 use 数据库名;

    3.查看数据表 show tables;

    4.查看数据表结构 describe(简写为desc) 表名;

 

数据表:

    1.创建表 create table 表名(字段名 字段类型, 字段名 字段类型 ......);

    PS:一般来说我们在字段中都会带一个int类型的id值,用于今后的数据操作。

    2.删除表 drop table 表名;

    3.修改表:

        1.重命名表名 alter table 表名 rename 新表名;

        2.向表中添加一列 alter table 表名 add 字段名 字段类型;

        3.删除表中一列 alter table 表名 drop column 列名;

        4.修改表中一列的数据类型 alter table 表名 modify 字段名 字段类型;

        5.重命名一列 alter table 表名 change column 旧字段名 新字段名 新字段类型;

 

插入数据:

    1.全字段插入 insert into 表名 values(值1, 值2, 值3...);

    2.部分字段插入 insert into 表名(列名1, 列名2...) values(值1, 值2...);


 查询语句:

     1.从一张表中查询出指定列的数据 select 列名1, 列名2 ... from 表名 ;

     2.从一张表中查询出所有列的数据 select * from 表名 ;

     PS:select语句用于从表中查询数据,得到的数据会存入一张表中,这张装载结果的表,通常被叫做结果集。各种软件系统中都有moveto的函数用于在结果集中导航。


选择条件:

     where关键字用于规定语句的执行条件。

     如果在查询语句后,加上where语句,将可以限定查询的结果。

     select * from 表名 where 列名 = 某值 ;

     此为查询指定列名中为某值的所有数据的所有列数据。


and,or运算符:

     在where条件中,我们可以使用and或者or来将条件结合起来使用。

     1.需要同时成立:select * from表名 where 列1 = 值1 and 列2 = 值2 ;

     2.其中一个成立的:select * from 表名 where 列1 = 值1 or 列2 = 值2;


in关键字:

     in允许我们在where中规定多个值,用于搜索数据。

     select * from 表名 where列 in (值1, 值2, 值3 ...) ;

     表示该列符合值1,值2,值3的数据都会返回。

     当然这个查询语句也可以使用or实现

     select * from 表名 where 列1 = 值1 or 列1 = 值2 or 列1 =  值3 ;


排序:

     如果想要返回的结果按照升序或降序排列,可以使用order by关键字:

     1. 升序 select * from 表名 order by (排序所依照的)列名 ;

     2.降序 select * from 表名 order by  列名 desc;

     PS:如果排序所用列值一样,将会排在一起,然后以所查询的下一列的升序排列。


唯一值:

     在表中,可能有多行数据的同一列数据有同样的值,这样如果我们只查询此列的数据时,同样的值将会产生某些困扰,此时我们可以使用distinct关键字让我们的放回值不再重复。

     select distinct 列名 from 表名 ; 


TOP关键字:

     在表中我们查询的结果有时候,并不需要所有的数据,而只需要前几行数据,那么这个时候我们就可以使用top关键字。

     MYSQL不适用select top 数量的写法,而使用limit 数量。

     select * from 表名 limit 需要返回的行数 ;

     select * from 表名 limit 下标(从0开始数), 需要返回的行数 ;


更新(修改)数据:

     修改表中数据:update 表名 set 列名 = 新值 where 列名 = 指定数据 ;

     如果不带有条件限定将会导致此表所有数据的此字段都修改为新值。


删除语句:

     delete  from 表名 where 列名 = 某值 ;

     删除该表符合条件的每一行数据。

     不带有where条件,将删除该表中所有数据。


模糊查询:

     模糊查询,使用较多,其实就是使用使用少量数据取匹配出我们要查询的数据。如我要找带有‘on’字符串的单词,如‘LONDON’。

     在SQLite语法中,我们要实现模糊查询,需要学习:like关键字和通配符。


通配符:

     在查询中,我们可以使用通配符去代替我们需要填入的字符。

     1.%,用来匹配一个或多个字符。

     2._ ,用来匹配仅一个字符。

     3.[多个字符],用来匹配多个字符中的一个(MySQL不支持)。

     4.[! 多个字符],用来匹配非多个字符中的一个(MySQL不支持)。

     PS:通配符与like必须一起使用。


like关键字:

     模糊查询,使用较多,其实就是使用使用少量数据取匹配出我们要查询的数据。如我要找带有‘on’字符串的单词,如‘LONDON’。

     在SQLite语法中,我们要实现模糊查询,需要学习:like关键字和通配符。

     select * from 表名 where 列名 like '_n%' ;

     查询这个表中此字段内,第二个字符为n的数据。

0 0
原创粉丝点击