MySql概述

1、数据库相关概念介绍

数据库(DB:DataBase):存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来

数据库管理系统(DataBase Management System,DBMS):指一种操作和管理数据库的 大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据库中表内的数据。

数据库表:数据库中以表为组织单位存储数据。

常见数据库管理系统(日常开发主要使用MySql与Oracle):

MYSQL :开源免费的数据库,小型的数据库.已经被Oracle收购了.MySQL6.x版本也开始收费。

Oracle :收费的大型数据库,Oracle公司的产品。Oracle收购SUN公司,收购MYSQL。

DB2 :IBM公司的数据库产品,收费的。常应用在银行系统中.

SQLServer:MicroSoft 公司收费的中型的数据库。C#、.net等语言常使用。

SyBase :已经淡出历史舞台。提供了一个非常专业数据建模的工具PowerDesigner。

SQLite : 嵌入式的小型数据库,应用在手机端。

 

2、MySql相关的CMD命令(针对数据库)

启动MySql服务(前提是已安装MySql):net start MySql(安装时指定的服务名)

登陆MySql数据库:

a、mysql –u 用户名–p密码(注意-p与密码之间不能有空格)

b、mysql --host=ip地址 --user=用户名 --password=密码

临时切换数据库编码:

set names gbk;

3、Sql介绍

SQL:结构化查询语言(Structured Query Language),是关系型数据库管理系统都需要遵循的规范。不同的数据库生产厂商都支持SQL语句,但都有特有内容。

SQL分类:

数据定义语言:简称DDL(Data Definition Language),用来定义数据库中的对象:数据库,表,列等。关键字:create,alter,drop, show等

数据操作语言:简称DML(Data Manipulation Language),用来对数据库中表的记录进行更新。关键字:insert,delete,update等

数据控制语言:简称DCL(Data Control Language),用来定义数据库的访问权限和安全级别,及创建用户。

数据查询语言:简称DQL(Data Query Language),用来查询数据库中表的记录。关键字:select,from,where等

 

SQL通用语法:

sql语句中的关键字建议全部使用大写;

可以使用/**/的方式进行注释,在Sqlyog中可以使用#或者-- 来注释单行

MySql中常用的数据类型包括:int,double,varchar,date

4、MySql四大基础分类对应的基础SQL语句

DDL:

创建数据库:

CREATE DATABSE 数据库名;

CREATA DATABASE 数据库名 CHARACTER SET 字符集;(GBK,UTF-8(SQL中使用UTF8)等)

查看数据库:

查看所有数据库:SHOW DATABASES;

查看某个数据库的定义信息:SHOW CREATA DATABASE 数据库名;

查看正在使用的数据库:SELECT DATABASE();

删除数据库:

DROP DATABASE 数据库名;

切换数据库

USE 数据库名;

创建表:

create table 表名(

字段名 类型(长度) [约束],

字段名 类型(长度) [约束],

   ...

);

两个约束:

primary key 主键,值唯一,并且不能为空

auto_increment 自动增长

查看表:

查看数据库中的所有表:show tables;

查看某个表的结构:desc sort;

删除表:

DROP TABLE 表名;

修改表:

修改表名:RENAME TABLE 表名 TO 新表名;

添加列:ALTER TABLE 表名 ADD 列名 类型(长度) [约束];

删除列:ALTER TABLE 表名 DROP 列名;

修改列名:ALTER TABLE 表名 CHANGE 旧列名 新列名 类型(长度) 约束;

修改列的长度类型约束:ALTER TABLE 表名 MODIFY 列名 类型(长度) 约束;

修改表的字符集:ALTER TABLE 表名 CHARACTER SER 字符集;

 

DML(数据操作语言):

增:

insert into 表 (字段1,字段2,字段3..) values  (值1,值2,值3..);

insert into 表 values (值1,值2,值3..);

值与字段必须对应,个数相同,类型相同

值的数据大小必须在字段的长度范围内

除了数值类型外,其它的字段类型的值必须使用引号引起。

如果要插入空值,可以不写字段,或者插入 null。

删:

delete from 表名 ;(会删除表中的所有数据,但不会清空自增长字段的起始值)

delete from 表名 [where 条件];

truncate table 表名;(会删除表中的所有数据,且清空自增长字段的起始值,相当于直接Drop table,再create)

改:

update 表名 set 字段名=值,字段名=值,...;

update 表名 set 字段名=值,字段名=值,... where 条件;

列名的类型与修改的值要一致.

修改值得时候不能超过最大长度.

除了数值类型外,其它的字段类型的值必须使用引号引起

查:

语法:略;

MySql中的查询条件运算符列表如下:

比较运算符

> <  <=   >=   =  <>

!=

大于、小于、大于(小于)等于、不等于

 

BETWEEN  ...AND...

显示在某一区间的值(含头含尾)(也可以是日期)

 

IN(set)

显示在in列表中的值,例:in(100,200)

 

LIKE ‘张%

模糊查询,Like语句中,

%代表零个或多个任意字符,

_代表一个字符,

例如:first_name like ‘_a%’;

 

IS NULL /IS NOT NULL

判断为空/不为空 where name IS NULL

             和name = ‘’

逻辑运算符

and 

多个条件同时成立

 

or

多个条件任一成立

 

not

不成立,例:where not(salary>100);

 

5、SQL语句常用的知识点

1、常见查询方式

排序查询:

通过ORDER BY 关键字可以对查询结果进行排序,格式如下:

SELECT * FROM 表名 ORDER BY 排序字段ASC|DESC;

ASC 升序 (默认)

DESC 降序

聚合查询:

使用聚合查询可以对查询出来的结果集数据进行纵向的计算,得出需要的结果,常见聚合函数如下:

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

SUM():计算指定列的数值和,如果指定列数据类型不为数值类型,那么结果为0

MAX():计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算

MIN():计算指定列最小值,如果指定列是字符串类型,那么使用字符串排序运算

AVG():计算指定列的平均值,如果指定列不是数值类型,那么结果为0

分组查询:

使用GROUP BY关键字对查询的结果集进行分组,格式如下:

SELECT 字段1,字段2… FROM 表名GROUP BY分组字段 HAVING 分组条件;

此处的HAVING作用与WHERE类似,区别在于,HAVING是对分组后的结果集进行过滤,WHERE是在分组之前对数据进行过滤。HAVING之后可以使用统计(聚合)函数进行数据过滤,WHERE后面不可以。且当GROUP BY后需要继续进行分组的话,不可用WHERE,只可以用HAVING。

分页查询:

SELECT 字段1,字段2... FROM 表明 LIMIT M,N;

M:表示从第几条索引开始,计算方式为(当前页-1)*每页条数

N:整数,表示查询多少条数据

2、SQL约束

数据库表中的数据完整性约束包括:

实体完整性:对数据行的约束,如:主键约束,唯一约束

域完整性:对数据列的约束,如默认约束,非空约束

引用完整性:外键约束(多表的关系)

主键约束:

使用PRIMARY KEY 标记表中需要被声明为主键的字段,一张表中的主键只能是唯一值,主键不能为NULL,每张表有且只能有一个主键。PRIMARY KEY的声明方式有三种:

方式一:创建表时直接在字段后面声明;

方式二:创建表时,在约束域的声明中,指定主键,格式:[constraint 名称] primary key (字段列表)

方式三:创建表后,修改表添加主键,格式:ALTER TABLE 表名 ADD [CONSTRAINT 名称] PRIMARY KEY (字段列表)

删除主键约束:ALTER TABLE 表名 DROP PRIMARY KEY;

自动增长:

使用auto_increment关键字可以将表中的某个字段声明为自动增长,自动增长的列类型必须为整型,自动增长列必须为键,自动增长列的默认值为1,如果希望更改,可以使用ALTER TABLE Persons AUTO_INCREMENT=新的起始值;

非空约束:

NOT NULL关键字,可以在创建时声明,或通过 ALTER TABLE 表名 MODIFY 列名  列值类型 NOT NULL;更改。

唯一约束:

UNIQUE关键字,声明方式三种,类似主键,不再赘述。

删除唯一约束语法:ALTER TABLE 表名 DDIFY 字段名 字段值类型 DEFAULT '北京';修改

默认约束:

DEFAULT关键字,可在建表时声明,或通过MODIFY关键字进行更改

你可能感兴趣的:(数据库)