数据库与数据表的创建、修改、删除

创建数据库:

Create database 数据库名

删除数据库:

drop database 数据库名

修改字符集为utf8并指定校对集(mysql默认字符集为latin1):

Alter databases 数据库名 default character set utf8 collate uf8_general_ci

查看mysql支持的字符集:

Show character set

查看mysql支持的校对集:

Show collation set

查看数据库:

show databases

使用数据库:

use 数据库名

创建数据表并指定数据表的字符集:

create table 表名(内容)ENGINE=INNODB DEFAULT CHARSET='utf8‘

删除数据表:

Drop table 表名

Mysql支持的数据类型:

整形:tinyint(1字节,-128-127)、smalint(2字节,-2^15-2^15-1)、mediumint(3字节,-2^23-2^23-1)、int(4字节,-2^31-2^31-1)、bigint(8字节,-9.22*10^18-9.22*10^18-1)

浮点型:float(m,d):4字节,单精度浮点型,m个总数,d个小数位

Double(m,d):8字节,双精度浮点型,m个总数,d个小数位

Decimal(m,d):decimal是存储为字符串的浮点数

字符串类型:

char(n):固定长度字符串,最大为255个字符 效率高

Varchar(n):可变长度字符串,最大为65535个字符 节约空间

时间和日期:

Date:3字节,日期,yyyy-mm-dd

Time:3字节,时间,hh-mm-ss

Datetime:8字节,日期时间,yyyy-mm-dd-hh-mm-ss

其他类型:

Enum数据类型、set类型

当数据表中的属性定义为这两种类型时,代表只能从指定的集合中取值,最多允许65535个成员值

它们之间的区别是:enum类型只能取一个值,set类型可以取多个值,最多允许64个成员值

数据表约束:

主键约束:primary key

主键约束:通过数据表中的一个或多个属性能够标识表中的唯一一行记录,这一个或多个属性称为该表的主键

外键约束:foreign key

外键约束:建立和强调两个表之间的关联,确保数据的完整性和一致性

例如:A表中的属性是另外一个B表中能够唯一确定一行记录的键,这个属性就称为A表的外键,其中B表被称为主表或外表,A表称为从表

唯一约束:unique

唯一约束:确保不是主键的属性不会出现重复数据

定义唯一约束时,也会自动创建唯一索引

非空约束:not null 空值约束:null

非空约束:确保属性列中的数据不能为空,如果没有明确指定非空约束,则默认允许为空

空值约束刚好相反

默认值约束:default

默认值约束:即向表中插入数据时,如果用户没有明确给出属性的值,数据库会自动为该属性添加默认值

自动加一:auto-increment

AUTO_INCREMENT:当属性列定义为AUTO_INCREMENT时,能够为新插入的行赋值为上一次插入的值+1

修改数据库:alter

修改数据库字符集:

Alter database 数据库名 default character set 字符集(utf8) collate 校对集(utf8_general_ci)

新增属性:

Alter table 表名 add 属性名 数据类型(约束)

修改属性数据类型(约束):

Alter table 表名 modify 属性 数据类型(约束)

修改属性名称:

alter  table 表名 change 旧属性 新属性 数据类型(约束)

删除属性:

Alter table 表名 drop 属性名

新增属性约束:

alter table 表名 add constrint 约束别名 约束

删除属性约束:

alter table 表名 drop 约束

修改表名:

Alter table 表名 rename to 新表名

插入数据:insert into(当使用INSERT语句向表中插入数据时,如果不指定具体属性,则表示向所有属性中插入数据)

Insert into 表名(属性1,属性2….) values(值1,值2…)

数据更新:Update

Update 表名 set 属性1=新值1,属性2=新值2,….[where 条件子句]

数据删除:delete

Delete from    表名 [where 条件子句]

数据查询语言:select

基本语法:select 属性1,属性2 from 表名(*代表所有属性)

限定查询:

使用where条件子句、having条件子句

MySQL中常用的运算符有几类:数学运算符、比较运算符、逻辑运算符

普通比较运算符:等于=、大于等于>=、小于等于<=、小于<、大于>、不等于!=或<>

特殊比较运算符:

Between … and … :(在两值之间,包含边界值)

In(list):匹配列出的值

Like:匹配一个字符模式

Is null:匹配空值

逻辑运算符:与:and或择&&(条件均为真返回结果为真)

或:or(条件至少有一个满足返回结果为真)

非:not或!(条件为假返回结果为真)

运算符优先级:

数学运算符>比较运算符>逻辑运算符

去除重复:distinct

设置别名:as(可省略)

排序:order by (可指定多个属性排序,按照指定先后顺序排,默认为升序)

Order by 属性 asc:按照升序排列

order by 属性 desc :按照降序排列

分组:group by(也可指定多个属性进行分组)

函数:

计数函数:count():统计某个属性对应的记录数

平均值函数:avg():统计某个属性的平均值

求和函数:sum():统计某个函数的总和

最大值函数:max():统计某个属性的最大值

最小值函数:min():统计出某个属性的最小值

列值拼接函数:group_concat():将表中某个属性的所有值拼接成一个结果,值与值之间默认用逗号分隔,也可以使用separator关键字指定分隔符

限定结果:limit

使用limit子句可以限定返回查询的结果条数

LIMIT子句后面可以有一个参数,也可以有两个参数

如果有一个参数,该参数表示从表开始位置查询对应的记录数量

如果有两个参数,那么第一个参数表示起始位置与第一行的偏移量,第二个参数表示查询的数量

当行函数:

字符串函数:

日期时间函数:

时间格式化使用的格式符:

类型转换函数:

控制流函数:

多表查询:

等值连接:在进行内连接查询时,使用比较运算符‘=’作为匹配条件

外连接:进行多表查询时,分为主、从表,在结果集中保留主表中的所有记录以及从表中满足匹配条件的记录,分为左连接和右连接

左外连接:在连接查询过程中,以左表为主表,在结果集中保留左表中的全部记录及右表中满足匹配条件的记录

右外连接:在连接查询过程中,以右表为主表,在结果集中保留右表中的全部记录及左表中满足匹配条件的记录

子查询:

单行子查询:子查询语句只返回一行一列

单行比较运算符:=、> 、< 、<= 、>= 、!=

例:查询上级领导编号是董事长编号的员工姓名

SELECT ename FROM hzdl_emp WHERE mgr = (SELECT empno FROM hzdl_emp WHERE ename='董事长');

多行子查询:即子查询语句返回多行一列

多行比较运算符:IN(等于列表中的任何值) 、ANY(只能有一个值满足就返回true)、ALL(每一个都要满足才返回true)

例:查询工作地点为成都的员工姓名,主要满足多行子查询的行,全部展示

SELECT ename FROM hzdl_emp WHERE deptno IN (SELECT deptno FROM hzdl_dept WHERE loc='成都’);

多列子查询:子查询语句返回多行多列

多列比较运算符:IN

例:查询入职日期大于2016-6-1的所有员工姓名

SELECT ename FROM hzdl_emp WHERE (deptno,hiredate) IN (SELECT deptno,hiredate FROM hzdl_emp WHERE hiredate>‘2016-6-1’);

合并结果集:使用union语句可以将多个SELECT语句的结果合并并消除表中任何重复行(如果不消除重复行,要使用UNION ALL),在合并时SELECT语句中使用ORDER BY、LIMIT子句,需要使用括号将SELECT语句括起来

使用UNION进行合并时要求:

1、多个SELECT语句中的列名(别名)可以不一样, UNION结果集中的列名是等于第一个SELECT语句中的列名

2、多个SELECT语句必须拥有相同数量的列

3、多个SELECT语句列必须拥有相似的数据类型

4、多个SELECT语句列的顺序必须相同

例:SELECT empno FROM hzdl_emp WHERE deptno=3

UNION

SELECT empno FROM hzdl_emp WHERE deptno=4;

数据库用户:

创建用户:

Create user 用户名@用户地址 identified by(用户密码:口令)”123456”

删除用户:

Drop user 用户名@用户地址

修改密码:

update user set passwd=passwd(‘123456’) where user=“用户名”

立即生效指令、刷新权限指令:flush privileges

授权:grant

查看当前用户权限:

Show grants

查看指定用户权限:

Show grants for 用户名@用户地址

取消授权:revoke

语法:REVOKE 权限 ON 数据库对象 FROM 用户名@用户地址

索引:index

创建索引:CREATE INDEX 索引名称 ON 表名(属性名称)

在使用ALTER语句更新数据表时,新增索引

例子:ALTER TABLE test ADD INDEX index_test(id);

视图:view(类似于硬链接)

创建视图:CREATE VIEW 视图名称 AS SELECT语句

可以使用ALTER或者CREATE OR REPLACE语句更新视图

语法: ALTER VIEW 视图名称 AS SELECT语句

函数:

查看函数功能是否开启:

SHOW VARIABLES LIKE '%func%';

创建函数:

CREATE FUNCTION 函数名称(参数1 数据类型,参数2 数据类型,…..)

RETURNS 返回值类型

函数体

函数体可以是一条SQL语句,也可以是多条SQL语句

函数体以BEGIN开始,END结束

函数定义完成后,使用SELECT语句调用:

自定义函数的函数体不能被修改,当函数不再被使用时,使用DROP语句删除

语法:drop function 函数名称

存储过程:

存储过程是一组为了完成特定功能的SQL语句集,经过编译后存储在数据库中,用户可以通过存储过程的名称来调用并执行它

创建存储过程:

语法:CREATE PROCEDURE 存储过程名称(参数列表) in代表输入 、out代表输出、inout既可以代表输入也可以代表输出

程序体

存储过程的程序体以BEGIN开始,END结束,可以包含一组语句集

存储过程创建完成后,使用CALL来调用存储过程

最后在用select 查询

存储过程的程序体也不能被修改,当存储过程不再被使用时,使用DROP语句删除

Drop procedure 存储过程名称

函数、存储过程的区别:

函数中不能包含返回结果集的语句,例如SELECT,而存储过程可以

函数必须定义返回值且只能返回一个值,存储过程可以有返回值,也可以没有返回值,还可以返回多个值

函数可以作为SQL语句的一部分来调用,存储过程作为独立的部分来执行,不能用于SQL语句中

函数、存储过程的相同点:

函数和存储过程都需要主动调用执行

控制流语句:

定义变量:declare

语法:DECLARE 变量名 变量类型 DEFAULT 默认值

变量赋值:

给BEGIN…END程序体中的变量赋值有两种方法

语法:SET 变量名=值;

语法:SELECT 属性 INTO 变量名 FROM 表名;

第二种是我们在存储过程中给输出参数赋值的方法

例子:

SET abc=10;

IF语句:

IF语句主要用于条件判定,根据条件成立与否,后续执行不同的命令

语法:IF 条件 THEN …

ELSEIF 条件 THEN …

ELSE …

END IF

CASE语句:

CASE语句为多分枝语句结果,从WHEN后面查找与CASE后的变量相等的值,如果找到,执行该分支语句,否则执行ELSE语句

语法:CASE 变量

WHEN 值1 THEN …

WHEN 值2 THEN …

ELSE …

END CASE

WHILE语句:

WHILE循环语句,判断条件成立与否,如果成立则循环执行程序体

语法:WHILE 条件 DO

END WHILE

mysql基础知识点整理的更多相关文章

  1. HTML&&CSS基础知识点整理

    HTML&&CSS基础知识点整理 一.WEB标准:一系列标准的集合 1. 结构(Structure):html 语言:XHTML[可扩展超文本标识语言]和XML[可扩展标记语言] 2. ...

  2. TypeScript 基础知识点整理

    一.TypeScript的特点 1.支持ES6规范 2.强大的IDE支持(集成开发环境) 允许为变量指定类型,减少你在开发阶段犯错误的几率. 语法提示,在IDE编写代码时,它会根据你所处的上下文把你能 ...

  3. 【Android 面试基础知识点整理】

    针对Android面试中常见的一些知识点整理,Max 仅仅是个搬运工.感谢本文中引用文章的各位作者,给大家分享了这么多优秀文章.对于当中的解析,是原作者个人见解,有错误和不准确的地方,也请大家积极指正 ...

  4. Python基础知识点整理(详细)

    Python知识点整理(详细) 输出函数 print()可以向屏幕打印内容,或者在打开指定文件后,向文件中输入内容 输入函数 input([prompt])[prompt] 为输入的提示字符.该函数返 ...

  5. mysql基础知识点

    /* 启动MySQL */net start mysql /* 连接与断开服务器 */mysql -h 地址 -P 端口 -u 用户名 -p 密码 /* 跳过权限验证登录MySQL */mysqld ...

  6. mysql 基础知识整理

    什么是MySQL? MySQL 是一种关系型数据库,在Java企业级开发中非常常用,因为 MySQL 是开源免费的,并且方便扩展.阿里巴巴数据库系统也大量用到了 MySQL,因此它的稳定性是有保障的. ...

  7. JavaSE基础篇—MySQL基础知识点

    MySQL MySQL是一种关系数据库管理系统,是一种开源软件.可搭配PHP和Apache可以有更好的性能,也可以工作在众多的平台上.Orcale是一个数据库创建多个用户,MySQL是一个用户创建多个 ...

  8. mysql基础知识点梳理

    ##本单元目标 一.为什么要学习数据库 二.数据库的相关概念DBMS.DB.SQL 三.数据库存储数据的特点 四.初始MySQL MySQL产品的介绍MySQL产品的安装 ★MySQL服务的启动和停止 ...

  9. mysql基础操作整理(一)

    显示当前数据库 mysql> select database(); +------------+ | database() | +------------+ | test | +-------- ...

随机推荐

  1. framework7 手风琴页面有滚动条时再次点开手风琴item滑动里面内容消失的解决方法

    在手风琴的ul外面的div加入最小高度min-height:1000px,问题解决 示例代码: <div class="list-block accordion-list" ...

  2. VMware 12安装Mac OS X 10.11

    去年写了一篇安装Mac OS X 10.10的文章,看到大家都想体验OS X,大多数都能成功,但也在其中发现了一些问题,所以更新一下,希望对大家有所帮助.   1048VMware 11安装Mac O ...

  3. 2017.11.9 如何利用JS做登陆验证界面

    ()案例----JavaScript实现输入验证 需要验证的表单输入域和要求 用户名不能为空,是否符合规定的格式 密码长度是否超过6,两次密码输入一致 邮箱地址:邮箱地址必须符合邮箱形式 ~~~注意提 ...

  4. 2017.9.26 request请求参数用法

    4.2 访问请求参数 request对象的getParamter()方法,可以用来获取用户(客户端)提交的数据 4.2.1 访问请求参数的方法 String 自符串变量 =request.getPar ...

  5. removing vmware debugger from visual studio

    removing vmware debugger from visual studio by Ross on 十月 14, 2010 at 5:30 下午 under Visual Studio |  ...

  6. 旧文备份: CANopen的LSS子协议中文翻译

    有关节点地址和网络波特率的在线设置等:下载

  7. 13、SpringBoot------整合shiro

    开发工具:STS 前言: shiro,一套简单灵活的安全权限管理框架. 把所有对外暴露的服务API都看作是一种资源,那么shiro就是负责控制哪些可以获得资源,哪些不能获取. 一个比较不错的教程:ht ...

  8. Spring框架基础2

    Spring框架基础2 测试Spring的AOP思想和注解的使用 导包(在前面的基础上添加) SpringAOP名词解释 AOP编程思想:横向重复代码,纵向抽取:就是说多个地方重复的代码可以抽取出来公 ...

  9. 利用Selenium+java实现淘宝自动结算购物车商品(附源代码)

    转载请声明原文地址! 本次的主题是利用selenium+java实现结算购买购物车中的商品. 话不多说,本次首先要注意的是谷歌浏览器的版本,浏览器使用的驱动版本,selenium的jar包版本.   ...

  10. Spring Cloud 入门 Eureka-Client服务提供

    前面文章介绍了如果创建“服务注册中心”,现在创建“服务提供者”,并向服务注册中心注册自己,在服务提供方中尝试着提供一个接口来获取当前所有的服务信息. 先,创建一个基本的Spring Boot应用.命名 ...