一、  DDL(data definition language)语句:数据定义语言。

这些语句定义了不同的数据段、数据库、表、列、索引等数据库对象。常用语句关键字:create、drop、alter等。

  1. 创建数据库:CREATE DATABASE dbname     (eg:     mysql>create database test1;      查看系统中所有的数据库:mysql>show databases;     )
  2. 选择数据库:USE dbname                                (eg:     mysql>use test1;          查看test1里所有的数据表:mysql>show tables;      )
  3. 删除数据库:drop database dbname;         (eg:     mysql>drop database test1;
  4. 创建表:CREATE TABLE tablename(column_name_1 column_type_1 constraints,

column_name_1 column_type_1 constraints,

...);                                                         查看表的定义:desc tablename

      5.有时需要查看创建表的SQL语句,

上图中除了可以看到staff表定义以外,还可以看到表的engine(存储引擎)和charset(字符集)等信息。“\G”选项含义是使记录能够按照字段竖向排列,以便更好地显示内容较长的记录。

6.删除表:DROP TABLE tablename                                           (eg:     mysql>drop test;)

7.修改表:

(1)修改表类型,ALTER TABLE tablename MODIFY[COLUMN] column_definition [FIRST|AFTER col_name]

eg:修改表emp的ename字段定义,将varchar(10)改为varcahr(20)

(2)增加表字段,ALTER TABLE tablename ADD [COLUMN] column_definition [FIRST|AFTER col_name]

eg:在表emp中新增字段age,类型为int(3)

(3)删除表字段,ALTER TABLE tablename DROP [COLUMN] col_name

eg:将字段age删除

(4)字段改名,ALTER TABLE tablename CHANGE [COLUMN] old_col_name column_definition [FIRST|AFTER col_name]

eg:将age改名为age1,同时修改类型为int(4)

(5)修改字段排列顺序,字段增加和修改(ADD|CHANGE|MODIFY)语法中,可选项first|after column_name,可以修改字段在表中的位置。(ADD默认加在最后,CHANGE/MODIFY默认不改变位置)

eg:新增字段birth date(birth的类型)加在ename之后

eg:修改字段age,放在最前

8.更改表名:ALTER TABLE tablename RENAME [TO] new_tablename

eg:将表enp改名为emp1

二、DML(data manipulation language)语句:数据操纵语句。

用于添加、删除、更新和查询数据库记录,并检查数据完整性。常用语句关键字:insert、delete、update和select等。

1.插入记录:INSERT INTO tablename(filed1,filed2,...,filedn) VALUES(values1,values2,...,valuesn);

eg:

也可以不用指定字段名称,但是values后面的顺序应该和字段的排列顺序一致

插入多条记录:INSERT INTO tablename(filed1,filed2,...,filedn)

VALUES

(values1,values2,...,valuesn),

(values1,values2,...,valuesn),

(values1,values2,...,valuesn);

2.更新记录:UPDATE tablename SET filed1=value1,filed2=value2,...,filedn=valuen [WHERE CONDITION]

eg:将表emp中ename为'lisa'的薪水(sal)更改为4000:

(多表更新一般用在根据一个表的字段来动态地更新另一个表的字段)

3.删除记录:DELETE FROM tablename [WHERE CONDITION]

eg:在emp中将ename为'dony'的记录全部删除

在mysql中可以一次删除多个表的数据:DELETE t1,t2,...,tn FROM t1,t2,...,tn [WHERE CONDITION]    (不管单表还是多表,不加where条件将会把表的所有记录删除)

4.查询记录:SELECT * FROM tablename [WHERE CONDITION]

查询不重复记录关键字distinct

          

排序和限制,关键字:ORDER BY   语法:SELECT * FROM tablename [WHERE CONDITION] [ORDER BY filed1 [DESC/ASC],filed2 [DESC/ASC],...,filedn [DESC/ASC]]

不写排序顺序关键字默认是 升序排列 ASC。

◆ 排序后的记录,LIMIT限制显示部分:SELECT ...[LIMIT offset_start,row_count]               其中,offset_start表示记录的起始偏移量,row_count表示显示的行数(limit和order by配合使用做记录的分屏显示)

聚合

                     SELECT [filed1,filed2,...,filedn] fun_name

                 FROM tablename

                 [WHERE where_contition]

                 [GROUP BY filed1,filed2,...,filedn [WITH ROLLUP]]

                 [HAVING where_contition]

                 参数说明:fun_name:表示要做的聚合操作(聚合函数),sum(求和)、count(*)(记录数)、max、min.....

GROUP BY:表示要进行分类聚合的字段,比如要按照部门分类统计员工数量,部门就应该写在group by 后面。

WITH ROLLUP:可选语句,表示是否对分类聚合后的结果进行再汇总。

HAVING关键字表示对分类后的结果在进行条件的过虐。

表连接:左连接,右连接。(复杂,详情后续)

子查询:关键字 in、not in、=、!=、exists、not exists 等  (放后)

记录联合:将两个表的数据按照一定的查询条件查询出来以后,将结果合并到一起显示出来。关键字, union、union all

SELECT * FROM t1

                           UNION/UNION ALL

                           SELECT * FROM t2

                           ...

                           UNION/UNION ALL

                           SELECT * FROM tn;

UNION ALL 是把结果集直接合并在一起,UNION 是将UNION ALL 后的结果进行一次DISTINCT,去除重复记录后的结果。

三、DCL(data control language)语句:数据控制语句。

用于控制不同数据段直接的许可和访问级别的语句,这些语句定义了数据库、表、字段、用户的访问权限和安全级别。主要语句关键字:grant、revoke等。

主要是DBA用来管理系统中的对象权限时使用,一般开发人员很少使用。

初识Mysql之基本简单语法总结的更多相关文章

  1. Mysql数据库的简单语法

    Mysql数据库是目前使用最为广泛的数据对,对于小型企业的支持度,比oracle数据库友好很多. mysql数据库的基本语法 1:创建并且使用数据库 找出服务器上当前存在什么数据库: SHOW DAT ...

  2. MySQL 存储过程 经常使用语法

    MySQL 存储过程是从 MySQL 5.0 開始添加的新功能.存储过程的长处有一箩筐.只是最基本的还是运行效率和SQL 代码封装.特别是 SQL 代码封装功能,假设没有存储过程,在外部程序訪问数据库 ...

  3. 在linux下的mysql导入存储过程出现语法错误,需要在文件里加DELIMITER //

    http://my.oschina.net/zerotime/blog/113126 Mysql命令行创建存储过程时,首先要输入分隔符 DELIMITER // CREATE PROCEDURE pr ...

  4. 我的MYSQL学习心得(一) 简单语法

    我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...

  5. MYSQL(一) 简单语法

    MYSQL(一) 简单语法 1.默认约束:mysql里面DEFAULT关键字后面是不用加括号的 --1.1 创建数据库 mysql> create database holly; Query O ...

  6. python 全栈开发,Day60(MySQL的前戏,数据库概述,MySQL安装和基本管理,初识MySQL语句)

    一.MySQL的前戏 在学习Mysql之前,我们先来想一下一开始做的登录注册案例,当时我们把用户的信息保存到一个文件中: #用户名 |密码 root|123321 alex|123123 上面文件内容 ...

  7. 一、初识MySQL数据库 二、搭建MySQL数据库(重点) 三、使用MySQL数据库 四、认识MySQL数据库的数据类型 五、操作MySQL数据库的数据(重点)

    一.初识MySQL数据库 ###<1>数据库概述     1. 数据库         长期存储在计算机内的,由组织的可共享的数据集合         存储数据的仓库         文件 ...

  8. mysql学习【第1篇】:初识MySQL

    狂神声明 : 文章均为自己的学习笔记 , 转载一定注明出处 ; 编辑不易 , 防君子不防小人~共勉 ! mysql学习[第1篇]:初识MySQL 只会写代码的是码农:学好数据库,基本能混口饭吃:在此基 ...

  9. 初识数据库、初识MySQL

    一.为什么要用数据库 # 1.将文件和程序存在一台机器上是很不合理的. # 2.操作文件是一件很麻烦的事. 所以就出现了一个新的概念 —— 数据库 你可以理解为 数据库 是一个可以在一台机器上独立工作 ...

随机推荐

  1. layui时间控件联动:开始时间、结束时间,有效时间范围

    实际开发中,经常遇到时间控件联动的情况,然后每次都网上搜代码Copy,不过每次都有点小Bug让你错不及防: 这次,在这里备份一下,以后Copy自己的得了(欢迎Copy代码,若遇到问题,请麻烦回复我一下 ...

  2. 解决windows下nginx中文文件名乱码

    我的根目录文件夹放在d盘work文件夹下,一般这样配置 nginx\conf\nginx.conf location / { root D:/work; index index_bak.html; a ...

  3. shell学习(8)- ulimit调优系统参数

    ulimit:显示(或设置)用户可以使用的资源的限制(limit),这限制分为软限制(当前限制)和硬限制(上限),其中硬限制是软限制的上限值,应用程序在运行过程中使用的系统资源不超过相应的软限制,任何 ...

  4. AtCoder Regular Contest 082 ABCD

    A #include<bits/stdc++.h> using namespace std; ]; int n,m; int main(){ cin>>n>>m; ...

  5. php:比较两个txt文件,格式如下,分别取出a.txt有的b.txt没有的,b.txt有的a.txt没有的及两个都有的

    <?php /*比较两个txt文件,格式如下,分别取出a.txt有的b.txt没有的,b.txt有的a.txt没有的及两个都有的 * a.txt: * A * B * C * D * b.txt ...

  6. Consul实现服务治理

    .NET Core微服务之基于Consul实现服务治理 https://www.cnblogs.com/edisonchou/p/9124985.html 一.Consul基础介绍 Consul是Ha ...

  7. FusionCharts图表控件中文版使用手册

    三要素:swf.data.xml.承载图表的载体 1.Swf: 按照你所设计的图表类型加载相应的.swf文件到你的工程即可(eg:若你想生成一张二维柱状图,那么在你的工程里就必须包含Column2D. ...

  8. AWR实战分析之----direct path read temp

    http://blog.sina.com.cn/s/blog_61cd89f60102eej1.html 1.direct path read temp select TOTAL_BLOCKS,USE ...

  9. Spark Mllib里的Mllib基本数据类型(图文详解)

    不多说,直接上干货! Spark Mllib基本数据类型,根据不同的作用和应用场景,分为四种不同的类型 1.Local  vector : 本地向量集,主要向spark提供一组可进行操作的数据集合 2 ...

  10. JDBC连接中Class.forName("")到底干了什么?

    思考了一个问题,Class.forName("***");到底干了什么? 我们知道Class.forName( )静态方法的目的是为了动态加载类,但是一般来说,一个类forName ...