MySQL语句1

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: MySQL语句1

SQL语句以分号结尾 ;

简单的查询语句(DQL)

select 字段名1,字段名2,字段名3…from 表名;

查询的时候可以用于数学运算:select 字段名1,字段名2,from 表名

给要进行数学计算的字段名重命名:select,字段名12 as’重命名’ from 表明; 数据库里字符串用单引号,不用双引号

对数据库的操作:

Create:创建 show create database 名字;

创建数据库语句可以加 if 判断语句 :create database if not exists 名称;如果有这个名字的数据库就不会创建;

创建数据库指定字符集:create database 名字 character set gbk;

create database if not exists 要创建的数据库名称 character set gbk; 把上边两种创建整合先判断是否存在,不存在的话在创建并指定字符集;

Retrieve:查询

查询所有数据库名称:show databases; 有个s 查询有创建没有

查询某个字符集:show create database 数据库名称;

Update:修改

修改数据库的字符集: alter database 数据库名称 character set 字符集名称;

Delete:删除

删除数据库:drop database 数据库名称;

当数据库存在在删除:drop database if exists 数据名称;

使用数据库 查询某个数据库的字符集 show create database 数据库名;

查询当前正在使用的数据库名:select database(); 使用的数据库 use 数据库名;

操作库

C(create) 创建

创建表语法:create table 表名(

列名1 数据类型1,

列名2 数据类型2,

…最后一列不需要加逗号

);

复制表:create table 表名 like 被复制的表名;

mysql> create table stubent( //创建学生表

-> id int, //学生编号
-> name varchar(32), //学生名字
-> age int, //学生年龄
-> score double(4,1), //学生
-> birthday date, //出生日期
-> insert_time timestamp //记录信息的时间
-> );

数据库数据类型:

字符串类型:varchar 字符串 varchar(20)这个字符串里有20个字符
R(retrieve)查询
查询某个数据库的表名称:show tables;
查询表结构:desc 表名;

U(update)修改

修改表名:alter table 表名 rename to 新的表名;

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

添加一列:alter table 表名 add 列名 数据类型;

修改列名称 类型:alter table 表名 change 列名 新列名 新的数据类型;

修改类型:alter table 表名 modify 列名 新数据类型;

删除列:alter table 表名 drop 列名;

D(delete)删除

删除: drop table 表名 先判断有没有表在删除 drop table if exists 表名

DML增删改表中的数据

添加数据:insert into 表名(列名1,列名2…)values(值1,值2…);

注意:不定义列名,则默认给所有进行赋值

删除数据:delete from 表名 [whrtr 条件] DELETE FROM student;删除所有 TRUNCATE TABLE 表名; 先删除表,在创建一张一摸一样的

修改数据:update 表名 set 列名1 = 值1,列名2 = 值2…where 条件;

DQL 查询表中的记录

查询所有:select * from 表名;

1查询的语法:select


                           字段名称
                  from
                            表名列表
                  where
                            条件列表
                  group by
                             分组字段
                  having
                             分组之后的条件
                  order by
                             排序
                  limit
                              分页限定


2基础查询

列名 数据类型;

多个字段查询:select 字段名1,字段名2…from 表名;

去除重复的结果集(查询结果):SELECT DISINCT 列名 FROM 表名;

查询谁 xxx的这种两个内容:SELECT NAME , 列名1,列名2 FROM 表名;

列值的计算包含NULL值计算:SELECT NAME 列名1,列名2,列名1+IFNULL(列名2,0) FROM 表名;

起别名:SELECT NAME 列名1,列名2,列名1+IFNULL(列名2,0) AS 名字 FROM 表名;

3条件查询

where子句后跟条件

格式:SELECT * FROM 表名 WHERE 要进行比较的列名 运算符 条件;

运算符:> < <= >= = <>(<>这个表示不等于,在MYSQL中也可以使用 != 但是不可以使用==)

BETWEEN 包括 age >=20 AND age<=30; 等于 BETWEEN 20 AND 30;

and  && 与         or  ||  或         not  !  非


模糊查询:LIKE 占位符:_:表示一个字符 %:表示多个字符 SELECT * FROM 表名 WHERE 表名 LIKE ‘马%’; 查询带有马字

SELECT * FROM 表名 WHERE 表名 LIKE ‘_化%’; 查询中间有化字的

排序查询:

语法:order by 排序字段1 排序方式1,排序字段2 排序方式2; 如果前边的条件值一样时,才会判断第二条件;

单个排序方式: ASC:升序

DESC 降序

聚合函数:将一列数据作为一个整体,进行纵向计算 聚合函数的计算排除 空 解决方案: IFNULL函数

语法:count:计算个数 SELECT COUNT(列名) FROM 表名;

max:计算最大 SELECT MAX(列名) FROM 表名;

min:计算最小 SELECT MIN(列名) FROM 表名;

sum:计算和 SELECT SUM(列名) FROM 表名;

avg:计算平均值 SELECT AVG(列名) FROM 表名;

分组查询:

语法:group by 分组字段; SELECT sex,AVG(math) FROM student GROUP BY sex; 意思是查询男女同学的数学平均数

注意:分组之后查询的字段:分组字段,聚合函数

where 和 having where在分组之前进行限定,如果不满足条件则不参与分组 不能进行聚合函数的判断

having在分组之后进行限定,如果不满足结果,则不会被查询出来 可以进行聚合函数的判断

分页查询:

语法:limit 开始的索引 每页查询的条数; SELECT * FROM student LIMIT 0,3; 看前三个 后边的3是每页显示3条记录。

公式:开始的索引 = (当前的页码 减 1)* 每页显示的条数

分页操作是一个方言: limit只能在MYSQL里面用。

表的约束:

对表中的数据进行限定,保证数据的正确性,有效性和完整性 把约束放在后面就添加成功

分类:主键约束:primary key 含义:非空且唯一 一张表只能有一个字段为主键,主键就是表中记录的唯一表识

创建时添加 删除主键约束:ALTER TABLE 名 DROP PRIMARY KEY;

非空约束:not null 创建表添加约束 可创建之后添加

唯一约束:unique 不许重复 删除约束:ALTER TABLE 表名 DROP INDEX 列名;

       外键约束:foreign key 
              语法: create table 表名(
                                    ..........
                                  外键列
                                  constraint 外键名称 foreign (外键名称) references 主表名称(主表列名称)
                               );
         删除外键:ALTER TABLE 表名 DROP FOREIGN KEY 外键名;

创建表之后添加外键:ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN (dep_id) REFERENCES department(id)

级联操作:联动操作

添加级联操作:

语法:ALTER TABLE 表名 ADD CONSTRAINT 外键名称

FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称) ON UPDATE CASCADE ON DELETE CASCADE;

分类:级联更新:ON UPDATE CASCADE

级联删除:ON DELETE CASCADE

CREATE TABLE department(
id INT PRIMARY KEY AUTO_INCREMENT,
dep_name VARCHAR(20),
dep_locationion VARCHAR(20)
);
CREATE TABLE employee(
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(20),
age INT,
dep_id INT,
CONSTRAINT emp_dept_fk FOREIGN KEY(dep_id) REFERENCES deparment(id)
);
INSERT INTO department VALUES(NULL,'研发部','广州'),(NULL,'销售部','深圳');
INSERT INTO employee(NAME,age,dep_id) VALUES('张三',20,1);
INSERT INTO employee(NAME,age,dep_id) VALUES('李四',21,1);
INSERT INTO employee(NAME,age,dep_id) VALUES('王五',22,1);
INSERT INTO employee(NAME,age,dep_id) VALUES('老王',23,2);
INSERT INTO employee(NAME,age,dep_id) VALUES('大王',24,2);
INSERT INTO employee(NAME,age,dep_id) VALUES('小王',25,2);
SELECT * FROM employee;
SELECT * FROM department;


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4月前
|
存储 SQL 关系型数据库
mysql的基本语句
mysql的基本语句
|
6月前
|
SQL 关系型数据库 MySQL
2. MySQL语句
2. MySQL语句
|
SQL 关系型数据库 MySQL
MySQL常用语句
MySQL常用语句
221 0
|
6月前
|
SQL 存储 关系型数据库
MySQL特点和基本语句
MySQL特点和基本语句
65 0
|
关系型数据库 MySQL
最常用MySQL语句
最常用MySQL语句
77 1
|
12月前
|
关系型数据库 MySQL
MySQL8 with语句
MySQL8 with语句
134 0
|
SQL 关系型数据库 MySQL
mysql的语句详解
mysql的语句详解
78 1
|
关系型数据库 MySQL 数据库
MySQL—常用语句汇总
MySQL—常用语句汇总
57 0
|
SQL 存储 关系型数据库
MySQL实用语句及小技巧
前言 我们在之前已经过了一遍sql的基本操作, 那么那些基本操作如何使用、如何排列才能最大程度发挥服务器的性能呢?如何才能把他们连接起来成为能为我们所服务的强大数据库系统呢? 本期我们就将引入一些配合sql核心语句的使用技巧和一些灵活的理解
|
关系型数据库 MySQL 数据库
常用的MySQL语句
常用的MySQL语句
87 0
常用的MySQL语句