MySQL 简述

1 概述
2 安装
3 数据库的操作
4 注意事项

Mysql概述

MySql是一种关系型数据库

连接到mysql数据库:mysql -u root -p

什么是SQL:结构化的查询语句

SQL分类:

DDL:数据定义语言

   * create,alter,drop…

  DML:数据操纵语言

    * update,insert,delete

  DCL:数据控制语言

    * grant,if..

  DQL:数据查询语言

    * select

数据库的安装 

安装
yum groupinstallmariadbmariadb-client
systemctlstart mariadb
systemctlenable mariadb
提高安全性
mysql_secure_installation
1设置数据库管理员root口令
2禁止root远程登录
3删除anonymous用户帐号
4删除test数据库

数据库增删查改

创建数据库:语法:create database 数据库 [character 字符集 collate 校对规则]

查看数据库:

  查看所有数据库:show databases;

  查看某个数据库:show create database 数据库名;

修改数据库:语法:alter database 数据库名 character 字符集 collate 校对规则

删除数据库:语法:drop database 数据库名;

切换数据库:use 数据库名;

查看当前使用数据库:select database();

数据库表操作

创建表语法:

  create table 表名 (

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

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

      字段名 类型(长度) 约束

  );

数据类型:

 Java类型:             MySQL:

  byte/short/int/long   tinyint/smallint/int/bigint

  String                char/varchar

                            * 区别?char是固定长度的字符串,varchar可变长度的字符串.

                            * char(8) 和 varchar(8)

                                * 如果插入一个字符串hello 插入到char 那么 插入hello   .插入到varchar中 插入hello

 float                  float

 double                 double

 boolean            bit

 Date                   date/time/datetime/timestamp

                        * datetime和timestamp都是既有日期又有时间的日期类型

                            * 区别? datetime需要使用外部传入的日期.如果没传这个值就是Null. timestamp会使用系统当前的时间作为这个值的默认值.

 文本文件                Text

 二级制文件               BLOB

***** Oralce使用CLOB/BLOB

***** MYSQL中除了字符串类型需要设置长度其他的类型都有默认长度******

  • 约束:

单表约束:

* 主键约束:primary key (默认就是唯一非空的)

* 唯一约束:unique

* 非空约束:not null

  • 创建一个表:
  • ***** 创建表之前先选择数据库:use 某个数据库;

create table employee(

    eid int primary key auto_increment,

    ename varchar(20) not null,

    email varchar(30) unique,

    birthday date,

    job varchar(20),

    resume text

);

【表的查看】

  • 查看数据库中有哪些表:

* show tables;

  • 查看表结构:

* desc 表名;

【表的删除】

  • 表的删除:

 drop table 表名;

【表的修改】

  • 修改表添加列:

* alter table 表名 add 列名 类型(长度) 约束;

    * alter table employee add image varchar(50);

  • 修改表删除列:

* alter table 表名 drop 列名;

    * alter table employee drop job;

  • 修改表的列的类型长度及约束:

* alter table 表名 modify 列名 类型(长度) 约束;

    * alter table employee modify image varchar(80) not null;

  • 修改表的列名

* alter table 表名 change 旧列名 新列名 类型(长度) 约束;

    * alter table employee change image eimage varchar(60);

  • 修改表名

* rename table 旧表名 to 新表名;

    * rename table employee to user;

  • 修改表的字符集:

* alter table 表名character set 字符集;

    * alter table user character set gbk;

*******使用SQL操作数据库中的表的记录(对表的记录的CRUD的操作)******

【插入记录】

  • 语法

* insert into 表名 (列名,列名,…) values (值1,值2,…);     —插入指定列的值

* insert into 表名 values (值1,值2,…);                    —插入所有列的值

 

  • 注意事项:

* 列名的个数与值的个数对应.

* 列的类型与值的类型对应.位置也要对应.

* 列的类型如果是字符串或者日期,写值的时候使用单引号将值引起来.

* 插入的值的最大长度不能超过列的最大长度.

【修改记录】

  • 语法:

* update 表 set 列名=值,列名=值 [where 条件];

  • 注意事项:

* 列名和值类型也要一致.

* 值不能超过列的最大长度.

* 值是字符串或日期,需要使用单引号.

  • 练习:

* 修改employee表中所有记录的job为WORKER

    * update employee set job=’WORKER’;

* 修改employee表将name为aaa的邮箱改为aaa@163.com

    * update employee set email = ‘aaa@163.com’ where ename = ‘aaa’;

* 修改employee表将name为bbb的邮箱改为bbb@163.com同时修改jobHR

    * update employee set email = ‘bbb@163.com’ , job=’HR’ where ename=’bbb’;

【删除记录】

  • 语法:

* delete from 表 [where 条件];

  • 注意事项:

* 删除表中的一行记录,不能删除某列值

* 如果没有条件删除表中的所有列.

  • 练习:

* 删除id为8的记录:

    * delete from employee where eid = 8;

* 删除所有记录:

    * delete from employee;

  • 删除表中的所有记录truncate table 表名  和 delete from 表  区别?

* 区别:

    * truncate table 删除表的记录:将整个表删除掉,重新创建一个新的表.truncate属于DDL.

    * delete from 删除表的记录:一条一条进行删除. delete属于DML

        * 事务管理 只能作用在DML语句上.如果再一个事务中使用delete删除所有记录,可以找回.

【基本查询】

  • 查询语句:

* select [distinct] *|列名 from 表 [where 条件];

【条件查询】

  • where语句后面可以加:

条件的关键字:

= , > , >= , <, <= , <>

like中可以使用占位符: _ 和 %  :下划线匹配一个字符, %:可以匹配任意多个字符.

【排序查询】

`order by 对数据进行排序.默认升序. (asc升序,desc降序)

【聚合函数】

`sum()   求和

`count()  统计

`max()  最大值

`min()  最小值

`avg() 平均数

【分组】

group by

* 交叉连接

    * select * from A,B;   — 获得的是两个表的笛卡尔积.

* 内连接: inner join — inner 可以省略

    * 显式内连接:select * from A inner join B on 条件;

    * 隐式内连接:select * from A,B where 条件;

* 外连接:outer join — outer 可以省略

    * 左外连接:left outer join  — select * from A left outer join B on 条件;

    * 右外连接:right outer join — select * from A right outer join B on 条件;

多表查询的子查询

  • 一个SQL语句查询的过程中需要依赖另一个查询语句.

SELECT * FROM customer c,orders o WHERE c.cid = o.cid AND  c.cid IN (SELECT cid FROM orders WHERE addr LIKE ‘郑州%’);

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/87560

(0)
oranixoranix
上一篇 2017-09-25 09:41
下一篇 2017-09-25 10:50

相关推荐

  • Liunx获取信息帮助与man文档章节的划分

    首先要判断命令的类型,可用 type COMMAND 来判断命令 如果显示结果为(….是 shell内嵌)即为shell内嵌命令,如需获取帮助,使用 help COMMAND 即可; 下图的例子是pwd是shell内嵌命令 内部命令属于Shell的一部分,所以并没有单独对应的系统文件,只要Shell解释器被运行,内部指…

    2017-07-02
  • 文件权限的设置和文件的特殊权限及其命令使用

    1. linux的系统管理员很重要的任务就是管理自己服务器的文件,对于权限设置等级森严的linux文件系统,文件系统的访问权限管理自然也是linux管理员必不可少的一项技能。 在linux中文件的基本权限中:被分为三大项:文件拥有者,文件拥有组,其他人。 每一项中,用三位八进制的数字来代表文件是否可读,是否可写,是否可执行。并根据用户不同可以设置不同的uma…

    Linux干货 2016-08-05
  • 磁盘配额

        磁盘配额可以限制指定账户能够使用的磁盘空间,这样可以避免因某个用户的过度使用磁盘空间造成其他用户无法正常工作甚至影响系统运行。在服务器管理中此功能非常重要,但对单机用户来说意义不大。 配置配额系统:     综述:     &nbs…

    Linux干货 2016-09-06
  • shell之变量总结

    1 什么是shell变量 按照定义来说,变量是存储设备中的一些可读写的存储单元.变量可以定制用户本身的工作环境。使用变量可以保存有用信息,使系统获知用户相关设置。变量也用 于保存暂时信息。例如:一变量为EDITOR,系统中有许多编辑工具,但哪一个适用于系统呢?将此编辑器名称赋给EDITOR,这样,在使用cron或其 他需要编辑器的应用时,这就是你将一直使用的…

    Linux干货 2016-08-15
  • dd命令详解及实战应用

    dd简述 dd在linux中是 一个强大的命令,常用于拷贝大量数据,测试读写效能 ,清空硬盘数据(慎用),不仅如此,由于dd 允许以二进制方式读写,所以特别适合在原始设备上输入、输出。 dd与cp的区别 这里有必要说明一下,两个命令都可用于拷贝,但是级别却完全不一样:cp是文件级别的读取方式,而dd更底层,可以数据块级别去读取硬盘,由此可看出在效率…

    Linux干货 2017-04-04
  • 第三周博客作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [root@localhost ~]# who (unknown) :0           2016-12-15 2…

    Linux干货 2016-12-20