一、DDL:数据库定义语言

数据库的操作:(操作关键字不分大小写)

create database day01;//创建数据库

show databases;//查看该帐号下的所有数据库

show create database day01;//查看创建的指定数据库的信息,默认字符集编码是utf-8;

SHOW CHARACTER SET;//查看mysql支持的所有字符集

alter database day01 character set gbk;//修改数据库的字符集编码为gbk

create database day001 character set gb2312;//直接创建一个字符集编码为gb2312的数据库

drop database day001;//删除数据库

创建表的前提条件:指明使用的数据库 :use day01;

create table student (id int,name varchar(100),gender varchar(100),age int...);//创建表

show tables;//查看数据库下的所有表

desc student;//查看指定的表的字段信息(表的内容)

alter table student add score int;//修改表(添加一个列)

alter table student drop score;//删除表的一个列(删除的是已知的列所以不需要类型)

alter table student modify age text;//修改表的某一个列的类型

alter table stu change age ag int;//修改列的名称

rename table student to stu;//修改表名

show create table stu;//查看创建表的语句

drop table stu;//删除表

二、DML:数据库表的操作语言

插入:insert

--单条插入

方式一:insert into student (id,name,gender,age) values (1,'ff','female',20);

方式二: insert into student values (2,'gg','male',22); 所有字段值必须按照数据库中表的字段顺序依次写入 ,其中表的字段名可以全部省略

修改:update

update stu set name='mmm' ,age=18 where id=1 ;

update stu set name='mmm' ;

删除:delete

-- delete删除的是表中的具体数据

-- 单条删除某条记录(删除一整行的内容)

DELETE FROM stu WHERE id=1;

-- 多条删除(删除所有数据)

DELETE FROM stu;

-- 选择器删除(连接符是or)

DELETE FROM stu WHERE id=9 OR id=10;

-- 删除整个表以及表中的数据,重新创建了一个新的表

TRUNCATE TABLE stu;

三、DQL:数据库表的查询语言

student表

emp表

1.基础查询:1.1查询所有列: 1.2查询指定列:

--查询所有数据

SELECT * FROMstudent;--查询指定列的数据

SELECT age FROM stu;

2.条件查询:

2.1 条件查询介绍 条件查询就是在查询时给出WHERE子句,在WHERE子句中可以使用如下运算符及关键字: =、!=、<>、、>=; BETWEEN…AND; IN(set); IS NULL; IS NOT NULL AND; OR; NOT

--查询年龄不是20的学生 :!=和<>都表示不等于

SELECT * FROM student WHERE sage!=20;SELECT * FROM student WHERE sage<>20;--查询年龄大于26的学生

SELECT * FROM student WHERE sage >26;--查询年龄22到26之间的学生(BETWEEN 22 AND 26:包含22和26岁的人)

SELECT * FROM student WHERE sage BETWEEN 22 AND 26;SELECT * FROM student WHERE sage>=22 AND sage<=26;--在给定的表中查找指定集合中有的记录

SELECT * FROM student WHERE sname IN ('qq','rr','ww');--查询名称为null的学生

SELECT * FROM student WHERE sname IS NULL;--查询名称不为null的学生

SELECT * FROM student WHERE sname IS NOT NULL;--查询sid=S_1005且名字为田七的学生(and:一般情况下连接不同字段的信息)

SELECT * FROM student WHERE sid='S_1005' AND sname='田七';--查询sid=S_1005或者sage=20的学生

SELECT * FROM student WHERE sid='S_1005' OR sage=20;--查询名称不是张三的学生

SELECT * FROM student WHERE NOT sname='张三';

3.模糊查询:当想查询姓名中包含f字母的学生时就需要使用模糊查询了.模糊查询需要使用关键字LIKE。 通配符: _ 任意一个字符 %:任意0~n个字符

--1.以w开头的名称的学生

SELECT * FROM student WHERE sname LIKE 'w%';--1.1以w开头的名称长度为2的学生

SELECT * FROM student WHERE sname LIKE 'w_';--2.以w结尾的名称的学生

SELECT * FROM student WHERE sname LIKE '%w';--2.1以w结尾的名称长度为5的学生

SELECT * FROM student WHERE sname LIKE '____w';--3.含有w的名称的学生

SELECT * FROM student WHERE sname LIKE '%w%';

4.排序 order by 列名 asc(默认) desc

--排序order by:默认增序,递增asc,递减desc

SELECT * FROM student ORDER BY sage DESC;SELECT * FROM student ORDER BY sage ASC;

5.字段控制查询

5.1 去除重复记录 DISTINCT

SELECT DISTINCT * FROM emp WHERE mgr=7698;SELECT DISTINCT mgr FROM emp WHERE mgr=7698;

5.2 a.数值类型和非数值类型无法做加法运算b.数值类型和空数值做加法运算:把NULL转换成数值0的函数IFNULL,例如IFNULL(列名,0) c.给列名添加别名

查看雇员的月薪与佣金之和。SELECT sal+IFNULL(comm,0) FROMemp ;给上面的结果新生成的列起个别名。

SELECT sal+IFNULL(comm,0) AS a FROM emp ;

6.聚合函数 sum avg max min count 聚合函数是用来做纵向运算的函数:

COUNT():统计指定列不为NULL的记录行数;

MAX():计算指定列的最大值;

MIN():计算指定列的最小值; max和min指定的列是字符串类型,使用字符串排序运算;

SUM():计算指定列的数值和(非数值计算结果为0);

AVG():计算指定列的平均值(非数值计算结果为0);

查询emp表中记录数:SELECT COUNT(*) FROMemp;查询emp表中有奖金的人数:

SELECT COUNT(comm) FROMemp;查询emp表中月薪大于2500的人数:

SELECT COUNT(*) FROM emp WHERE sal>2500;统计月薪与奖金之和大于2500元的人数:

SELECT COUNT(*) FROM emp WHERE sal+IFNULL(comm,0)>2500;查询有奖金的人数,有领导的人数:count统计数量(非null)

SELECT COUNT(comm),COUNT(mgr) FROMemp;SELECT COUNT(comm),COUNT(mgr) FROM emp WHERE comm IS NOT NULL OR mgr IS NOT NULL;查询所有雇员月薪和:

SELECT SUM(sal) FROMemp;查询所有雇员月薪和,以及所有雇员奖金和:

SELECT SUM(sal),SUM(comm) FROMemp;查询所有雇员月薪+佣金和:

SELECT SUM(sal+IFNULL(comm,0)) FROMemp;统计所有员工平均工资:

SELECT AVG(sal+IFNULL(comm,0)) FROMemp;查询最高工资和最低工资:

SELECT MAX(sal+IFNULL(comm,0)),MIN(sal+IFNULL(comm,0)) FROM emp;

7.分组查询:

7.1当需要分组查询时需要使用GROUP BY子句

7.2  HAVING子句 注:having与where的区别: 1.having是在分组后对数据进行过滤.后面可以使用聚合函数 where是在分组前对数据进行过滤,不可以使用聚合函数

查询每个部门的部门编号和每个部门的工资和:SELECT deptno,SUM(sal+IFNULL(comm,0)) 部门总工资 FROM emp GROUP BYdeptno;查询每个部门的部门编号 以及 每个部门的人数:

SELECT deptno, COUNT(*)FROM emp GROUP BYdeptno;查询每个部门的部门编号以及每个部门工资大于1500的 人数:

SELECT deptno, COUNT(*) FROM emp WHERE (sal+IFNULL(comm,0))>1500 GROUP BYdeptno;查询部门工资总和大于9000的部门编号以及工资和:

SELECT deptno,SUM(sal+IFNULL(comm,0)) FROM emp GROUP BYdeptnoHAVING SUM(sal+IFNULL(comm,0))>9000;

8.LIMIT用来限定查询结果的起始行,以及总行数

查询5行记录,起始行从0开始SELECT * FROM emp LIMIT 0,5;

查询总结:

select * from 表名 where 行条件 group by 列名 having 条件 order by 列名 limit start,count

①执行顺序:from where 得到一个虚拟表1

②group by having :先分组再从组中取出符合having的条件 得到一个虚拟表2

③select:在所有条件完成后去查询

④order by

⑤limit

dos窗口mysql创建数据库指定字符集_MySQL数据库 dos 命令窗口命令集相关推荐

  1. mysql数据库的字符集_mysql数据库中字符集乱码问题原因及解决

    前言 有的时候我们在查看数据库数据时,会看到乱码.实际上,无论何种数据库只要出现乱码问题,这大多是由于数据库字符集设定的问题. 下面我们就介绍一下,数据库的字符集的设定及乱码问题的解决. mysql数 ...

  2. mysql字符集和表字符集_Mysql数据库表引擎与字符集

    Mysql数据库表引擎与字符集 1.服务器处理客户端请求 其实不论客户端进程和服务器进程是采用哪种方式进行通信,最后实现的效果都是:客户端进程向服务器进程发送一段文本(MySQL语句),服务器进程处理 ...

  3. mysql 创建视图 主键_MySQL数据库基础操作命令,本文助你更上一层楼!

    今天介绍的是关于Mysql数据库一些操作的基础命令 用户与权限 创建用户 mysql>create user test identified by 'BaC321@#'; 修改密码 5.5版本及 ...

  4. 修改mysql数据库默认字符集_MySQL数据库之修改mysql默认字符集的两种方法详细解析...

    本文主要向大家介绍了MySQL数据库之修改mysql默认字符集的两种方法详细解析 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. (1) 最简单的修改方法,就是修改mysql的m ...

  5. navicat下对mysql创建索引导致死锁,数据库崩溃,完美解决方案

    文章目录 写在前面 一.短事务场景下,执行DDL语句场景分析 1.短事务场景下,执行表字段添加操作 2.短事务场景下,执行表字段修改操作 3.短事务场景下,执行表字段删除操作 (1)往里添加一条数据试 ...

  6. linux mysql 实战_Linux平台MySQL多实例项目实施_MySQL数据库基础与项目实战06

    Linux平台MySQL多实例项目实施_MySQL数据库基础与项目实战06 视频教程学习地址 Oracle/MySQL数据库学习专用QQ群:336282998.189070296 学完风哥本课程能熟悉 ...

  7. mysql连接串指定编码_MYSQL创建数据库时候直接指定编码和排序规则

    安装我 在网上搜索的结果 执行 代码: sudo gedit /etc/mysql/my.cnf 设置了默认编码为 UTF8 代码: [client] port            = 3306 s ...

  8. mysql创建数据库指定字符集

    mysql 创建 数据库时指定编码很重要,很多开发者都使用了默认编码,但是我使用的经验来看,制定数据库的编码可以很大程度上避免倒入导出带来的乱码问题. 我们遵循的标准是,数据库,表,字段和页面或文本的 ...

  9. mysql创建表并指定字符集_mysql 创建表 指定字符集

    不知道你是不是想像下面那样作转换: CREATE TABLE `books` ( `id` varchar(8) NOT NULL default '', `name` varchar(24) def ...

最新文章

  1. 【欧拉回路】解题报告:luogu P6066 [USACO]Watchcow (欧拉回路详解)【模板】
  2. C/C++ 类默认生成的四个函数
  3. 更换计算机桌面背景的教案,桂科版三年级下册任务一 美化桌面背景免费教学设计...
  4. 技巧收藏|10个JavaScript常用数组操作方法
  5. java开发安装程序_创建java开发环境安装包
  6. php 数组转json乱码,php将数组转为json涌现中文乱码怎么办_后端开发
  7. linux内核定时器死机,浅析linux内核中timer定时器的生成和sofirq软中断调用流程
  8. HDU 5536 字典树
  9. java开发搭建环境搭建_Java开发环境搭建
  10. 4.5 NiN CNN、tensorflow实现——python实战
  11. CentOS 系统修复
  12. C#基础之vs2010安装与使用教程
  13. 在线答题系统_在线题库管理系统v3.1.0
  14. SAP SD 销售订单收入和成本对应科目的逻辑
  15. error C2504 base class undefined
  16. 解决电脑输入法无法切换的问题
  17. 腾讯、淘宝的架构大数据你有了解么?大数据技术及算法为你解析
  18. Vue 中英文 组件 样式 写法
  19. Port-knocking 简单教程
  20. vs2013+opencv3.4.3配置安装教程

热门文章

  1. 潜伏者与谍报密码(洛谷P1071题题解,Java语言描述)
  2. 2.5 Go 算术运算与变量使用技巧
  3. PostgreSQL 10.1 手册_部分 IV. 客户端接口_第 33 章 libpq - C 库_33.11. 杂项函数
  4. “变形金刚”为何强大:从模型到代码全面解析Google Tensor2Tensor系统
  5. [Lab 2] OSPF专题
  6. Linux/unix不同shell环境下数值运算的处理
  7. Outlook Express 自動回信設定
  8. Python基础学习笔记三
  9. Mysql5.0中文乱码解决方案
  10. 未来码农或可以备份一个自己的大脑