SQL学习之一基础命令

  

一、SQL语法

1,数据库表

一个数据库通常包含一个或多个表。每个表由一个名字标识,表包含带有数据的行。

2,大小写

SQL对大小写不敏感。

3, SQL语句后的分号

某些数据库要求在每条SQL命令的末尾使用分号,比如mysql。

4, SQL的DML和DDL

可以把SQL分为两个部分:DML(数据操作语言数据操作语言)和DDL(数据定义语言数据定义语言)

查询和更新数据的指令构成的了SQL DML部分:

选择——从数据库表中读取数据

更新——更新数据库表中的数据

删除——从数据库表中删除数据

插入——向数据库表中插入数据

的SQL DDL部分指创建或删除表格,更新表结构,定义索引,规定表之间的链接,施加表间的约束的命令。

创建数据库——创建新数据库

改变数据库——修改数据库

创建表——创建新表

alter table——更新表结构

删除表——删除表

创建索引——创建索引

下降指数——删除索引

二、创建一个实例

以mysql为例:

mysql>, create  database 研究;   mysql>, use 研究;   mysql>, create  table 学生(id  int  auto_increment  primary 关键,name  varchar (255), sex  char (10));   mysql>, insert  into  students (名字、性别),values  (“zhangsan”、“男人”)(“lisi”、“女人”)(“wangwu”、“男人”)(“zhaoliu”、“女人”);   mysql>, select  *,得到学生;

 SQL学习之一基础命令

注意:在MySQL中值除了数字之外,都需要用“包含。

三、基础SQL语句

1,选择:用于从表中获取数据。

格式:选择列名从表名;

例子:

①从学生表中选取所有的学生姓名:

mysql>, select  name 得到学生;

②从学生表中选取所有的学生姓名和性别:

mysql>, select 名字,sex 得到学生;

多个列名之间用逗号隔开。

③查看学生表中的所有数据:

mysql>, select  *,得到学生;

" * "代表所有的列名。

2,截然不同:在表中,可能包含有重复的数据,但是有时希望仅仅列出不同的值。这时使用不同的返回唯一不同的值。

格式:选择不同的列与表名名;

例子:

①从学生表中列出所有的性别(……):

mysql>, select  distinct  sex 得到学生;   + - - - - - - - +   |,sex , |   + - - - - - - - +   |,man , |   | |,woman    +-------+        man和woman各被列出一次。

3、where:用于有条件地从表中获取数据,通常和select一起使用。

格式:select 列名 from 表名 where 列名 运算符 值;

这里的运算符包含=(等于)、<>(或?,不等于)、>=(大于等于)、<=(小于等于)、>(大于)、<(小于)、between(在某个范围内)、like(以某种模式)

例子:

①从students表中列出所有性别为“man”的学生:

mysql> select name from students where sex = 'man';

这样会列出‘zhangsan’,‘wangwu’二个值。

②从students表中列出所有ID不超过3的学生:

mysql> select name from students where id <= 3;

这样会列出‘zhangsan’,‘lisi’,‘wangwu’三个值。

③从students表中列出所有ID在2和3之间的学生:

mysql> select name from students where id between 2 and 3;

这样会列出‘lisi’,‘wangwu’二个值。不同的数据库对两个边界值(2和3)的处理方式不同,mysql会列出包含2和3的列,但是有些数据库不会列出。

4、and和or:用于对一个以上的记录进行过滤。可以在where子句中把两个或多个条件结合起来。

例子:

①从students表中列出ID不超过3,且性别为女的学生姓名:

mysql> select name from students where id <=3 and sex='woman';

这样会列出‘lisi’一个值。

5、order by:用于对获取的结果进行排序。默认是对结果进行升序排序,可以使用desc关键字对结果进行降序排序。

SQL学习之一基础命令