一、基础的显示、建立、删除命令(对数据库和表)

1.显示数据库列表

show databases;

2.使用此数据库

use mysql;

3.显示库中的数据表

show tables;

4.显示数据表的结构

DESC 表名;-- describe表名

5.建库

CREATE DATABASE [IF NOT EXISTS] 数据库名;

6.建表:

use库名create table表名(
字段名 数据类型(长度) 属性,
字段名 数据类型(长度) 属性,
...);

7.删库和删表:

drop database 库名drop table表名;
DROP TABLE [ IF EXISTS ] 表名;
-- IF EXISTS 为可选,判断是否存在该数据表,
-- 如果删除不存在的数据表会抛出错误,
-- 加入IF EXISTS后,表不存在不报错

8.将表中记录清空

delete from 表名;

9.显示表中的记录

select *from 表名;

二、数据库注释语句

MySQL支持三种注释方式:

1.从#字符到行尾。

2.从-- 序列到行尾。注意--(双破折号)注释,要求第2个破折号后面至少跟一个空格符(例如空格、tab、换行符等等)。

3.从/*序列到后面的*/序列。多行注释。

三、约束

1.主键约束

定义:

主键是用来唯一标识表中记录的,一个或组合的多个字

要求:

1.一个表最多一个主键,主键不能为空,不能重复

2.表中可以没有主键,但是通常情况下建议为表设置主键。

用法:

1.创建表时添加约束

字段定义时加上关键字PRIMARY KEY

CREATE TABLE xs (#学生表
xs_nolNT(6)NOT NULL PRIMARY KEY,xs_name VARCHAR(12),
xs_sex
CHAR(2),
xs_ageTINYINT(3),xs_dateDATE
)CHARSET=UTF8;

2.如何设置主键为自增字段?

指新记录插入表中时自增字段会自动创建值

默认初始值是1,每次插入记录增加1.

方法:

创建表时设置自增

步骤1.列定义时使用AUTO_INCREMENT

CREATE TABLE xs ( #学生表
xs_no INT(6) PRIMARY KEY AUTO_INCREMENT,
xs_name VARCHAR(12),
xs_sex CHAR(2),
xs_age TINYINT(3) ,
xs_idnum VARCHAR(11)
) CHARSET=UTF8;

步骤2.设置自增起始值(默认1)

ALTER TABLE <表名> AUTO_INCREMENT=开始数字
#例如:
ALTER TABLE xs AUTO_INCREMENT=100 #从100开始自增

修改表时设置自增

ALTER TABLE <表名> MODIFY 字段类型 [其他约束] AUTO_INCREMENT;
ALTER TABLE xs MODIFY xs_no INT(6) PRIMARY KEY AUTO_INCREMENT
#xs_no列是主键列

2.外键约束

定义:

是表中唯一标识另一个或同一个表记录的,一个或组合的多个字段

外键用来强制引用完整性

“从表”中对应于“主表”的列,在从表中称为外键或者引用键

用法:

新建表时加外键:

CONSTRAINT 外键名
FOREIGN KEY(字段名)
REFERENCES 主表名(主键名);
#例:
CONSTRAINT dept1
FOREIGN KEY(deptId) REFERENCES student(id)

修改时加外键:

ALTER TABLE <数据表名> ADD CONSTRAINT <外键名>
FOREIGN KEY(<列名>) REFERENCES <主表名> (<列名>);
#例:
ALTER TABLE tb_emp2
ADD CONSTRAINT fk_dept1
FOREIGN KEY(deptId)
REFERENCES student(id);

删除外键约束的语法格式如下所示:

ALTER TABLE <表名> DROP FOREIGN KEY <外键约束名>;
#例:
ALTER TABLE tb_emp2
DROP FOREIGN KEY fk_tb_dept1;

3.非空(NOT NULL) 约束

定义:

强制字段不接受 NULL 值(强制字段始终包含值)

如果不向字段添加值,就无法插入新记录或者更新记录。

用法:

创建表时添加约束(列级约束)

字段定义时加上关键字NOT NULL表示不可以为空

字段定义时加上NULL表示可以为空

CREATE TABLE xs ( #学生表
xs_no INT(6),
xs_name VARCHAR(12) NOT NULL,
xs_sex CHAR(2),
xs_age TINYINT(3),
xs_idnum VARCHAR(11)
) CHARSET=UTF8;

四、数据库的增删改查基本语句

(一)INSERT语句( 添加语句 )

语法:

INSERT [INTO] 表名 [(列名)] VALUES (值列表);

示例:

INSERT INTO comments
(cmtId,newsId,cmtContent,cmtDate,cmtIP,cmtAuthor)
VALUES (1,1,'有深度','2018-12-03','192.168.1.2','张三’);

注意事项:

1: 字段名是可选的,如省略则依次插入所有字段

INSERT INTO comments
VALUES (1,1,'有深度','2018-12-03','192.168.1.2’); 

2: 插入的数据项,要求符合外键约束

3: 值列表和字段名列表一一对应

4: 具有缺省值的列,可以使用DEFAULT(缺省)关键字来代替插入的数值

5: 插入的数据项,要求符合主键约束

插入多行数据:

INSERT INTO 新表(字段名列表) VALUES(值列表1),(值列表2),……,(值列表n);

INSERT INTO comments
(cmtId,newsId,cmtContent,cmtDate,cmtIP,cmtAuthor)
VALUES (1,1,'有深度','2018-12-03','192.168.1.2', '张三') ,
(2,1,'有深度','2018-12-03','192.168.1.2','张三’); 

为避免表结构发生变化引发的错误,建议插入数据时写明具体字段名!

(二)UPDATE语句( 更新语句 )

语法:

UPDATE 表名 SET 字段1=值1,字段2=值2,…,字段n=值n [WHERE 条件];

示例:

UPDATE comments SET cmtContent= '喜欢邓超', cmtDate='2019-
01-01’ WHERE cmtid=1;

注意:

1、更新多列数据使用逗号隔开

2、勿忘条件限制,以防有效数据的丢失

(三)DELETE语句( 删除语句 )

语法:

DELETE FROM 表名 [WHERE条件];

示例:

DELETE FROM comments WHERE cmtId=1;

注意:

有主外键关联表,先删外键表数据,再删除主键表数据

(四)SELECT语句(查询语句)

语法:

SELECT 列名 FROM 表名;

示例:

SELECT * FROM comments;-- 查询所有comments表格中数据
SELECT cmtId,cmtDate,cmtAuthor FROM comments;

经验:

查询全部列使用*

功能示例:

功能 :给数据列取别名

 SELECT cmtId AS 评论编号, cmtAuthor AS 评论者名称 FROM comments;

功能 :给表取别名

SELECT com.newsId,cmtAuthor FROM comments AS com ;

功能 :把经计算或总结的结果用另外一个新名称来代替

SELECT cmtId+1 AS 评论编号 FROM comments ;

功能 :查询值1和值2区间的数据,并且包含值1和值2

SELECT * FROM comments WHERE cmtId BETWEEN 1 AND 10;

五、查询扩展

模糊查询

定义:

模糊查询是使用SQL 通配符替代一个或多个字符的条件查询

通配符:

一类字符,代替一个或多个真正的字符,与LIKE关键字一起使用

语法:

SELECT * FROM 表名 WHERE 字段 like ‘包含通配符的值’;

示例:

SELECT * FROM comments WHERE cmtAuthor LIKE '%东%’;
-- 如何查询’张’某的新闻评论信息?
SELECT * FROM comments WHERE cmtAuthor LIKE ‘张_’;

DISTINCT去重

去掉SELECT查询返回的记录结果中重复的记录, 相同记录只返回一条:

SELECT DISTINCT 字段名1, 字段名2... FROM 表名

SELECT DISTINCT cmtContent FROM comments

升序降序

一组数据按照升序或降序排列:

SELECT<字段名列表>FROM<表名>

[WHERE<查询条件>]

[ORDER BY<排序的列名>[ASC或DESC]

DESC表示按倒序排序(即:从大到小排序) ---降序排列

ACS表示按正序排序(即:从小到大排序)---升序排列

SELECT * FROM comments ORDER BY newsId,cmtId DESC;

默认不写是升序排列

LIMIT子句限制

MySQL查询语句中使用LIMIT子句限制结果集:

SELECT<字段名列表>FROM<表名>

[WHERE<查询条件>]

[ORDERBY<排序的列名>[ASC或DESC]]

[LIMIT[位置偏移量,]行数];

SELECT * FROM comments LIMIT 2,5;
-- 查询从第三行开始接下来五条数据

NULL

特点:

区别空字符串

只能出现在定义允许为NULL的字段

须使用 IS NULL 或 IS NOT NULL 比较操作符去比较

语法:

SELECT * FROM comments WHERE cmtAuthor IS NULL;

聚合函数

定义:

聚合函数是可以对一组值进行计算,并返回单个值的函数

语法:

SELECT 聚合函数 FROM 表名;

示例:

SELECT COUNT(*) AS 总数 FROM comments;

分组查询

定义:

是按照指定的字段分类汇总结果的查询方式

语法:

SELECT<字段名列表>FROM<表名>

[WHERE<查询条件>]

[GROUP BY<分组的字段名>

[ORDER BY<排序的列名>[ASC或DESC]]

[LIMIT[位置偏移量,]行数];

示例:

SELECT newsId 新闻编号,COUNT(*) AS 数量 FROM comments GROUP BY newsId;

注意:

SELECT列表中只能包含: 1、被分组的列 2、为每个分组返回一个值的表达式,如聚合函数

HAVING关键字

功能:

分组后条件筛选

语法:

SELECT<字段名列表>FROM<表名>[WHERE<查询条件>]
[GROUP BY<分组的字段名>]HAVING条件
[ORDERBY<排序的列名>[ASC或DESC]][LIMIT[位置偏移量,]行数];

示例:

SELECT newsId 新闻编号,COUNT(*) AS 数量
FROM comments
GROUP BY newsId
HAVING COUNT(*)<5;

数据库的基本语句(mysql举例)相关推荐

  1. MySQL数据库:SQL语句

    MySql数据库系列阅读 MySQL数据库 MySQL数据库:SQL语句 MySQL数据库:完整性约束 MySQL数据库备份与还原 MySQL数据库:编码 1. SQL概述 1.1 什么是SQL SQ ...

  2. MySQL数据库的SQL语句

    MySQL数据库的SQL语句 MySQL的常用数据类型 MySQL数据类型及含义 char与varchar的区别 MySQL的基本命令 登录数据库 查看MySQL数据库版本 查看当前服务器中的数据库 ...

  3. 1.MySQL数据库 2.SQL语句

    01数据库概念 * A: 什么是数据库数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据进行增加,修改,删除及查询操作. * B: 什么是数据库 ...

  4. mysql查看数据库创建语句_mysql-模糊查找数据库和查看数据库的创建语句

    查看指定部分的数据库:模糊查寻 语法: show databases like 'pattern' – pattern是模式 %:表示匹配多个字符 _: 表示匹配单个字符 创建数据库进行测试: 创建t ...

  5. 55:Mysql用户管理|常用sql语句|mysql数据库备份恢复

    2019独角兽企业重金招聘Python工程师标准>>> 1.Mysql用户管理: 场景,为了安全,新建的站点,创建新的用户,或者给已有用户授权,对某个库或者某个表有权限: 语法: g ...

  6. mysql数据库初识实训总结_MySQL数据库初识(基础语句)

    初识Mysql 认知 数据库:DB 所有的数据存放的仓库 每一个文件夹也是数据库 数据库管理员:DBA 管理数据库软件 数据库服务器:一台跑着一个数据库管理软件的机器 表:文件,一张存储了数据的表 数 ...

  7. MySQL—05—MySQL如何处理SQL语句;MySQL数据库存储引擎介绍;

    一. MySQL 中的执行计划 1 MySQL 执行计划 在 MySQL 中可以通过 explain 关键字模拟优化器,执行 SQL 语句,从而知道 MySQL 是 如何处理 SQL 语句的. 2 M ...

  8. MySQL数据库初识(基础语句)

    初识Mysql 认知 数据库:DB所有的数据存放的仓库每一个文件夹也是数据库 数据库管理员:DBA管理数据库软件 数据库服务器:一台跑着一个数据库管理软件的机器 表:文件,一张存储了数据的表 数据/记 ...

  9. Mysql数据库(九)——mysql高阶语句(下)

    Mysql数据库(九)--mysql高阶语句(下) 一.函数 1.数学函数 2.聚合函数 3.字符串函数 4.日期时间函数 二.存储过程 1.简介 2.优点 3.语法 ①.例 ②.参数分类 ③.带参数 ...

  10. Mysql数据库(八)——mysql高阶语句(中)

    Mysql数据库(八)--mysql高阶语句(中) 一.正则表达式(同shell脚本的正则表达式) 1.以"."代替任意一个字符 2.匹配前面字符多次 3.匹配前面字符至少一次 4 ...

最新文章

  1. php使用pdo操作mysql数据库实例_php5使用pdo连接数据库实例
  2. Oracle数据库分组排序
  3. python学习-综合练习四(最大公约数、最小公倍数、生成日历、递归调用、字符串)
  4. 敏捷软件开发之结对编程
  5. 用配置还用Attribute来实现IoC?
  6. UVA10700 Camel trading【贪心】
  7. C++调用编译好的darknet来进行物体监测
  8. linux 添加链接与删除链接(ln命令的用法)
  9. 视差贴图,凹凸贴图,法线贴图和位移贴图的区别
  10. 视频编码中的I帧、P帧、B帧的概念和特点
  11. android 系统的切图方式_UI设计规范一Android尺寸单位换算及切图规范
  12. 撩妹情话套路大全 2021高级情话套路好甜齁
  13. 老字号“张小泉”上线小程序与酷客多达成战略合作!
  14. 魔性计时器html6,最近抖音很火的6首BGM,太有魔性了!
  15. Stanford CS 144 Note 17 - TCP Setup and teardown
  16. 【实战】物联网安防监控项目【5】———把模拟数据传输到web网页、web显示mjpeg-streamer视频图像
  17. 基于RK3399配置并测试—单线激光雷达
  18. document onload和window onload的区别?
  19. 重读《一段关于国产芯片和操作系统的往事》
  20. js 递归算法将扁平数据处理成树状数据

热门文章

  1. jQuery treeTable
  2. STM32F107各种接口程序合集工程文件
  3. TAOCP-Reading-计算机程序设计艺术阅读-1-0
  4. python压缩HTML文件,python压缩javascript文件代码
  5. VS2010使用c++、gSOAP调用WebService 图文教程
  6. js解压gzip(解决RangeError: Maximum call stack size exceeded)
  7. 认真推荐几个腾讯、滴滴、美团的大佬
  8. 说到项目管理软件,不得不提的是禅道和JIRA
  9. swfobject2.2参数详解
  10. Visual Studio Ultimate 2012 激活密钥