MySQL学习(一、概述和表的基本操作)

一、数据库概念

    数据库(Database:DB):数据库是按照数据结构来组织、存储和管理数据的仓库--->数据库其实就是磁盘中的文件+管理系统
    数据库管理系统(Database Management System:DBMS)是专门用于管理数据库的计算机系统
软件。数据库管理系统能够为数据库提供数据的定义、建立、维护、查询和统计等操作功能。并完成

对数据完整性、安全性进行控制的功能

=======================================================

二、SQL:结构化查询语言(Structured Query Language)

    关系型数据库标准语言,特点:简单,灵活,功能强大
SQL包含6个部分(*号表示常用):
    1.数据查询语言(DQL query)*
    其语句也称为“数据检索语言”,用以从表中获取数据,确定数据怎样在应用程序中输出,关键字       SELECT(查询)是DQL(也是所有SQL)用的最多的动词,其他DQL常用的关键字有WHERE(用来限制字   段),ORDER BY(排序),
    GROUP BY(分组)和HAVING(分组后排序)。这些DQL关键字常与其他类型的SQL语句一起使用。

    2.数据操作语言(DML manipulation)*
    其语句包括动词INSERT,UPDATE和DELETE,它们分别用于添加,修改和删除表中的行,
    也称为动作查询语言(SELECT查询和INSERT查询有什么区别?)

    3.事务处理语言(TCL)
    它的语句能够确保被DML语句影响的表所有行及时得到更新,TPL语句包括BEGIN TRANSACTION,
    COMMIT(事务提交)和ROLLBACK(事务回滚)
    
    4.数据控制语言(DCL)
    它的语句通过GRANT和REVOKE获得许可,确定单个用户和用户组对数据库对象的访问,某些RDBMS
    可用GRANT和REVOKE控制对表单个列的访问

    5.数据定义语言(DDL definition)*
    其语句包括动词CREATE(创建)和DROP(删除),在数据库中创建新表和删除表,为表加入索引等。
    DDL包括许多与人数据库目录中获得数据有关的关键字,它也是动作查询的一部分

    6.指针控制语言(CCL)
    它的语句,像DECLARE CURSOR,FETCH INTO 和UPDATE WHERE CURRENT用于对一个
    或多个表单独进行的操作

======================================================

三、SQL编写规则:

    1.在数据库中,SQL语句不区分大小写
    2.SQL语句可以单行也可以多行写
    3.在SQL语句中,关键字不能多行或缩写
    4.为了提高可读性,关键字一般大写,其他小写
    5.空格和缩进使程序易读

    6.SQL不需要加分号,但是程序员在语句后加分号是一个好习惯

 

四、什么是表?

    我们说MySQL是一种关系型数据库,关系型数据库最重要的概念就是表,表具有固定的列数和任意的行数,在数学上称为“关系”二维表是同类实体的各种属性的集合,每个实体对应于表中的一行,在关系中称为元组,相当于通常的一条记录,表中的列属性,称为Field,相当于通常记录中的一个数据项,也叫做列、字段。
    面向对象的类,类似于关系型数据库中表的概念
ORM思想:对象-关系映射

属性
对象       一行数据

 

 

五、数据库操作和存储引擎

 

 

    数据库对象:存储、管理和使用数据的不同结构形式,如:表、视图、存储过程、函数、
触发器、事件等。数据库:存储数据库对象的容器

数据库分为两种:系统自带的,和用户自定义数据库
常用数据库命令:
show databases;                           查看数据库
use dName;                                  使用数据库
show tables;                                  查看表
create database dName               创建数据库
drop     database    dName          删除数据库
 

 

六、Mysql数据常用类型

    MySQL以一个可选的显示宽度指示器的形式对SQL标准进行扩展,这样当数据库检索一个值时,可以把这个值加长到指定长度需要注意,使用一个宽度指示器不会影响字段的大小和它可以存储的值的范围,一般不用指定位宽
 

整数类型

 

INT    int/Integer
BIGINTlong/Long

int(2),在检索时,长度会加长到2,不代表最大存储99,仅仅是查询时,使用两个0占位

小数类型       

FLOATfloat/Float
DOUBLEdouble/Double

money(5,2):整数和小数一共5位,其中小数占两位,最大999.99最小-999.99

 

字符类型   

CHAR定长字符型,0-255字节String/StringBuid
VARCHAR变长字符型StringBuffer
TEXT纯文本 

定长和变长:字节数的占用问题CHAR(5),VARCHAR(5),存‘1’,CHAR五个字节,VARCHAR1个字节


日期类型       

DATE0000:00:00Date/Calender
TIME00:00:00 
DATETIME0000:00:00 00:00:00 
TIMESTAMP时间戳(1970-01-01 00:00:00差) 

 

二进制类型   (用的很少)    

BINARY\VARBINARY\TINYBLOB\BLOB\MEDIUMBLOB\LONGBLOB 存放图形、声音、影响、二进制对象 *:一般将二进制的文件保存路径存储在数据中

BIT       boolean

 

七、表的操作

创建表
    CREATE TABLE 表名(
        colName1 type1 [约束]
        colName2 type2,
        colName3 type3
    );

ex:创建一张学生信息表
    create table t_student(
        id int;
        name varchar(20);
        age int;
    );
    为了避免使用到关键字,我们还可以将名字用` `圈起来
    CREATE TABLE `t_stu` (
      `id` int(2) NOT NULL AUTO_INCREMENT,
      `name` varchar(10) NOT NULL,
      `age` int(2) NOT NULL,
       PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk


查看表的结构
    desc tName;
查看表的详细定义(查看表的定义SQL语句)
    show create table tName;
删除表
    drop table tName;

表的约束(针对某列而言)
    1.非空约束:NOT NULL,不允许字段的内容为空
    2.设置列的默认值:DEFAULT
    3.唯一约束:UNIQUE,在该表中,该列的内容必须唯一
    4.主键约束:PRIMARY KEY,非空且唯一
        主键设计,唯一标识某一行数据
    5.主键自增长:AUTO_INCREMENT,从1开始,步长为1
    6.外键约束:FOREIGNKEY,A表中的外键列,A表中的外键列的值必须参照于B表中的某一列(B表的主键)

    *注意:主键的设计
        1.单字段主键:单列作为主键,建议使用
           复合主键:使用多列字段当主键,不建议
        2.主键的种类:
            1).自然主键:使用有业务含义的列作为主键(不建议使用),例如身份证号码
            2).代理主键:使用没有业务含义的列作为主键

    CREATE TABLE `t_student`(
        `id` INT PRIMARY KEY;                                      //主键,非空且唯一    
        ` name` VARCHAR(20) UNIQUE NOT NULL;    //非空且值唯一
        `age` INT DEFAULT 100;                                   //默认值100
    );
 

八、MYSQL小结

1.MySQL安装和配置(存储引擎,字符编码,密码)
    2.常用命令

1)查看有哪些数据库

show databases;

2)使用某一个数据库

use dName;

3)查看某个数据库中有什么表

show tables;

4)创建和删除一个数据库

create database dName;
drop database dName;

5)创建和删除表

    create table tName(
        colName1 type1 [约束],
        colName2 type2 [约束],
        colName3 type3
    );
drop table tName;

 

 

 

 

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值