MySQL数据库操作和SQL基本命令——增删查改数据库、增删查改数据表、数据表的聚合函数、排序、分组、连接查询和子查询

一、常用SQL命令

1、创建、查看、删除、使用数据库

(1)创建数据库

create datebase 数据库名;

(2)查看数据库

show datebases;

(3)删除数据库

drop databese 数据库名;

(4)选中使用数据库

use datebase 数据库名;

2、列的数据类型:

(1)整数型

整数:int或integer,4字节;

浮点数:float,4字节;float(10,2),总长度为10,取小数点后2位;double,8字节;

(2)字符型

char,定长字符串;varchar,变长字符串;

(3)日期型

DATE,3字节,格式:YYYY-MM-DD,用途:日期值;

TIME,3字节,格式:HH-MM-SS,用途:时间值或持续时间;

YEAR,1字节,格式:YYYY,用途:年份值;

DATETIME,8字节,格式:YYYY-MM-DD HH:MM:SS,用途:混合日期和时间值;

TIMESTAMP,4字节,格式:YYYYMMDD HHMMSS,用途:混合日期和时间值,时间戳;

3、创建、查看、删除、修改数据表

数据在数据库中的存储方式是行和列,创建数据表时增加列,插入数据时增加的行。

(1)创建数据表

create table 表名

(列名1 列的数据类型,

列名2 列的数据类型,

。。。

约束条件:

给列增加约束,使该字段存储的值更符合我们的预期。

在列的数据类型后面加:

1)UNSIGNED,无符号,值从0开始,无负数;

2)ZEROFILL,零填充;

3)NOT NULL,非空约束;

4)DEFAULT,默认值;

5)PRIMARY KEY,主键约束,唯一,不能为空;

6)AUTO_INCREAMENT,自增,只能用于数值类型,从1开始,每次增加1;

7)UNIQUE KEY,唯一值,表示该字段下的值不能重复,可以为空,可以有多个;

注意:如果一列同时有UNSIGNED,ZEROFILL和NOT NULL三个约束,UNSIGNED和ZEROFILL必须在NOT NULL前面。

(2)查看数据表

show tables;

(3)修改数据表

1)增加列:alter table 表名 add 列名 列的数据类型 约束;

注意:

默认添加在最后一列;如果要增加在第一列,要在后面加first;如果要指定增加在哪一列后面,在后面增加:after 前一列列名;

2)删除列:alter table 表名 drop 列名;

3)修改列:alter table 表名 modify 列名 列的数据类型;alter table 表名 change 旧列名 新列名 列的数据类型;

(modify是修改数据类型,change是修改列名和数据类型)

(4)删除数据表

drop table 表名;

4、数据表的增删查改

(1)数据表的增加:insert语句

insert into 表名 (“列名1”,“列名2”...) value (值1,值2...);

(2)数据表的查询:select语句

select 列名1,列名2... from 表名;

select * from 表名

as语句:

select 列名 as 别名 from 表名;

(3)数据表的更新:update语句

update 表名 set 列名=新值 where 列名=值;

(4)数据表的删除:delete语句

delete from 表名 where 条件;

(5)where子句

 

 

比较运算符

>< <= >= = <>

大于 小于,大于等于,小于等于,不等于

BETWEEN…AND…

显示在某一区间的值

(对整型,是左右闭区间;对浮点数,左开右闭区间)

IN()

显示在in列表中的值,例:in(100,200)

Like ‘%’

模糊查询,显示张开头的字符

is null

判断是否为空

 

逻辑运算符

and

多个条件同时成立

or

多个条件任一成立

not

不成立,例:not like;is not null

5、数据表的排序、聚合、分组命令

(1)排序子句:order by

使用order by子句对查询结果进行排序,一般位于select最后,指定排序的列ASC升序(默认),DESC(降序);

(2)常用聚合函数

1)去重

DISTINCT——对某一列去重

select distinct 列名 from 表名;

2)统计

count——统计总行数

select count(列) from 表名;

3)最值

最大值:select MAX(列名) from 表名;

最小值:select MIN(列名) from 表名;

4)平均值

select AVG(列名) from 表名;

5)求和

select SUM(列名) from 表名;

(6)取值范围

select * from 表名 limit m,n;

查询n-m行;

(3)分组:group by

不加having过滤:select 列名,聚合函数 from 表名 where子句 group by 列名;

加having过滤:select 列名,聚合函数 from 表名 where子句 group by 列名 having 聚合函数 过滤条件;

6、数据表的连接查询和子查询

(1)左连接

获取左表所有行信息,即使右表没有匹配行信息,没有匹配的行用null代替;

select * from 表名 a left join 表名 b on a.列名=b.列名;

(2)右连接

获取右表所有行信息;

select * from 表名 a right join 表名 b on a.列名=b.列名;

(3)内连接

获取两个表中字段匹配的所有行信息;

select * from 表名 a inner join 表名 b on a.列名=b.列名;

(4)子查询

嵌套在其他查询里的查询;

select * from 表名1 where 列名1 in (select 列名1 from 表名2 where 列名2=XX...)

一般在子查询中,程序先运行内层语句,因此先测试好内层语句是否输出了想要的内容,再一层层的往外测试,增加正确率。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值