mysql语句

注意:SQL 对大小写不敏感:SELECT 与 select 是相同的。

1、逻辑运算

    (1)And:与 同时满足两个条件的值。

    (2)Or:或 满足其中一个条件的值。

    (3)Not:非 满足不包含该条件的值。

    逻辑运算的优先级:()  > not  >    and    >    or

2、SELECT - 从数据库中提取数据

     UPDATE - 更新数据库中的数据

     DELETE - 从数据库中删除数据

     INSERT INTO - 向数据库中插入新数据

     CREATE DATABASE - 创建新数据库

    ALTER DATABASE - 修改数据库

    CREATE TABLE - 创建新表

    ALTER TABLE - 变更(改变)数据库表

    DROP TABLE - 删除表

    CREATE INDEX - 创建索引(搜索键)

    DROP INDEX - 删除索引

3、WHERE子句中的运算符:

     <> 不等于。注释:在 SQL 的一些版本中,该操作符可被写成 !=

     BETWEEN 在某个范围内

     LIKE 搜索某种模式

     IN 指定针对某个列的多个可能值

4、DDL语句

1)创建数据库

    1>create database d1;

    2>选择要操作的数据库:USE d1; 对于要操作的数据库我们需要使用use来选择一下!

2)创建表(在哪个数据库里面创建表需要先使用use选择到那个要操作的数据库)

1>创建表

    create table 表名(

    字段1名 字段1类型  列的约束条件,

    字段2名 字段2类型  列的约束条件,

    ...

    )

2>创建完表之后可以查看表的定义

                                desc 表名;

4)删除表

drop table 表

5)修改表

1>修改表的字段类型

              alter table 表名 modify [column] 字段定义  [first|after 字段名];

2>增加表字段

              alter table 表名 add [column] 字段定义 [first|after 字段名];

3>删除表字段

alter table 表名 drop [column]  字段名;

4>字段改名

              alter table 表名 change [column] 旧的字段名 字段定义 [first|after 字段名];

  注:change与modify都可以修改表的定义,不同的是change后面需要接两次列名,不方便,但是优点是change可以修改字段名称

5>修改字段排列排序

前面介绍的字段增加和修改语法(add/change/modify)中,都有一个可选项first|after 字段名,这个选择可以用来修改

              字段在表中的位置新增的字段默认是加载在表中最后位置,而change/modify 默认都不会改变字段的位置

  alter table t1 modify id2 tinyint first;

  alter table t1 modify id2 tinyint after id1;

注意:change/first|after 字段名 这些关键字都是属于MySQL在标准SQL上的扩展,在其他的数据库上不一定适用

6)更改表名

              alter table 表名 rename [to] 新的表名;

8、DML语句

查询: select * from 表名;

1)插入记录

1>插入记录

insert into 表名(字段1,字段2,字段3,...,字段n)  values(值1,值2,值3,...,值n);

也可以不用指定字段名,但是values后面的顺序应该和字段的排序一致

2>插入多个记录(注意不要忘记每次输入值之后)

insert into 表名(字段1,字段2,字段3,...,字段n)  values

(值1,值2,值3,...,值n),

(值1,值2,值3,...,值n),

(值1,值2,值3,...,值n);

2)更新记录

1>更新一个表(修改字段值)

update 表名 set 字段1=值1,字段2=值2,...字段n=值n  where 条件 ;//不加where的话会把所有的都改了

3)删除记录

1>删除单表中的数据 

delete from 表名  where 条件 ;

1、排序:

select * from 表名 order by 字段名 asc;(由低到高(也是默认值))

select * from 表名 order by 字段 desc;(由高到低)

select * from 表名 order by 字段名 asc,字段名 desc;(多字段排序)

2、限制:

select * from 表名 order by 字段 desc limit 1;(显示第一条信息)

select * from 表名 order by 字段 desc limit 2;(显示从上到下的两条信息)

select * from 表名 order by 字段 desc limit 0.1;(显示第一条信息)

select * from 表名 order by 字段 desc limit 1.1;(显示第二条信息)

select * from 表名 order by 字段 desc limit 1.3;(显示从上到下的三条信息)

3、聚合(汇总操作):

select sum(字段名) from 表名;(sum求和)

select sum(字段名) from 表名 group by 字段名;(group by 分组求和)

select sum(字段名) from 表名 group by 字段名 with rollup;(with rollup 每组进行求和)

select sum(字段名) from 表名 group by 字段名 having sum(字段名)>100;(对与字段中数值大于100的显示)

(having是对所有组进行分类后有条件的过滤|聚合后有条件的过滤)(而where是在聚合之前对记录进行过滤)

4、表连接

      1>内连接:选取两个表中相匹配的记录

select 表 . 字段1,字段2 from 表名1,表名2 where 表名1 . id=表名2 . id;

      !select 可以给字段起别名 !

例:select 表名1 . id a, 表名2 . id b from 表名1,表名2 where 表名1 . id=表名2 . id;

      2>外连接:不仅仅选取两张相互匹配的记录,并且会选出其他不匹配的记录

          (1)左连接:

          (2)右连接:

获取数组的长度 - count() 函数

count() 函数用于返回数组的长度(元素的数量):

实例

<?php$cars=array("Volvo","BMW","Toyota");echo count($cars);?>

9、LIKE 语句:

mysql> use RUNOOB;

Database changed

mysql> SELECT * from runoob_tbl  WHERE runoob_author LIKE '%COM';

'%a'    //以a结尾的数据

'a%'    //以a开头的数据

'%a%'    //含有a的数据

'_a_'    //三位且中间字母是a的

'_a'    //两位且结尾字母是a的

'a_'    //两位且开头字母是a的

10、UNION联合语句:

下面的 SQL 语句从 "Websites" 和 "apps" 表中选取所有不同的country(只有不同的值):

SELECT country FROM Websites

UNION

SELECT country FROM apps

ORDER BY country;

order by 列数 ;  //表示以第几列为分组

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容