1.SQL命令:
SQL 支持4大类型命令:
数据定义语言(DDL): Create(创建), Alter(更改), Drop(删除).
数据操纵语言(DML): Select(选择), Insert(插入), Update(更新), Delete(删除).
事务控制语言(TCL) : Commit(提交), Rollback(回滚), Savepint(保存点).
数据控制语言(DCL) : Grant(授予), Revoke(回收).
2.操作:
1)数据定义语言:用于改变数据库结构,包括创建,修改,删除数据库对象
创建表(create):
create table person(id int primary key,name varchar(16) not null,password int not null, address varchar(20)); |
更改(alter):
注:add:增加,modify:修改
alter table person add(age int);//增加1个属性列
alter table person add(age int,weight int);//增加多个属性列
alter table person modify(age varchar(6));//修改属性列
alter table person modify(age varchar(6),weight varchar(6));//修改多个属性列 |
删除(drop):
附加:
描述表的属性列:describe person;
2).数据操纵语言: 用于检索,插入和修改数据库信息
选择查询(select):
select * from person;//检索全部信息
select id,name from person;//检索部分信息
select distinct name from person;//检索部分信息,但消去重复行(distinct)
select * from person where id=1;//查询符合条件的信息
select * from person order by id;//查询并排序(order by)显示查询信息
select * from person where id=1 and sex='man';
select * from person where address='bj' or sex='woman';
select * from person where(address='bj' or sex='woman') or age>20; |
Select 语句的总语法:
Select * | {[Distinct] 列名,列名,…… } From TableName
[Where 条件]
[Order By 列名,列名,……]; |
其中用[ ]括起来的表示是可以按自己实际选择写或不写。Order By表示结果要排序,By后指出排序的属性列名,可单列或多列排序(在前排的基础上再排序),其后可说明排序方式:DESC为降序,ASC为升序,默认为升序。在select语句中,order by子句必须在所以其他子句之后,作为最后一个子句出现。
插入(Insert):
insert into person(id,name,sex,address)values(1,'toxm','man','bj');//插入一个表的所有列:
insert into person values(1,'toxm','man','bj');//插入一个表的所有列
insert into person(id,name) values(1,'toxm');//选择性插入表中的列
insert into person select * from user;//插入来自其他表的所有记录
insert into person select id,name from user;//选择列插入来自其他表的记录
insert into person select * from user where sex='man';//按条件插入来自其他表的所有记录 |
更新:(Update ):
update person set name='toxm' where id=1;//按条件更新一列或多列
upsate person set name='toxm',address='bj' where id=1;//按条件更新多列
update person set name='toxm;//更新所有行 |
删除:(Delete):
delete from person;//删除表中所有记录
delete from person where id=1;//按条件删除表中记录 |
3)事务控制语言:
当用户执行创建,删除,修改数据库对象或插入,删除,修改数据库表时,用户所做的数据修改会被保存在数据缓冲区中,此时用户所做的数据库修改并没有真正的修改了数据库,只有在用执行Commit(提交)命令后才真正的修改了数据库, 如果想不修改数据库,则可以执行Rollback(回滚)命令则刚刚执行的修改不会修改数据库。
如: 当你用Insert 命令插入一条记录时,此时这条记录是保存在数据缓冲区中的,并没有真正保存到数据库中,数据库中不会有这条记录(不信你可以以另一个用户登陆然后查询插入的表,会发现无次记录), 如果你执行了Commit(提交)命令后, 才会将缓冲区的数据保存到数据库里, 既真正的修改了数据库(以另一个用户登陆可以查询到插入的记录), 如果执行Rollback(回滚)命令则会把存在缓冲区中的数据给删除掉,既用户的修改作废(如果执行Commit命令则不能回滚了)。 可以利用Savepoint(保存点)进行选择性的回滚。 |