mysql基础语法详解

本文是MySQL数据库的基础教程,涵盖了MySQL简介、SQL编写规范、SQL语言基础,包括增删改查操作、约束、序列和索引等内容。讲解了MySQL的优势,如多语言支持、可移植性、免费开源和高效处理能力。还探讨了InnoDB存储引擎的特性,如事务处理和外键约束。最后,介绍了SQL语言的基础,包括DDL、DML和DCL语句,以及SQL编写规范和最佳实践。
摘要由CSDN通过智能技术生成

MySQL简介

关于数据库其实我们可以简单的理解为存储货物的一个厂库,里面分别是按照一定的分类存放的物品,然后人们有时会从厂库中拿走或存储一些物品,有时也会更改或增加一些分类
这些物品都分门别类的存放在厂库中,方便人们的查询和存储。
MySQL是一个关系型数据库管理系统,开发者为瑞典MySQL AB公司。目前MySQL被广泛地应用在互联网行业。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多互联网公司选择了MySQL作为后端数据库。2008年MySQL被Sun公司收购,2010年甲骨文成功收购Sun公司。
MySQL数据库的优点:

  • 1、多语言支持:Mysql为C、C++、Python、Java、Perl、PHP、Ruby等多种编程语言提供了API,访问和使用方便。
  • 2、可以移植性好:MySQL是跨平台的。
  • 3、免费开源。
  • 4、高效:MySql的核心程序采用完全的多线程编程。
  • 5、支持大量数据查询和存储:Mysql可以承受大量的并发访问。

由于本人最先接触到的数据库是oracle,在此谈论mysql说的有些命令或知识可能是oracle 上的,mysql可能不适用,见谅
首先先介绍下mysql的常用命令:
显示所有数据库:show databases;

  • 选定默认数据库:use dbname;
  • 显示默认数据库中所有表:show tables;
  • 放弃正在输入的命令:\c
  • 显示命令清单:\h
  • 退出mysql程序:\q
  • 查看mysql服务器状态信息:\s

mysql目前用的最多的存储引擎就是InnoDB存储引擎
InnoDB给MySQL的表提供了事务、回滚、崩溃修复能力、多版本并发控制的事务安全。在 MySQL从 3.23.34a 开始包含 InnoDB 存储引擎。InnoDB 是 MySQL 上第一个提供外键约束的表引擎。而且InnoDB对事务处理的能力,也是MySQL其他存储引擎所无法与之比拟的。
InnoDB存储引擎的特点

  • 1)支持外键(Foreign Key)
  • 2)支持事务(Transaction):如果某张表主要提供OLTP支持,需要执行大量的增、删、改操作(insert、delete、update语句),出于事务安全方面的考虑,InnoDB存储引擎是更好的选择。

SQL(Structured Query Language)语言的全称是结构化查询语言。数据库管理系统通过SQL语言来管理数据库中的数据。
SQL语言分为三个部分:数据定义语言(Data Definition Language,简称为DDL)、数据操作语言(Data Manipulation Language,简称为DML)和数据控制语言(Data Control Language,简称为DCL)。

  • DDL语句:CREATE、ALTER、DROP
  • DML语句:update、insert、delete、select
  • DCL语句:是数据库控制功能。是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句

每个数据库建立是来后都会有一个数据库实例,所谓数据库实例就是一个数据库的服务器,在该实例中会有用户,刚刚创建的用户是没有任何权限的,因此,需要dba给该用户授权
当一个用户创建了任意一个数据对象,dbms就会创建一个相应的方案与之对应,且该方案名与应户名相同
用户权限分系统权限和对象权限,系统权限是和数据库管理相关的权限,如create table、create view等,而对象权限是和用户操作数据库相关的权限,如数据库的增删改查。
说到权限就不得不说角色了,角色是一组权限的集合,目的是为了简化对权限的管理,从而达到简单对用户的管理。
角色可以包含系统权限,也可以包含对象权限。
oracle中有严格的权限之分,至于mysql暂不清楚故不做深讨~~~

一、SQL编写规范

  • 大小写: sql语句的所有表名、字段名全部小写,系统保留字、内置函数名、sql保留字大写。
  • 空格: 连接符or、in、and、以及=、<=、>=等前后加上一个空格。
  • 注释: 对较为复杂的sql语句、过程、函数加上注释,说明算法、功能。
  • 缩进: SQL语句的缩进风格
    1. 一行有多列,超过80个字符时,基于列对齐原则,采用下行缩进
    2. where子句书写时,每个条件占一行,语句另起一行时,以保留字或者连接符开始,连接符右对齐。
  • 别名: 多表连接时,使用表的别名来引用列。

SQL 命令是大小写不敏感
SQL 命令可写成一行或多行
一个关键字不能跨多行或缩写
子句通常位于独立行,以便编辑,并易读

二、SQL语言基础

2.1、 SQL语句分类

语言分类 详细描述
数据查询语句 select
数据操纵语句(DML) insert;update;delete;
数据定义语句(DDL) create;alter;drop;rename;truncate;
事务控制语句(TC) commit;rollback;savepoint
数据控制语言(DCL) Grant;Revoke;

2.2、数据库增删改查

1、增:有2种方法

1).使用insert插入单行数据:

     语法:insert [into] <表名> [列名] values <列值>

例:

insert into students (姓名,性别,出生日期) values ('张三','男','1990/1/1');

注意:如果省略表名,将依次插入所有列

2).使用insert,select语句将现有表中的 数据添加到已有的新表中

    语法:insert into <已有的新表> <列名> select <原表列名> from <原表名>

例:

insert into address ('姓名','地址','电子邮件') select name,address,email  from  Strdents ;

注意:查询得到的数据个数、顺序、数据类型等,必须与插入的项保持一致

2、删:有2中方法

1).使用delete删除数据某些数据

语法:delete from <表名> [where <删除条件>]    

例:

delete from a where name='张三' --(删除表a中列值为张三的行) 

注意:删除整行不是删除单个字段,所以在delete后面不能出现字段名

2).使用truncate table 删除整个表的数据

    语法:truncate table <表名>

例:

truncate table addressList

注意:删除表的所有行,但表的结构、列、约束、索引等不会被删除;不能用于有外建约束引用的表

truncate与delete 的区别:

  • 1)delete数据DML语句,其事物可以回归,而truncate是DDL语句,不能回滚;

  • 2)delete只是删除表中数据,如表中有自增长列,不会改变自增长的数值,仍按原数据增长,而truncate会连自增长数值一并删除,重新开始自增长;

  • 3)truncate会释放表的存储空间,而delete 不会,高水位标记(HWM)不会降低。

注:drop :删除数据表或数据库,或删除数据表字段,此方法不可逆

语法:drop database 数据库名称

3、改

使用update更新修改数据

语法:update <表名> set <列名=更新值> [where <更新条件>] 

例:

update addressList set 年龄=18 where 姓名='张三'

注意:set后面可以紧随多个数据列的更新值(非数字要引号);where子句是可选的(非数字要引号),用来限制条件,如果不选则整个表的所有行都被更新

4、查

1.普通查询

语法:

select <列名> from <表名> [where <查询条件表达试>] [order by <排序的列名>[ascdesc]];

1).查询所有数据行和列

例:

select 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值