mysql最大述_MySQL 简述

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’;

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

* 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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值