学习目标:
掌握基础的MySql的使用
学习目录:
- 基本概念
- 安装卸载配置 登录退出 目录结构
- SQL与其基本语法
- 约束
一,基础概念
- 数据库的英文单词 DataBase 简称 DB
- 什么是数据库?
- 用于存储数据的仓库
- 特点:
- 持久化存储数据的。其实数据库就是一个文件系统
- 方便存储和管理数据
- 使用了统一的方式操作数据库
二, 登录 登出
- MySql的登录(三种方法)
- mysql -uroot -p密码
- mysql -hip -uroot -p链接目标的的密码 //hip--->host = ip
- mysql --host = ip --user=root --password=链接目标的的密码
- MySql的退出
- exit
- quit
三,SQL与其基本语法(内容较多)
- 什么是Sql
- Structured Query Language :结构化查询语言
- 其实就是定义了操作所有关系型数据库的规则。每种数据库操作的方式存在不一样的地方,称为“方言”
- 通用语法
- SQL语句可以单行或多行书写,以分号结尾。
- 可使用空格和缩进来增强语句的可读性。
- MySQL数据库的SQL语句不区分大小写,关键字建议使用大写。
- 注释方法
- 注释
- 单行注释 -- 注释内容 注意 :--后一定要有空格
- 单行注释 # 注释内容 注意 :#后不一定要有空格
- 多行注释:/* 注释内容*/
- 注释
- Sql分类
- DDL(Data Definition Language ):
- 数据定义语言用来定义数据库对象:数据库,表,列等。
- 关键字: create, drop,alter 等
- DML (Data Manipulation Language):
- 数据操作语言用来对数据库中表的数据进行增删改。
- 关键字: insert, delete, update 等
- DQL(Data Query Language ):
- 数据查询语言用来查询数据库中表的记录(数据)。
- 关键字: select,where等
- DCL(Data Control Language):
- 数据控制语言(了解)用来定义数据库的访问权限和安全级别,及创建用户。
- 关键字: GRANT,REVOKE等
- DDL(Data Definition Language ):
- 对数据库的操作数据库
- C(Create):创建创建数据库
- create database 数据库名称;
- 创建db4数据库判断是否存在
- create database if not exists 数据库名称;
- 创建数据库并制定字符集
- create database 数据库名称 character set 字符集名;
- 创建db4数据库判断是否存在,并制定字符及为gbk
- create database if not exists db4 character set gbk;
- 查询
- 查询所有数据库的名称:show databases;
- 查询某个数据库的创建语句:show create database 数据库名称;
-
U(Update):修改
- 修改数据库的字符集:alter database 数据库 character set 字符集名称
-
D(Delete)删除
- 删除 数据库
- drop database 数据库名称
- 判断存在再删除
- drop database if exists 数据库 名称
- 删除 数据库
-
使用数据库
- 查询当前正在使用的数据库名称:select database ();
- 使用数据库:use 数据库名称
- C(Create):创建创建数据库
- 对表的操作
- C(create):创建
-
create table 表名( 列名 数据类型1, 列名 数据类型2, : : 列名 数据类型n );
- 注意--最后一列,不需要加逗号
-
- 数据库的类型常用类型整理.
-
int:整数类型:age int,
-
double:小数类型:score double(5,2)
- date:日期,只包含年月日,yyy-MM-dd
-
datetime:日期,包含年月日时分秒yyyy-MM-ddHH:mm:ss
-
timestamp:时间错类型包含年月日时分秒yyyy-MM-dd
HH:mm:ss
*如果将来不给这个字段赋值,或赋值为null,则默认使用当前的系统时间,来自动赋值
-
varchar:字符串
name varchar(20):姓名最大20个字符
zhangsan8个字符张三2个字符
-
-
复制表:create table 表名 like 被复制的表名;
-
创建表实操:
CREATE TABLE student( id INT, NAME VARCHAR(32), age INT , score DOUBLE(4,1), birthday DATE );
- C(create):创建
-
R(Retrieve):查询
- 查询某个数据库的所有表名称
- show tables;
- 查询表结构
- desc 表名;
- 查询某个数据库的所有表名称
- U(Update):修改
- 修改表名
- alter table 表名 rename to 新的表名
- 修改字符集
- alter table 表名 character set 字符集名称
- 添加一列
- alter table 表名 add 列名 数据类型;
- 修改列 名称
- alter table 表名change 列名 新列别 新数据类型;
- alter table 表名 mofify 列名 新数据类型;
- 删除列
- alter table 表名drop 列名;
- 修改表名
- D(Delete):删除
- drop table 表名;
- drop table if exists 表名;
- 客户端图形化工具:SQL Yog
- 这个工具可以让我们更加便捷的管理我们的数据库但是在我们现阶段的学习当中建议不要过度的依赖防止我们对sql语句的不熟悉
-
DML:数据操作语言
- 增加数据
- 语法:
- - insert into 表名 (列名1,列名2,...列名n) values(值1,值2,...值n);
- 注意:
- 列名和值要一一对应。
- 如果表名后,不定义列名,则默认给所有列添加值
- insert into表名values(值1,值2....值n);
- 除了数字类型,其他类型需要使用引号(单双都可以引起来
- 语法:
-
删除数据
- 语法
- delete from 表名 [where 条件]
- 注意:
- 如果不加条件,则删除表中所有记录。
-
如果要删除所有记录delete from表名;--不推荐使用。有多少条记录就会执行多少次删除操作
-
TRUNCATE TABLE表名;--推荐使用,效率更高先删除表,然后再创建一张一样的表。
- 语法
- 修改数据
- 语法
- update 表名 set 列名1 = 值1,...[where 条件]
- 语法
- 增加数据
-
DQL查询
-
select * from 表名 查询语句
-
语法:
-
select 字段列表 from 表名列表 where 条件列表 group by 分组字段 having 分组之后的条件 order by 排序 limit 分页查询
- 基础查询
-
多个字段的查询
select字段名1,字段名2...from表名;
*注意:
*如果查询所有字段,则可以使用*来替代字段列表。
-
去除重复:
distinct
-
计算列
*一般可以使用四则运算计算一些列的值。(一般只会进行数值型的计算
* ifnull(表达式1,表达式2):null参与的运算,计算结果都为null*表达式1:哪个字段需要判断是否为null如果该字段为null后的替换值。
-
起别名:
as as也可以省略只留一个空格
-
一些基础的查询语句实操:
-
去除重复的结果集:
SELECT DISTINCT address FROM student ;
-
计算math和english分数之和
SELECT NAME, math, english, math + english FROM student;
-
如果有null参与的运算,计算结果都为null
SELECT NAME , math, english, math + IFNULL (english, 0) FROM student;
-
起别名
SELECT NAME , math, english,math + IFNULL (english,0) AS总分 FROM student;
-
- 条件查询 - where 子句后跟条件
-
like (模糊查询) - 占位符 - :单个任意字符 - %:多个任意字符
-查询姓马的有哪些? like SELECT * FROM student WHERE NAME LIKE, 马号' ; --查询姓名第二个字是化的人 SELECT * FROM student WHERE NAME LIKE”化号";| --查询姓名是3个字的人 SELECT * FROM student WHERE NAME LIKE'_' ; 查询姓名中包含德的人 SELECT * FROM student WHERE NAME LIKE '%德%' ;
-
--查询年龄22岁,19岁, 25岁的信息 SELECT * FROM studen WHERE age=22 OR age=19 OR age=25;
-
and 或 &&, between....and
--查询年龄天于等于20小于等于30 SELECT * FROM student WHERE age : >= 20 && age <=30; SELECT * FROM student WHERE age >= 20 AND age <=30; SELECT * FROM student WHERE age BETWEEN 20 AND 30;
- is null ,not 或!
--查询英语成绩为null SELECT * FROM student WHERE english = NULL; --不对的。null值不能使用= (!=) 判断 --正确 SELECT * FROM student WHERE english IS NULL; 查询英语成绩不为null SELECT * FROM student WHERE english IS NOT NULL;
-
运算符 - > , <, =, !=, <>(不等于)
查询年龄不等于20岁 SELECT*FROM student WHERE age != 20; SELECT*FROM student WHERE age <> 20;
-
-
-
四,约束
- 概念:对表中的数据进行限定,保证数据的正确性完整性和有效性
- 分类
-
主键:primary key
- 注意:
- 含义:非空且唯一
- 一张表只能有一个字段为主键
- 主键就时表中记录的唯一标识
- 创建表时添加主键约束
create table stu( id int primary key,-- 给id添加主键约束 name varchar(20) );
-
删除主键
--错误 alter table stu modify id int; ALTER TABLE stu DROP PRIMARY KEY;
-
创建完表之后添加主键
ALTER TABLE stu MODIFY id INT PRIMARY KEY;
-
自动增长--auto_increment
create table stu( id int primary key auto_ increment,-- 给id添加主键约束 name varchar(20) );
-
删除(添加) 自动增长
3.删除自动增长 ALTER TABLE stu MODIFY id INT ; 4.添加自动增长 ALTER TABLE stu MODIFY id INT AUTO INCREMENT ;
- 注意:
-
非空约束:not null
-
创建表数添加约束
CREATE TABLE stu( id INT, NAME VARCHAR(20) NOT NULL -- name为非空 );
-
创建表完后添加约束
ALTER TABLE stu MODIFY NAME VARCHAR(20) NOT NULL ;
-
删除name的非空约束
ALTER TABLE stu MODIFY NAME VARCHAR(20) ;
-
-
唯一约束:unique
-
- 注意:
- 唯一约束可以有null值,但只有一条可以为null
- 在 创建表时,条件唯一约束
CREATE TABLE stu( id INT, phone_ number VARCHAR(20) UNIQUE --手机号 );
- 删除唯一约束
ALTER TABLE stu DROP INDEX phone_ number ;
- 在表创建完后,添加唯一约束
ALTER TABLE stu MODIFY phone_ number VARCHAR(20) UNIQUE;
- 注意:
-
外键约束:foreign key
- 在创建表时可以添加外键
- 语法:
create table表名( ... 外键列 constraint 外键名称 foreign key (外键列名称) references 主表名称(主表列名称)| );
- 语法:
- 删除外键
ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;
- 创建表后,添加外键
ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称);
- 级联操作
- 添加级联操作
ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称) ON UPDATE CASCADE ON DELETE CASCADE
- 分类
- 级联更新: ON UPDATE CASCADE
- 级联删除: ON
DELETE CASCADE
- 添加级联操作
- 在创建表时可以添加外键
-
五,总结
以上就是今天要讲的内容,本文仅仅简单介绍了MySql的基本使用,能够让我们比较容易的上手一些简单的MySql语句,希望这篇文章能够帮到你哟!