刚开始学数据库啊,算是记录下来吧,等以后忘了,可以当笔记看下。首先当然是学SQL了。
SQL是Structured Query Language的意思。是用于访问和处理数据库的标准计算机语言。
一.SQL简介
1.SQL是什么?
其是结构化查询语言。我们可以用它访问数据库。其还是一种ANSI的标准计算机语言。
2.SQL能做什么?
其可以面向数据库查询,可以从数据库中取回、更新数据。可以在数据中插入,删除记录。或者创建新的数据库,新表,存储过程,视图。还可以设置表,存储过程和视图的权限。
3、SQL存在着很多不同版本的语言。但是为了支持ANSI标准,它们必须以相似的方式支持一些主要的关键词,(比如SELECT、UPDATE、DElETE、INSERT、WHERE等等)
二.SQL语法
注意:.SQL对大小写不敏感。
1.SELECT
假如有一个person的表
number firstName LastName city
1 lei jone Beijing
2 hong jack London
则下面的语句就是用来从表中选取firstName的数据 select firstName from person 则结果应该是这样的
firstName
lei
hong
其他:某些数据库系统要求在每条SQL的数据末端使用分号。 分号是在数据库系统中分隔每条SQL语句的标准方法。
SQL的DML和DDL
可以把SQL分为两个部分,数据操作语言(DML)和数据定义语言(DDL)
DML主要包括select 从数据库表中获取数据。 update 更新数据库表中的数据
delete 从数据库表中删除数据 insert into 向数据库表中插入数据
DDL主要包括 create database 创建数据库 alert database 修改数据库
create table 创建新表 alert table 变更数据库表
drop table 删除表 create index 创建索引
drop index 删除索引
2.selecte distinct
在表中可能会出现重复值
关键词distinct用于返回唯一不同的值
语法:select distinct 列名称 from 表名称
使用distinct 关键词
person的表
number firstName LastName city
1 lei jone Beijing
2 hong jack London
3 lei li new york
select firstName from person
结果为 firstNName
lei
hong
lei
此时lei被列了两次
而此时如果用select distinct firstName from person
则此时结果为
firstName
lei
hong
此时lei仅仅被列了一次
3.where语句 有条件的从表中选取数据。
select 列名称 from 表名称 where 列 运算符 值
操作符 between 在某个范围内 link 搜索某种模式。
person表
number firstName LastName city
1 lei jone Beijing
2 hong jack London
3 lei li new york
select *from person where firstName=‘lei’结果为
number firstName LastName city
1 lei jone Beijing
2 hong jack London
3 lei li new york
number firstName LastName city
1 lei jone Beijing
3 lei li new york
SQL使用单引号来环绕文本值,如果是数值,则不需要引号。如果是数值,则不需要引号
数值 时 select *from person where number>2
3.and 和or运算符用于基于一个以上的条件对记录进行过滤。
and和or运算符可以在where语句中把两个或者多个条件结合起来。、
如果两个条件运算符都成立,则用and运算符显示一条记录。
如果两个运算符只要有一个条件成立,则用or运算符。
number firstName LastName city
1 lei jone Beijing
2 hong jack London
3 lei li new york
number firstName LastName city
1 lei jone Beijing
2 hong jack London
3 lei li new york
select *from person where firstName=' lei' and lastName=' jone'
结果为 number firstName LastName city
1 lei jone Beijing
使用or来显示名为jone和jack的人
select *from person where LastName=' jone' or LastName =' jack'
结果为
number firstName LastName city
1 lei jone Beijing
2 hong jack London
结合and和or运算符
select *from person where (LastName=‘jone’ or LastName=‘li’)and firstName=‘lei’
Person表
number firstName LastName city
1 lei jone Beijing
2 hong jack London
3 lei li new york
结果为
1 lei jone Beijing
3 lei li new york
4.order by 语句 是对结果集进行排序
order by语句 用于根据指定的列对结果集进行排序
默认按照升序对记录进行排序。
但是如果按照降序对记录进行排序,需要使用desc关键字
原始的表
order表
company orderNumber
IBM 3000
Wellav 2300
apple 6666
apple 4444
例 以字母顺序显示公司名称
select company ,orderName from order ORDER BY company
结果为
company orderNumber
apple 6666
apple 4444
IBM 3000
Wellav 2300
例2
以字母顺序显示公司(company),并以数字顺序显示顺序号(orderNumber)
select company ,orderNumber from orders ORDER BY company ,orderNumber
结果为company orderNumber
apple 4444
apple 6666
IBM 3000
wellav 2300
例三
以逆字母顺序显示公司名称
select company ,orderNumber from orders ORDER BY company DESC 结果为
company orderNumber
wellav 2300
IBM 3000
apple 6666
apple 4444
例四
以逆字母顺序呢显示公司名称,并以数字顺序显示顺序号
select company,orderNumber from orders order by company DESC,orderNumber ASC
结果为
company orderNumber
wellav 2300
IBM 3000
apple 4444
apple 6666
5.insert into 语句
insert into用于向表格中插入新的行
语法
insert into 表名称 VALUES (值1,值2,...)
我们也可以指定所要插入数据的列
insert into table_name (列1,列2,...) VALUES (值1,值2)
插入新的行
person 表
firstName lastName telePhoneNumber
xu thomas 13416877512
SQL 语句
insert into person values ('gates','billName','13216877512')
结果为
firstName lastName telePhoneNumber
xu thomas 13416877512
gates billName 13216877512
在指定的列中插入数据
person表
见上表
SQL语句
insert into person (lastName,telephone) values ('weilian','13716877512')
结果为
firstName lastName telePhoneNumber
xu thomas 13416877512
gates billName 13216877512weilian 13716877512
firstName lastName telePhoneNumber
xu thomas 13416877512
gates billName 13216877512
firstName lastName telePhoneNumber
xu thomas 13416877512
gates billNamefirstName lastName telePhoneNumber city
xu thomas 13416877512
gates billName 13616877512 nanjingfirstName lastName telePhoneNumber city
xu Tom 13416877512 beijing
gates billName 13216877512 nanjingirstName lastName telePhoneNumber city
xu Tom 13416877512 beijing
gates billName 13216877512 nanjingirstName lastName telePhoneNumber city
gates billName 13216877512 nanjing