SQL :结构化查询语言。 (数据库不区分大小写)

MYSQ 基本命令

1:数据定义语言(DDL)(create,drop,alter)

创建数据库,

CREATE DATABASE 数据库名 

删除数据库:

DROP DATABASE 数据库名

创建表:

CREATE TABLE 表名

 create table teacher (

 sid int (11) primary key auto_increment,

 name varchar (20) not null ,

 gender char (1),

 age int (2),

 birth date);

drop table 表名

语的句会删除表的结构内容慎用!!!

 修改表结构:

alter table 语句):

 给表添加新表列

 alter table teacher add column course varchar (20);

 修改表名:

 alter table teacher add column course varchar (20);

 删出一列:

alter table teacher_tab drop column birth;

修改某一列的类型:

(将varchar属性改大一点 但列名不能改)

  alter table teacher_tab modify course varchar (50);

查询表结构:

表名。 

2:数据操纵语言(DML)

 添加数据

Insert into ...语句。

Insert into 表名 (字段1, 字段2.。。。) values (值, 值, 值。。。)

威哥

','男',27,'android讲师',now());

2:修改数据

Update 表名 字段名= ‘值’。。。。Where字段名= ‘值’

(修改是where条件最好为id)

 update teacher_tab set age = 26 where id =1;

3:删出数据:

Delete from 表名:// 删除表的 所有的数据

delete from teacher_tab where id =1;

3:数据查询语言(DRL)

对于查询语句中的* (统配符)如果是用其查询的话会增加后台数据库的负担,其会将表的所有列表项解析出来,会降低数据库的效率,使用的时候应该避免使用统配符。

2:查询已有表中course为空的老师信息:

select *from teacher_tab where course is null ;

3:查询老师信息按日期降序排列 (默认为asc,可以匹配多个条件用逗号隔开 ):

 select *from teacher_tab order by create_data desc;

4:按性别分组查询男女老师的人数:

 select gender , count(gender)from teacher_tab group by gender;

5:按性别分组查询出女老师的人数:

group中增加查询条件要使用having 语句 (专门为分组时提供的语句)。

 select gender,count(gender)from teacher_tab group by gender

女'; 

上语句虽然可以完成查询,但是效率较低,如下语句效率较高:

女';

7:查询表的总记录数:

select count(*) from teacher_tab; (存在统配符不建议使用)

8:一般统计id个数

 select count(id) from teacher_tab;

9:查询老师记录的前三条:

select *from teacher_tab limit 0,3;

limt一共有两个参数,第一个参数为索引号,第二个参数为要查询的记录数

10:查询性别为女和指定日期的老师:

女'and

 create_data= '2015-12-14';

11:查询性别为男或者id小于5的老师

select *from teacher_tab where gender='男'or id <5;

12:查询姓名的最后一个字符为“琪”的老师

select * from teacher_tab where name like '%琪';

13:查询姓名已指定字符开始的老师:

select * from teacher_tab where name like '小%';

姓名中包含“老”的老师:

select * from teacher_tab where name like '%老%';

4:事务控制语言(TCL)

是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠

事务:是访问并可能更新数据库中各种数据项的一个程序执行单元。

在关系数据;库中一个事务可以是一条SQL语句,一组SQL语句或整个程序。

事务的属性:原子性,一致性,隔离性,持续性。(acid);

设置默认事务提交方式:

Set autocommit = false  -------设置事务提交方式为手动提交

Set autocommit = true---------设置事务提交方式为自动提交方式

当set autocommit= false后,所有的SQL都将作为事务处理,直到使用comm(提交)确或

Rollback(回滚)结束。当结束这个事务的同时也开启了新的事务。

Savepoint point2 保存还原点。

Rollback to point2 :回滚到point2

在一个事务中可以设置多个还原点,在事务没有提交之前,都可以回滚到任意点。但是如果一旦提交的话,就无法再提交了。