当前位置:网站首页>Mysql学习(一)
Mysql学习(一)
2022-08-09 15:03:00 【weixin_45953482】
展开Mysql的学习
一、SQL
1.SQL的分类
DDL(Data Definition Languages、数据定义语言),这些语句定义了不同的数据库、表、视图、索引等数据库对象,还可以用来创建、删除、修改数据库和数据表的结构。
主要的语句关键字包括 CREATE 、 DROP 、 ALTER 等。
DML(Data Manipulation Language、数据操作语言),用于添加、删除、更新和查询数据库记录,并检查数据完整性。主要的语句关键字包括 INSERT 、 DELETE 、 UPDATE 、 SELECT 等。
SELECT是SQL语言的基础,最为重要。
DCL(Data Control Language、数据控制语言),用于定义数据库、表、字段、用户的访问权限和安全级别。主要的语句关键字包括 GRANT 、 REVOKE 、 COMMIT 、 ROLLBACK 、 SAVEPOINT 等。
2、SQL语言的规则与规范
SQL 可以写在一行或者多行。为了提高可读性,各子句分行写,必要时使用缩进
每条命令以 ; 或 \g 或 \G 结束
关键字不能被缩写也不能分行
关于标点符号
必须保证所有的()、单引号、双引号是成对结束的
必须使用英文状态下的半角输入方式
字符串型和日期时间类型的数据可以使用单引号(’ ')表示
列的别名,尽量使用双引号(" "),而且不建议省略as
3.基本的SELECT语句
3.0 SELECT…
SELECT 1; #没有任何子句
SELECT 9/2; #没有任何子句
3.1 SELECT … FROM
语法:
SELECT 标识选择哪些列
FROM 标识从哪个表中选择
选择全部列:
SELECT *
FROM departments;

一般情况下,除非需要使用表中所有的字段数据,最好不要使用通配符‘*’。使用通配符虽然可以节
省输入查询语句的时间,但是获取不需要的列数据通常会降低查询和所使用的应用程序的效率。通
配符的优势是,当不知道所需要的列的名称时,可以通过它获取它们。
在生产环境下,不推荐你直接使用 SELECT * 进行查询。
选择特定的列:
SELECT department_id, location_id
FROM departments;

3.2 列的别名
- 用于重命名一个列
- 紧跟列名,也可以在列名和别名之间加入关键字AS,别名使用双引号,以便在别名中包含空格或特殊的字符并区分大小写。
- AS 可以省略
SELECT last_name AS name, commission_pct comm
FROM employees;

SELECT last_name "Name" , salary*12 "Annual Salary"
FROM employees

3.3 去除重复行
默认情况下,查询会返回全部行,包括重复行。
SELECT department_id
FROM employees;

通过关键词DISTINCT来去除重复行
DISTINCT 其实是对后面所有列名的组合进行去重
3.4 空值参与运算
所有运算符或列值遇到null值,运算的结果都为null
SELECT employee_id,salary,commission_pct,
12 * salary * (1 + commission_pct) "annual_sal"
FROM employees;
在Mysql当中,空值不等于空字符串,一个空字符串的长度是0,而另一个空值的长度是空,而且在Mysql当中,空值是占用空间的
3.5 关键字
SELECT * FROM `ORDER`;
表中的的字段、表名等没有和保留字、数据库系统或常用方法冲突。如果真的相同,请在
SQL语句中使用一对 ``(着重号)引起来。
4.显示表结构
DESC employees;

其中,各个字段的含义分别解释如下:
Field:表示字段名称。
Type:表示字段类型,这里 barcode、goodsname 是文本型的,price 是整数类型的。
Null:表示该列是否可以存储NULL值。
Key:表示该列是否已编制索引。PRI表示该列是表主键的一部分;UNI表示该列是UNIQUE索引的一
部分;MUL表示在列中某个给定值允许出现多次。
Default:表示该列是否有默认值,如果有,那么值是多少。
Extra:表示可以获取的与给定列有关的附加信息,例如AUTO_INCREMENT等。
条件过滤
SELECT 字段1,字段2
FROM 表名
WHERE 过滤条件
- 使用WHERE 子句,将不满足条件的行过滤掉
- WHERE子句紧随 FROM子句
SELECT employee_id, last_name, job_id, department_id
FROM employees
WHERE department_id = 90 ;

边栏推荐
猜你喜欢

ASCII码表

选择排序法(C语言)

Heap series _0x05: A diagram analyzes the connection between heap block allocation and FreeLists

路由概述与静态配置ip

TCP/IP协议组——完整工作过程分析

RAID磁盘阵列详解

Basic Concepts of Software Security

Time series analysis

yum安装mariadb数据库之后启动时提示 Failed to start mariadb.service: Unit not found

C语言,输入一个10以内的随机数,按要求求得表达式的值。
随机推荐
Introduction to common commands in SQLMap
C语言知识细节点(二)
客户端媒体引擎框架
Win10 安装系统跳过创建用户,直接启用 administrator
如何通过Photoshop根据纹理贴图轻松获得法线贴图
图论最短路径求解
Cloud Models and Logistic Regression - Applications of MATLAB in Mathematical Modeling (2nd Edition)
yum安装mariadb数据库之后启动时提示 Failed to start mariadb.service: Unit not found
【QT】窗口的显示与模态窗口
【翻译】制作DEB/debian包
ASCII码表
Win10 Runas 命令 域用户以管理员权限运行
九章云极DataCanvas APS机器学习平台获得中国信通院“领先级”评级
CTF在线加解密以及常用工具
Excel文件解析
Heap series _0x03: heap block + malloc/new bottom layer + LFH (WinDbg analysis)
Zip包的读取与写入
时间序列分析
输入不定长数组,输入一个字符串,既包含字符,又包含数字,输出数组,输入一个二维数组,字符和数字都可
爬虫实战 某问答网站乎