SQL学习笔记
注意SQL不区分大小写
SQL分为两个部分:数据操作语言(DML) 和 数据定义语言(DDL)
一、数据操作语句
查:select---从数据库表中获取数据
语法select 列名称 from 表名称 以及 select * form 表名称,例子:select lastname,firstname from persons select * form persons 星号是选取所有列的快捷方式
如果要从列中选取所有值是select company form orders,如果需要取唯一不同的值去除重复的值,需要用select distinct语句:select dstinct company form orders
where子句:如需有条件地从表中选取数据,可将where子句添加到select语句
语法:select 列名称 form 表名称 where 列 运算符 值
select * form persons where city=‘Beijing’ //SQL使用单引号来环绕文本值,大部分数据库也接受双引号。如果值是数值,请不要使用引号
select * from persons where year >= 1990
AND & OR运算符用于基于一个以上的条件对记录进行过滤,and 和or可在where子句中把两个或多个条件结合起来
如果要第一个条件和第二个条件都成立,则用and运算符
如果第一个条件和第二个条件中只要有一个成立,则用or运算符
例子:select * from persons where firstname=‘Thomas’ and lastname=‘Carter’ //使用and 来显示所有姓为carter并且名为thomas的人
select * from persons where firstname=‘Thomas’ or lastname‘carter’ //使用or来显示所有姓为carter或者名为thomas的人
我们也可以把and 和 or结合起来(使用圆括号来组成发复杂的表达式)
select * form persons where (firstname=‘Thomas’ or lastname=‘william’) AND lastname=‘carter’
order by 语句用于对结果集进行排序
order by 语句默认按照升序对记录进行排序
如果您希望按照降序对记录进行排序,可以使用desc关键字
例子:select company,ordernumber form orders order by company //以字母顺序显示公司名称
select company, ordernumber from orders order by company, ordernumber //以字母顺序显示公司名称,相同的以数字顺序显示顺序号
select company,ordernumber form orders order by company desc //以逆字母顺序显示公司名称
select company,ordernumber from orders order by company desc, ordernumber asc //以字母逆顺序显示公司名称,相同的以数字顺序显示顺序号
改:update---更新数据库表中的数据
语法:update 表名称 set 列名称=新值 where 列名称=某值
例子:update person set firstname = fred where lastname=wilson //更新某一行中的一个列
update person set firstname=zhongshan, city=nanjing where lastname=wilson//更新一行的若干列
删:delete---从数据库表中删除数据
语法:delete form 表名称 where 列名称=值,例子:delete form person where lastname=‘wilson’ //删除某行
语法:delete form 表名称 或者 delete * form 表名称,例子:delete form person或delete * form person //删除所有行
增:insert into---从数据库表中插入数据
语法:insert into 表名称 values(值1,值2,值3。。。) //插入新的行 例子:insert into persons values(‘Gates’,‘bill’,‘beijing’)
我们也可以指定所要插入数据的列
insert into 表名称 (列1,列2,。。。) values (值1,值2,值3.。。)//在指定的列中插入数据 例子:insert into persons (Lastname, Firstname)values (‘wilson’, ’champs‘)
二、数据定义部分
create database---创建新数据库
语法:create database 数据库名称 通过create database语句添加数据库,例子:create database my_db
alter database---修改数据库
create table---创建新表
语法:create table 表名称 (列名称1 数据类型,列名称2 数据类型,列名称3 数据类型,。。。)数据类型规定了可容纳数据类型
SQL中常用的数据类型:
integer(size)\int(size)\smallint(size)\tinyint(size):仅容纳证书。在括号内规定数字的最大位数
decimal(size,d)\numeric(size,d):容纳带有小数的数字。size规定数字的最大位数,d规定小数点右侧的最大位数
char(size) :容纳固定长度的字符串(可容纳字母、数字以及特殊字符)在括号中规定字符串的长度
varchar(size):容纳可变长度的字符串(可容纳字母、数字以及特殊的字符)在括号中规定字符串的最大长度
date(yyyymmdd):容纳日期
例子
create table persons
(Id_p int,
Lastname varchar(255)
FirstName varchar(255)
Address varchar(255)
City varchar(255)
)
alter table---变更数据库表,用于在已有的表中添加、修改或删除列
语法:alter table 表名称 add 列名称 datatype //添加列 例子:alter table persons add birthday date
alter table 表名称 drop column 列名称 //删除列 例子:alter table persons drop column birthday
alter table 表名称 alter column 列名称 datatype //改变列的数据类型 例子:alter table persons alter column birthday year
drop---删除索引,删除表,删除数据库
drop database 数据库名称
drop table 表名称
如果我们仅仅需要除去表内的数据,但并不删除表本身,请使用Truncate table命令
语法:truncate table 表名称
create index---创建索引(搜索键)
drop index---删除索引