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---删除索引

 

posted @ 2022-04-19 16:13  琴声悠悠-悠悠琴声  阅读(86)  评论(0编辑  收藏  举报