常用SQL命令汇总(一)-增删改及单表查询

一、数据库及表的创建

数据库操作-mysql适用:

1、显示所有数据库:Show databases;

2、创建数据库:Create database 数据库名;

3、删除数据库:Drop database 数据库名;

表操作:

CREATE TABLE 表名(  属性名 类型 [完整性约束条件],.....);

约束条件

说明

PRIMARY KEY

标识该属性为该表的主键,可以唯一的标识对应的记录

FOREIGN KEY

标识该属性为该表的外键,与某表的主键关联

NOT NULL

标识该属性不能为空

UNIQUE

标识该属性的值是唯一的

AUTO_INCREMENT

标识该属性的值自动增加

DEFAULT

为该属性设置默认值

注: UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。简单来说:unique=primary key+not null

区别:1、primary key只能有一个,unique可以有多个同时存在;

            2、primary key不能为空,而unique可以为空;

primary key一般在设计逻辑中用作记录标识,而unique只是用来保证唯一性

UNIQUE (bookId)//新建表时将bookId设为唯一

//添加唯一约束

ALTER TABLE Persons ADD UNIQUE (Id_P) //改变Id_P为唯一

CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName)//设置Id_P和LastName都为唯一并命名为uc_PersonID

建表时创建外键

FOREIGN KEY (Id_P) REFERENCES Persons(Id_P)//设置本表Id_p字段和Persons表的Id_p主键关联

查看表结构:

1,查看基本表结构: 

DESCRIBE(或DESC) 表名;//返回表字段及其详细信息表格

2,查看表详细结构: 

SHOW CREATE TABLE 表名;//返回结果是创建表的sql

删除/清空 表:

1、 drop table  表名; //彻底删除表格,删除字段数据,释放内存空间

2、 truncate 表名;  //删除表格数据,不删除字段,释放内存空间

3、 delete from 表名;或delete * from 表名;// 删除内容不删除定义,不释放空间,系统一行一行地删,效率较truncate低

修改表:

1,修改表名  ALTER TABLE  旧表名  RENMAE 新表名 ;

2,修改字段  ALTER TABLE 表名  CHANGE  旧属性名  新属性名  新数据类型

3,增加字段  ALTER TABLE  表名 ADD 属性名  数据类型 [完整性约束条件] [FIRST | AFTER 属性名 2]

4,删除字段  ALTER TABLE  表名  DROP 属性名

二、增删改

插入数据

  • 给表的所有字段插入数据

    

INSERT INTO 表名 VALUES(值 1,值 2,值 3,...,值 n);
  • 给表的指定字段插入数据
INSERT INTO 表名(属性 1,属性 2,...,属性 n) VALUES(值 1,值 2,值 3,...,值 n);
  • 同时插入多条记录
INSERT INTO 表名 [(属性列表)]  VALUES(取值列表 1),(取值列表 2)  ..., (取值列表 n);

更新数据

UPDATE 表名  SET 属性名 1=取值 1,属性名 2=取值 2, ..., 属性名 n=取值 n  WHERE 条件表达式;

删除数据

DELETE FROM 表名 [WHERE  条件表达式]

三、查询语句(单表)

条件查询 WHERE:

SELECT 字段 1,字段 2,字段 3...FROM 表名 WHERE 字段 [NOT] IN (元素 1,元素 2,元素 3);//查找属性(不为)为元素1、元素2和元素3的结果

SELECT 字段 1,字段 2...FROM 表名 WHERE 条件表达式 1 AND 条件表达式 2 [...AND 条件表达式 n] //and多条件查询

SELECT 字段 1,字段 2...FROM 表名 WHERE 条件表达式 1 OR 条件表达式 2 [...OR 条件表达式 n] //or多条件查询

范围查询 BETWEEN AND:

SELECT 字段 1,字段 2,字段 3...FROM 表名 WHERE 字段 [NOT] BETWEEN 取值 1 > 指定值;//大于小于等符号

SELECT 字段 1,字段 2,字段 3...FROM 表名 WHERE 字段 [NOT] BETWEEN 取值 1 AND 取值 2;//两端都包含

模糊查询 LIKE:

SELECT 字段 1,字段 2,字段 3...FROM 表名 WHERE 字段 [NOT] LIKE ‘字符串’;

“%”代表任意字符;   “_” 代表单个字符;

空值查询 NOT NULL:

SELECT 字段 1,字段 2,字段 3...FROM 表名 WHERE 字段 IS [NOT] NULL;

去重复查询 DISTINCT :

SELECT DISTINCT 字段名 FROM 表名;

排序 ORDER BY

SELECT 字段 1,字段 2...FROM 表名 ORDER BY 属性名 [ASC|DESC] //ASC升序(默认) DESC降序

分组查询 GROUP BY

GROUP BY 属性名 [HAVING 条件表达式][WITH ROLLUP]

1,单独使用(毫无意义);

2,与 GROUP_CONCAT()函数一起使用;

3,与聚合函数一起使用;

4,与 HAVING 一起使用(限制输出的结果);

5,与 WITH ROLLUP 一起使用(最后加入一个总和行);

分页查询 limit:

SELECT 字段 1,字段 2...FROM 表名 LIMIT 初始位置,记录数;

聚合函数查询:

一,COUNT()函数

COUNT()函数用来统计记录的条数; 与 GOUPE BY 关键字一起使用;

二,SUN()函数

SUM()函数是求和函数; 与 GOUPE BY 关键字一起使用;如:

SELECT stuName,SUM(score) FROM t_grade GROUP BY stuName;//根据学生姓名分组算出每个学生的分数总和

注意:当用group by 分组查询时只能查出分组的字段和聚合函数的结果,其他字段无法查出

三,AVG()函数

AVG()函数是求平均值的函数; 与 GOUPE BY 关键字一起使用;

SELECT stuName,AVG(score) FROM t_grade WHERE stuName="张三";//算出张三的平均分

四,MAX()函数

MAX()函数是求最大值的函数; 与 GOUPE BY 关键字一起使用;

MIN()函数是求最小值的函数; 与 GOUPE BY 关键字一起使用;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值