美文网首页
MySQL数据库:数据库基础

MySQL数据库:数据库基础

作者: 虞锦雯 | 来源:发表于2017-06-12 20:21 被阅读66次
一、什么是MySQL?

MySQL 是一个小型关系型数据库管理系统,开发者为瑞典 MySQL AB 公司。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,MySQL 被广泛地应用在Internet 上的中小型网站中。
MySQL的特征

  • 性能快捷、优化SQL语言
  • 容易使用
  • 多线程和可靠性
  • 多用户支持
  • 可移植性和开放源代码
  • 遵循国际标准和国际化支持
  • 为多种编程语言提供API
二、MySQL基本操作
(一)mysql命令
mysql -h host_name -u user_name –ppassword
  • h :当连接 MySQL 服务器不在同台主机时,填写主机名或 IP 地址
  • u :登录 MySQL 的用户名
  • p :登录 MySQL 的密码

注意:密码如果写在命令行的时候一定不能有空格。如果使用的系统为 linux 并且登陆用户名字与 MySQL 的用户名相同即可不用输入用户名密码,linux 默认是以 root 登陆,windows 默认用户是 ODBC。

(二)mysql程序常用命令
  • 显示所有数据库:
show databases;
  • 选定默认数据库:
use dbname;
  • 显示默认数据库中所有表:
show tables;
  • 退出 mysql 程序:
\q
三、数据库的基础知识
数据完整型 = 可靠性 + 准确性
分类 概述 约束方法
数据实体完整性 实体的完整性强制表的标识符列或主键的完整性 唯一约束、主键约束或标识列
字段完整性 如果插入的数据不满足限制要求,数据库管理系统就拒绝执行操作 限制数据类型、检查约束、外键约束、默认值、非空约束
引用完整性 在删除和输入记录时,保持表之间已定义的关系,确保键值在所有表中一致。不能孤立,即引用不存在的值 外键约束
自定义完整性 用户自己定义的业务规则 规则、存储过程、触发器

完整型包括:列值要求(约束)、行值要求(约束)

四、什么是SQL?
(一)SQL语法组成
SQL 概述 命令
DML(Data Manipulation Language数据操作语言) 查询、插入、删除和修改数据库中的数据 SELECT、INSERT、 UPDATE 、DELETE等
DCL(Data Control Language数据控制语言) 用来控制存取许可、存取权限等 GRANT、REVOKE等
DDL(Data Definition Language数据定义语言) 用来建立数据库、数据库对象和定义其列 CREATE TABLE、DROP TABLE、ALTER TABLE等

功能函数:日期函数、数学函数、字符函数、系统函数等。

(二)MySQL中的SQL语言
  1. 属于一个SQL语句,使用分号(;)结尾,否则mysql认为语句没有输入完。
  2. 箭头(->)代表SQL语句没有输入完取消SQL语句使用(\c)。
  3. SQL语句关键字和函数名不区分大小写(Linux区分,Windows不区分)。
  4. 使用函数时,函数名和后面的括号之间不能有空格。
(三)MySQL数据类型
  • 数据类型种类
  • 数值列类型
    数值列类型包括整型和浮点型
类型名 说明 类型名 说明
TINYINT 非常小的整数 BIGINT 大整数
SMALLINT 较小整数 FLOAT 单精度浮点数
MEDIUMINT 中等大小的整数 DOUBLE 双精度浮点数
INT 标准整数 DECIMAL 一个串的浮点数
类型说明 存储需求
TINYINT[(M)] 1字节
SMALLINT[(M)] 2字节
MEDIUMINT[(M)] 3字节
INT[(M)] 4字节
BIGINT[(M)] 8字节
FLOAT[(M,D)],FLOAT(4) 4字节
DOUBLE[(M,D)],FLOAT(8) 8字节
DECIMAL(M,D) M字节(MySQL<3.23),M+2字节(MySQL>=3.23)

对于每种浮点型,可指定一个最大的显示尺寸M和小数位数D,M的取值应该是0-30,但小于M-2。M和D对于DECIMAL是必须的。

  • 字符串列类型
    CHAR类型和VARCHAR类型。
    CHAR类型和VARCHAR类型长度范围都是0~255之间的大小。他们之间的差别在于MySQL处理存储的方式:
    A. CHAR把这个大小视为值的准确大小(用空格填补比较短的值)。
    B. VARCHAR类型把它视为最大值并且只使用了存储字符串实际上需要的字节数(增加了一个额外的字节记录长度)。因而,较短的值当被插入一个语句为VARCHAR类型的字段时,将不会用空格填补。
  • 日期和时间列类型
    存储如“2005 -1-1” 或者“12:00:00”这样的数值的值。在MySQL中日期是按”年-月-日”的顺序。
类型说明 格式 取值范围 存储要求
DATE "YYYY-MM-DD" "1000-01-01"到"9999-12-31" 3字节
TIME "hh:mm:ss" "-838:59:59"到"838:59:59" 3字节
DATETIME "YYYY-MM-DD hh:mm:ss" "1000-01-01 00:00:00"到"9999-12-31 23:59:59" 8字节
TIMESTAMP[(M)] "YYYYMMDDhhmmss" 19700101000000到2037年的某个时刻 4字节
YEAR[(M)] "YYYY" 1901到2155 1字节
(四)数值列的完整性约束
  • AUTO_INCREMENT
    自动标识列,在需要产生唯一标志符号或者顺序值时候,可用此属性。
create table t(id int auto_increment not null primary key);
  • UNSIGNED
    无符号,此属性禁用负值,将数值的取值范围从零开始。
create table t(num tinyint , num2 tinyint unsigned);
  • NULL 和NOT NULL
    默认为NULL,即插入值时没有在此字段插入值时自动填NULL,如果指定了NOT NULL,则必须在插入值时在此字段添入值,不允许插入NULL值。
  • DEFAULT
    可以通过此属性来指定一个缺省值,即如果没有在此列添加值,那么默认添加DEFAULT后指定值。
  • ZEROFILL
    前导零填充数值类型值以达到列的显示宽度。
create table test2(num1 int default 1,num2 int zerofill);
五、数据库操作
(一)建立数据库操作

语法:

create database 数据库名

叙述:创建一个具有指定名称的数据库。如果要创建的数据库已经存在,或者没有创建它的适当权限,则此语句失败。

(二)建立表操作

语法 :

create table 表名(    
        列名1 列类型 [< 列的完整性约束>],
        列名2 列类型 [< 列的完整性约束>],
        ... ... );

叙述:在当前数据库下新创建一个数据表。
列类型:表示该列的数据类型。

(三)显示表结构操作

语法:

describe 表名; 表名;
desc 表名; 表名;

叙述:用于显示表的创建结构。

(四)删除数据库或表操作
  • 删除表操作
    语法:
drop table [if exists] tab_name [,tab_name]...

叙述:从数据库中删除给定的表。如果给出if exists 子句,则删除不存在的表不会出错。

  • 删除数据库操作
    语法:
drop database [if exists] db_name

叙述:删除给定的数据库。在删除一个数据库后,它就永远没有了,因此要特别小心。如果给出if exists 子句,则删除不存在的数据库不会出错。

(五)更改表结构操作

语法:

alter table 表名 action;

说明:
action可以是如下语句:

add 列名 建表语句 [first | after 列名] //可以为表添加一列
//如果没指定first或者after,则在列尾添加一列,否则在指定列添加新列
add primary key (列名) //为表添加一个主键,如果主键已经存在,则出现错误
add foreign key (列名) references 表名 (列名) //为表添加一个外键
alter 列名 set default 默认值 //可以更改指定列默认值
change 旧列名 新列名 <建表语句> [first | after 列名] //可以更改列类型和列名称
//如果原列的名字和新列的名字相同
modify 列名 <建表语句> [first | after 列名] //和change的作用相同
drop 列名 // 可以删除一列
drop primary key // 可以删除主键
engine 类型名 //可以改变表类型
rename as 新表名 // 可以将表名更改
六、MySQL运算符
  • 算数运算符
运算符 语法 说明
+ a + b 加,操作数之和
- a - b 减,操作数之差
- - a 一元减号,操作数取负
* a * b 乘,操作数之积
/ a / b 除,操作数之商
% a % b 模,操作数除后的余数
  • 比较运算符
    比较运算符允许我们对表达式的左边和右边进行比较。一个比较运算符的结果总是1(真),0(假),或是为NULL(不能确定)。
    比较运算符可以用于比较数字和字符串。数字作为浮点值比较,而字符串以不区分大小写的方式进行比较(除非使用特殊的BINARY二进制关键字)。
运算符 语法 说明
= a = b 如果两操作数相等,为真
!=,<> a != b, a <> b 如果两操作数不等,为真
< a < b 如果a小于b,为真
<= a <= b 如果a小于等于b,为真
> a > b 如果a大于b,为真
>= a >= b 如果a大于等于b,为真
IN a IN (b1,b2,...) 如果a为b1,b2,...中任意一个,为真
BETWEEN a BETWEEN a AND c 如果a值在b与c之间(包括b、c),为真
LIKE a LIKE b SQL模式匹配:如果a与b匹配,为真
NOT LIKE a NOT LIKE b SQL模式匹配:如果a与b不匹配,为真
REGEXP a REGEXP b 扩展正规表达式匹配:如果a与b匹配,为真
NOT REGEXP a NOT ERGEXP b 扩展正规表达式匹配:如果a与b不匹配,为真
<=> a <=> b 如果两操作数相同(即使为NULL),为真
IS NULL a IS NULL 如果操作数为NULL,为真
IS NOT NULL a IS NOT NULL 如果操作数不为NULL,为真

MySQL数据库中的通配符:
“%” ( 百分号) 代表任意长度(长度可以为0)的字符串
“_ ”( 下横线) 代表任意单个字符

  • 逻辑运算符
    与(AND,&&)、或(OR,||)、非(NOT,!)
  • 位运算符

相关文章

  • 2018-04-09 数据仓库技能要求

    一、基础技能1 关系数据库基础1.1. 关系数据库-mysql1.1.1 mysql 应用1.1.2 mysql ...

  • mysql基础语法,常用操作及概念

    mysql基础 数据库的好处 数据库相关概念 数据库存储数据的特点 MySQL产品的介绍和安装 MySQL服务的启...

  • Mysql数据库操作

    Mysql 基础 /************ * 数据库 * ************/ 1.连接数据库 mysq...

  • Linux基础之mysql数据库第一篇

    Linux基础之mysql数据库第一篇 简介 MySQL数据库属于传统关系型数据库产品,也是属于开源数据库产品 他...

  • PHP全栈学习笔记5

    php与mysql数据库,PHP支持很多数据库,与mysql为牛逼组合,mysql数据库的基础知识的掌握是由必要的...

  • PHP全栈学习笔记5

    php与mysql数据库,PHP支持很多数据库,与mysql为牛逼组合,mysql数据库的基础知识的掌握是由必要的...

  • MySQL性能调优与架构设计 - 简朝阳.mobi

    【下载地址】 本书以 MySQL 数据库的基础及维护(基础篇)为切入点,重点介绍了 MySQL 数据库应用系统的性...

  • 2018-09-17

    MySQL基础 数据库的操作 创建数据库 命令格式:create {database|schema}[if not...

  • Mysql

    数据库的分类: 关系型数据库(是建立在关系模型基础上的数据库): Mysql:开放源代码MariaDB:Mysql...

  • 数据库操作

    mysql 基础 增删改查语句MySQL:众多关系型数据库中的一种仓库 --数据库箱子 --表数据库:进入mysq...

网友评论

      本文标题:MySQL数据库:数据库基础

      本文链接:https://www.haomeiwen.com/subject/yfefqxtx.html