MySql使用入门
SQL是Structure Query Language(结构化查询语言)的缩写。
SQL主要可以分为三个类别:
1.DDL(Data Definition Languages)语句:数据定义语言,这些语句定义了不同的数据段、数据库、表、列、索引等数据库对象。常用的关键字有: create 、drop、alter等。
2.DML(Data Manipulation Language)语句:数据库操纵语言,用于添加,删除,更新和查询数据库,检查数据完整性。常用的语句关键字:insert 、delete 、 update和select等。
3.DCL(Data Control Language)语句:数据库控制语言,用于控制不同的数据段直接的许可和访问级别的语句。这些语句定义了数据库,表,字段,用户的访问权限和安全级别。主要的关键字包括:grant、revoke等。
DDL语句:
DDL是数据库定义语言的缩写,是对数据库内部的对象进行创建、删除、修改等操作的语言。
1).创建数据库:CREATE DATABASE dbname;
2).查看数据库:SHOW DATABASES;
3).选择要操作的数据:USE dbname;
4).查看所有数据表:SHOW TABLES;
5).删除数据库:DROP DATABAES dbname;
6).创建表:CREATE TABLE tablename;
7).查看表的定义:DESC tablename / SHOW CREATE TABLE tablename;
8).删除表:DROP TABLE tablename;
9).修改表类型: MODIFY,增加表字段:ADD,删除表字段:DROP,字段改名:CHANGE
注意:change 和 modify 都可以修改表的定义,不同的是 change 后面需要写两次列名,不方便,但是 change 的优点是可以修改列名称,modify 则不能。
DML语句:
DML是指对数据库中表记录的操作,主要包括了插入,更新,删除,查询等开发人员日常使用最频繁的操作。
1.插入记录:INSERT INTO tablename (字段1,字段2,....) VALUES(value1,value2,...);
2.更新记录:UPDATE tablename SET 字段1=value1,字段2=value2,.... [WHERE CONDITION];
更新多表:UPDATE t1,t2... SET t1.字段1=expr1,t2.字段1=expr1.... [WHERE CONDITION];
注意:多表更新的语法更多地用来根据一个表的字段来动态的更新另一个表的字段。
3.删除记录:DELETE FROM tablename [WHERE CONDITION];
删除多表:DELETE t1,t2,... FROM t1,t2,... [WHERE CONDITION];
注意:不管是单表还是多表删除,不加 where 条件都会把表的所有记录删除,操作时一定要小心。
4.查询记录:SELETE * FROM tablename [WHERE CONDITION];
查询时常用的关键字:DISTINCT(去重),ORDER BY(排序,DESC/ASC ),LIMIT(显示的行数--解释不太规范),GROUP BY(分类),HAVING(对分类后的结果进行筛选),
WITH ROLLUP(对分类聚合后的结果进行再汇总),聚合函数(sum<求和>,max<最大值>,min<最小值>,count<记录数>)
WHERE后面的条件是一个字段用=比较,除了=以外,还可以使用 >,<,<=,>=,!=等比较运算符;多个条件直接还可以使用or 、and等逻辑运算符进行多条件查询。
5.表连接:表连接分为外链接和内连接,他们的主要区别是,内连接仅选出两张表内互相匹配的记录,而外连接会选出其他不匹配的记录,我们常用的是内连接。
外连接又分为左连接和右连接,右连接和左连接之间类似,可以互相转化。
6.子查询:某些情况下,当进行查询的时候,需要的条件是一个select的结果,这个时候就会用到子查询,子查询会用到的关键字有:in、not in 、=、!=、exists、not exists等。
如果子查询记录数唯一,可以用=代替in;
注意:子查询和表连接之间的转换主要应用于两个方向:
表连接在很多情况下用于优化子查询,
MySql4.1以前的版本不支持子查询,需要用表连接来实现子查询的功能。
7.记录联合:将两个表的数据按照一定的查询条件查询出来后,将结果合并到一起显示出来。关键字:UNION 和 UNION ALL ,UNION ALL是把结果集合并到一起,而UNION则是进行了一次DISTINCT,去除重复记录。
DCL语句是DBA用来管理系统中的对象权限时使用,一般开发人员很少使用,常用的关键字有:grant , revoke等;
总结:MySQL在变种的sql基础上进行了很多扩展,本文章只是对一些简单的常用语法进行了汇总,有未曾写到的东西还请查询官方文档。
MySql使用入门的更多相关文章
- [转]MySQL主从复制入门
1.MySQL主从复制入门 首先,我们看一个图: 影响MySQL-A数据库的操作,在数据库执行后,都会写入本地的日志系统A中. 假设,实时的将变化了的日志系统中的数据库事件操作,在MYSQL-A的33 ...
- 【转载】20分钟MySQL基础入门
原文:20分钟MySQL基础入门 这里持续更新修正 开始使用 MySQL 为关系型数据库(Relational Database Management System),一个关系型数据库由一个或数个表格 ...
- [置顶] Mysql存储过程入门知识
Mysql存储过程入门知识 #1,查看数据库所有的存储过程名 #--这个语句被用来移除一个存储程序.不能在一个存储过程中删除另一个存储过程,只能调用另一个存储过程 #SELECT NAME FROM ...
- MySQL 菜鸟入门“秘籍”
一.MySQL简介 1.什么是数据库 ? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不 ...
- MySql基础笔记(一)Mysql快速入门
Mysql快速入门 一)基本概念 1)表 行被称为记录,是组织数据的单位.列被称为字段,每一列表示记录的一个属性. 2)主键 主键用于唯一的标识表中的每一条记录.可以定义表中的一列或者多列为主键, 但 ...
- MySQL存储过程入门
MySQL存储过程入门 在本教程中,我们将逐步介绍如何使用CREATE PROCEDURE语句开发第一个MySQL存储过程. 另外,我们将向您展示如何从SQL语句调用存储过程. 编写第一个MySQL存 ...
- Spring MVC+Spring+Mybatis+MySQL(IDEA)入门框架搭建
目录 Spring MVC+Spring+Mybatis+MySQL(IDEA)入门框架搭建 0.项目准备 1.数据持久层Mybatis+MySQL 1.1 MySQL数据准备 1.2 Mybatis ...
- MySQL的入门与使用,sqlyog对数据库,表和数据的管理
MySQL的入门 1.到mysql官网下载. 2.安装mysql软件(一定要放到英文路径下) 3.使用 验证是否成功 将mySQL的bin路径添加到系统环境变量Path中 打开dos命令窗口 Wind ...
- MySQL主从复制入门
1.MySQL主从复制入门 首先,我们看一个图: MySQL 主从复制与读写分离概念及架构分析 影响MySQL-A数据库的操作,在数据库执行后,都会写入本地的日志系统A中. 假设,实时的将变化了的日志 ...
- MySQL 快速入门教程
转:MySQL快速 入门教程 目录 一.MySQL的相关概念介绍 二.Windows下MySQL的配置 配置步骤 MySQL服务的启动.停止与卸载 三.MySQL脚本的基本组成 四.MySQL中的数据 ...
随机推荐
- C# 获取电脑硬盘剩余空间
获取本地硬盘的所有剩余空间: 主要应用到System.IO类库的:Driveinfo.Directory,将model转换成json需要用到Newtonsoft.Json.JsonConvert.Se ...
- Python 动态加载 Extension Manager Classes
看着看着发现了一个库:stevedore(http://stevedore.readthedocs.org/en/latest/managers.html),但是感觉文档做得不行啊,都没个tutori ...
- oracle学习篇七:更新操作、事务处理
----------------1.数据库更新操作----------------------------- select * from tab;--查询表 drop table siebel_use ...
- 编程语言的发展历史剧。(参考https://baijiahao.baidu.com/s?id=1588675986991787716&wfr=spider&for=pc)
1800年 约瑟夫·玛丽·雅卡尔(Joseph Marie Jacquard),设计出人类历史 上首台可设计织布机——雅卡尔织布机,对将来发展出其他可编程机器起了重要作用 1842年 阿达·洛夫莱斯( ...
- 洛谷P1970 花匠(dp)
题意 题目链接 Sol 直接用\(f[i][0/1]\)表示到第\(i\)个位置,该位置是以上升结尾还是以下降结尾 转移的时候只需枚举前一个即可 #include<cstdio> #inc ...
- pdf转为html查看pdf.js
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- vue的拖拽文件
<div ref='select_frame' ondragstart="return false">//防止跳转 </div> this.$refs.se ...
- canvas玩转微信红包
CSS3相关属性: <!DOCTYPE html> <html> <head lang='en'> <meta charset='UTF-8'/> &l ...
- Web系统常见安全漏洞及解决方案-SQL盲注
关于web安全测试,目前主要有以下几种攻击方法: 1.XSS 2.SQL注入 3.跨目录访问 4.缓冲区溢出 5.cookies修改 6.Htth方法篡改(包括隐藏字段修改和参数修改) 7.CSRF ...
- Flask入门邮件同步与异步发送(九)
应用场景: 用户在注册或者密码丢失等过程中,账号绑定邮箱,用户在进行身份认证的过程中,电子邮箱确实是一种很常用的方式,Python中提供了smtplib可以实现发送电子邮件功能,Flask框架也有 ...