ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

初识Mysql

2019-12-25 17:03:40  阅读:275  来源: 互联网

标签:SQL 数据库 表名 初识 MySQL Mysql table 列名


什么是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,中文叫结构化查询语言。

关系数据库语言的国际标准。SQL92、SQL99

不只是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(可靠性)

 

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

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

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

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

 

 

标签:SQL,数据库,表名,初识,MySQL,Mysql,table,列名
来源: https://www.cnblogs.com/ptxxc/p/12097660.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有