zoukankan      html  css  js  c++  java
  • 初识Mysql

    什么是Mysql

    MySQL 是一个功能齐全的关系数据库管理系统(RDBMS应用软件之一,可以与 Oracle DB Microsoft SQL Server 竞争。

    MySQL 由瑞典公司 MySQL AB 赞助,该公司由 Oracle 公司拥有。但是,MySQL 源代码是免费提供的,因为它最初是作为免费软件开发的。

    MySQL 是用 C C ++编写的,与所有主流操作系统兼容。

    什么是数据库系统管理?

     数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称DBMS

    它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过DBMS访问数据库中的数据

     

    为什么要使用MySQL

    Mysql是开源的,所以你不需要支付额外的费用Mysql是可以定制的,采用了GPL协议

    你可以修改源码来开发自己的Mysql系统MySQL数据库因其体积小、速度快、总体拥有成本低受到中小企业的热捧,

    只是MySQL数据库自开发以来已经多次易主,所以很多用户对于MySQL数据库的前途很难乐观起来。

    Linux方式安装MySQL

    启动和关闭(必须以管理运行cmd命令窗口)

     

    设置登录用户名密码

    格式1:cmd>  mysql –u用户名 –p密码

    例如:mysql -uroot –proot

     

    格式2:cmd>  mysql --user=用户名 --host=ip地址 --password=密码

     

    2.查看Linux是否已安装MySQL

    MySQL的守护进程是mysqld.service,可以查看mysqld服务是否已经启动。

    如果已经安装则:[root@localhost ~]# systemctl status mysqld.service

     

    如果没有安装则显示如下:

    SQL语句的介绍

    什么是SQL

    全称Structured Query Language简称SQL,中文叫结构化查询语言。

    关系数据库语言的国际标准。SQL92SQL99

    不只是mysql还有其他数据库SQL92或者SQL99这些国际SQL标准基础之上它们还扩展了自己的一些SQL语句比如MySQL中的limit关键字

    SQL语言的分类

    1.数据库定义语言: DDL(Data Definition Language):数据库定义语言用于创建(create)、修改(alter)和删除(drop)数据库内的数据结构。
    可用来创建数据库中的各种对象-----表、视图、索引、同义词、聚簇等:CREATE TABLE(表)/VIEW(视图)/INDEX(索引)/SYN(同义词)/CLUSTER(簇)

    2.数据库查询语言:DQL(Data Query Language):
    数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE 子句组成的查询块:SELECT <字段名表>FROM <表或视图名>WHERE <查询条件>

    3.数据操作语言:DML(Data Manipulation Language): 用与修改数据库中的数据,包括插入(insert)、更新(update)和删除(delete)数据。

    4.数据控制语言:DCL(Data Control Language):用于控制对数据库的访问。常用的语句关键字grant、revoke等。

    数据控制语言DCL用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,对数据库实行监视等。
    如:
    1) GRANT:授权。
    2) ROLLBACK [WORK] TO [SAVEPOINT]     //回退到某一点,回滚命令使数据库状态回到上次最后提交的状态。
    其格式为:

    SQL>ROLLBACK;
    3) COMMIT [WORK]                //提交。

    SQL语句的使用

    常用的SQL语句

    1、创建数据库:CREATE DATABASE database-name

    2、创建新表:  create table tabname (col1 type1 [not null] [primary key],col2type2 [not null])。

    3、增加一个列: Alter table tabname add column col type

    4、删除视图:  drop view viewname。

    5、创建索引:  create [unique] index idxname on tabname (c01...)

    6、添加主键:  Alter table tabname add primary key (col)

    7、创建视图:  create view viewname as select statement。

    8、使用原有的表创建新表:  create table tab_ new like tab_ old

    sql语句示范:

    查看表

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

    查看表结构:desc 表名;

    删除表

    drop table 表名;

    修改表

    alter table 表名 add 列名 类型(长度) 约束; --修改表添加列.

    alter table 表名 modify 列名 类型(长度) 约束; --修改表修改列的类型长度及约束.

    alter table 表名 change 旧列名 新列名 类型(长度) 约束; --修改表修改列名.

    alter table 表名 drop 列名; --修改表删除列.

    rename table 表名 to 新表名; --修改表名

    alter table 表名 character set 字符集; --修改表的字符集

    新增语句

    insert into (列名1,列名2,列名3..) values  (1,2,3..); -- 向表中插入某些列

    insert into values (1,2,3..); --向表中插入所有列

    insert into  (列名1,列名2,列名3..) values select (列名1,列名2,列名3..) from

    insert into  values select * from

    修改语句

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

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

    删除语句

    delete from 表名 [where 条件];

    分组语句

    select  cid,count(*) from product group by cid  select查出的列(聚合函数除外)必须出现在group by

    执行顺序

    FROM(将最近的两张表,进行笛卡尔积)---VT1

    ON(将VT1按照它的条件进行过滤)---VT2

    LEFT JOIN(保留左表的记录)---VT3

    WHERE(过滤VT3中的记录)--VT4…VTn

    GROUP BY(对VT4的记录进行分组)---VT5

    HAVING(对VT5中的记录进行过滤)---VT6

    SELECT(对VT6中的记录,选取指定的列)--VT7

    ORDER BY(对VT7的记录进行排序)--游标

    LIMIT(对排序之后的值进行分页)

    where 条件的时候,优先级高的部分要去编写过滤力度最大的条件语句

    多表之间的关系

     

     如上图所示,实际业务数据库中的表之间都是有关系的

    表与表之间的关系

    表与表之间的关系,说的就是表与表之间数据的关系。

    一对一关系

    一对多关系

    多对多关系

    主外键关系

    主表是:商品表。主表中,应该有一个字段去关联从表,而这个关联字段就是外键

    从表是:分类表。从表中,应该有一个字段去关联主表,而这个关联字段就是主键

     

    MySQL事务处理

    一般来说,事务是必须满足4个条件(ACID):

    Atomicity(原子性)

    Consistency(稳定性)

    Isolation(隔离性)

    Durability(可靠性)

    原子性:构成事务的的所有操作必须是一个逻辑单元,要么全部执行,要么全部不执行

    稳定性(一致性)数据库在事务执行前后状态都必须是稳定的

    隔离性:事务之间不会相互影响

    可靠性(持久性)事务执行成功后必须全部写入磁盘

     

  • 相关阅读:
    Changing Icon File Of Push Button At Runtime In Oracle Forms 6i
    Set Font Properties On Mouse Hover Of Push Button And Text Items At Run time In Oracle Forms
    Change An Item Property Using Set_Item_Property In Oracle Forms
    Calling / Running a report in Oracle forms 10g / 11g
    Change Or Set Report Object Property At Run Time In Oracle Forms Using Set_Report_Object_Property Command
    Refresh / Updating a form screen in Oracle D2k Forms 6i
    Know How And When To Use System.Message_Level To Control Messages In Oracle Forms
    Perform Cut Copy Paste Operations Using Cut_Region Copy_Region Paste_Region Commands In Oracle Forms
    CHECKBOX_CHECKED built-in in Oracle D2k Forms
    Limiting To Select Only 5 Check Boxes Out Of Ten In Oracle Forms
  • 原文地址:https://www.cnblogs.com/ptxxc/p/12097660.html
Copyright © 2011-2022 走看看