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的数据。