前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL 常用基础知识,多学一门技能,不求人

MySQL 常用基础知识,多学一门技能,不求人

作者头像
微芒不朽
发布2022-09-13 09:57:40
4660
发布2022-09-13 09:57:40
举报
文章被收录于专栏:前端进阶-詹躲躲

常用数据库操作

创建数据库

代码语言:javascript
复制
CREATE DATABASE 数据库名;

查看现有数据库

代码语言:javascript
复制
show databases;

使用数据库

代码语言:javascript
复制
use 数据库名;

查看表数据

代码语言:javascript
复制
show tables;

删除数据库

代码语言:javascript
复制
drop database 数据库名;

常用表的操作

创建一张表(字段名 字段类型(字段长度))

代码语言:javascript
复制
CREATE DATABASE 数据库名(firstname VARCHAR(20), lastname VARCHAR(35));

查看一张表

代码语言:javascript
复制
describe 表名;
DESC 表名;

修改表名

代码语言:javascript
复制
ALTER table 表名 RENAME TO 表名2;

删除表

代码语言:javascript
复制
drop TABLE 表名;

常用字段操作

字段的添加

代码语言:javascript
复制
ALTER TABLE 表名 ADD 字段名 VARCHAR(40);

指定位置添加字段

代码语言:javascript
复制
ALTER TABLE 表名 ADD 字段名 VARCHAR(40) AFTER 字段名1;
desc 表名;

删除字段

代码语言:javascript
复制
ALTER TABLE 表名 DROP 字段名;

数据的插入

代码语言:javascript
复制
INSERT INTO '表名' ('字段1', '字段2') VALUES ("内容1", "内容2");
数据查询

不加关键字的查询

无限制条件的查询

代码语言:javascript
复制
SELECT * FROM 表名;

查询指定列

代码语言:javascript
复制
SELECT 字段1, 字段2 FROM 表明;

排序查询(倒序),默认升序

代码语言:javascript
复制
SELECT * FROM 表名 ORDER BY 字段名 DESC;

根据条件查询

代码语言:javascript
复制
SELECT * FROM 表名 WHERE 字段=112;

多条件查询

代码语言:javascript
复制
SELECT * FROM 表名 WHERE 字段=112 or 字段=148;
SELECT * FROM 表名 WHERE country="USA" AND city="New York";
SELECT * FROM 表名 WHERE 字段 BETWEEN 1000 and 2000;
SELECT * FROM 表名 WHERE 字段 in (114, 151, 259);
### 查询包含Gift的字段
SELECT * FROM 表名 WHERE 字段 LIKE "%Gift%";
### 查询以Gift开头的
SELECT * FROM 表名 WHERE 字段 LIKE "Gift%";
### 查询以Gift结尾的
SELECT * FROM 表名 WHERE 字段 LIKE "%Gift";

连接查询

内连接

代码语言:javascript
复制
SELECT 字段名1, 字段名2 FROM 表名 重命名表 INNER JOIN 表名2 重命名表2 on 重命名表.'name'=重命名表2.'name';

左连接

代码语言:javascript
复制
SELECT 重命名表.字段名1, 重命名表.字段名2 重命名表2.字段名3 重命名表2.字段名4 FROM 表名 重命名表 left JOIN 表名2 重命名表2 on 重命名表.'name'=重命名表2.'name' where 重命名表2.字段名4 is NULL;

右连接

代码语言:javascript
复制
SELECT 重命名表.字段名1, 重命名表.字段名2 重命名表2.字段名3 重命名表2.字段名4 FROM 表名 重命名表 right JOIN 表名2 重命名表2 on 重命名表.'name'=重命名表2.'name';

交叉连接

代码语言:javascript
复制
SELECT 字段 FROM 表1 CROSS JOIN 表2;

查询统计某个字段(为具体数值时)的数据个数

代码语言:javascript
复制
SELECT count(*) FROM 表名 WHERE conditions

查询某一字段不同值的个数

代码语言:javascript
复制
SELECT 
字段1, sum(case when 字段2=具体数值/内容 then 1 else 0 end) as 0, sum(case when 字段2=具体数值/内容2 then 1 else 0 end) as 1 
FROM 表名
GROUP BY 字段1

创建数据库

代码语言:javascript
复制
CREATE DATABASE mydata;

连接到指定的数据库

代码语言:javascript
复制
USE mydata;

删除数据库

代码语言:javascript
复制
DROP DATABASE mydata;

创建表

代码语言:javascript
复制
CREATE TABLE student(                                   nt(

id INT,### 整型

studentName VARCHAR(20),### 可变长字符类型

grade DECIMAL(10,2)### 有效长度为10,保留两位小数

)DEFAULT CHARSET=utf8;### 设置编码集为utf8

向表中插入记录

代码语言:javascript
复制
INSERT INTO student(id,studentName,grade) VALUES (32,"张三",70);

查询表中记录

代码语言:javascript
复制
SELECT *FROM student;

SELECT id,studentName,grade FROM student;

删除表

代码语言:javascript
复制
DROP TABLE student;

修改表中记录

代码语言:javascript
复制
UPDATE student SET studentName="李四" WHERE id=32;

删除表中记录

代码语言:javascript
复制
DELETE  FROM student WHERE id=32;

复制表

代码语言:javascript
复制
CREATE TABLE mystu SELECT * FROM student;

复制表,但加上为假的条件,只复制表结构不复制记录

代码语言:javascript
复制
CREATE TABLE mystu1 SELECT * FROM student WHERE 1=0;

添加新列

代码语言:javascript
复制
ALTER TABLE student ADD sex VARCHAR(10);

修改列名

代码语言:javascript
复制
ALTER TABLE student CHANGE sex birthday VARCHAR(30);

删除列

代码语言:javascript
复制
ALTER TABLE student DROP COLUMN birthday;

一、实体完整性:保证每行所代表的实体能相互区别,不能存在两条一模一样的记录。

实现方法:

主键约束:主键列不能为空,也不能重复。一个表中只能有一个主键。

唯一约束:是指给定列的所有值必须唯一,该列在表中每一行的值必须唯一。

它和主键约束的区别在于该列可以为空,并且可以在一张表中给多个列设置唯一约束。

二、域完整性:保证指定列的数据的有效性,是指列的输入有效性

实现方法

非空约束:NotNull

默认约束:Default

检查约束:Check(MySQL不支持)

三、外键和外键约束:

外键:是指从表的某列与主表的某列存在依附关系

外键约束:是指在主键关联的外键上强制加上一个约束,如果违反该约束,则不允许该条数据的修改。

注意:没有建立外键约束不等于没有外键

[sql]

代码语言:javascript
复制
CREATE TABLE person(

### 设置id列为主键列:不能为null,同时不能重复,AUTO_INCREMENT表示设置主键列为自动增长列

id INT PRIMARY KEY AUTO_INCREMENT,

NAME VARCHAR(40) UNIQUE, ### 姓名列不能重复

sex VARCHAR(40) NOT NULL ### 增加非空约束

)AUTO_INCREMENT=1000;### 列号起始为1000

一旦设置了自动增长列,该列的数据就可以由DBMS来维护

代码语言:javascript
复制
INSERT INTO person(NAME,sex) VALUES("张三","男");

INSERT INTO person(NAME,sex) VALUES("李四","男");

INSERT INTO person(NAME,sex) VALUES("王五","男");

增加默认约束,增加默认约束的列,在不插入数据时,默认为指定值,一般在建表时就加上

代码语言:javascript
复制
ALTER TABLE person ADD contry VARCHAR(40)DEFAULT "中国";

CREATE TABLE computer(

id INT PRIMARY KEY AUTO_INCREMENT,

computerType VARCHAR(30),

personid INT ,

CONSTRAINT fk_com FOREIGN KEY(personid) REFERENCES person(id)

)ENGINE=INNODB;

增加外键约束,用从表的外键列去关联主表的主键列。

也就是说从表的外键列出现的内容必须是主表主键列出现的内容。

代码语言:javascript
复制
ALTER TABLE computer ADD CONSTRAINT fk_com FOREIGN KEY(personid) REFERENCES person(id);

开启事务

代码语言:javascript
复制
START TRANSACTION;

DELETE FROM person;

提交事务,若执行了提交事务,则将现在所有的操作更新数据库,数据不能回滚

代码语言:javascript
复制
COMMIT;

回滚事务

代码语言:javascript
复制
ROLLBACK;

DELETE 会记录日志,意味着删除后的数据还可以恢复,但是效率低。

TRUNCATE不会记录日志,删除后的数据不能恢复,但是效率高。

删除所有记录,记录不能回滚

代码语言:javascript
复制
TRUNCATE TABLE dog;

concat 连接字符串

代码语言:javascript
复制
UPDATE person SET NAME=CONCAT(NAME,"你好");

给表和列取别名

代码语言:javascript
复制
SELECT p.NAME 姓名 FROM person p;

手动建立product表,并添加如下数据

代码语言:javascript
复制
INSERT INTO product(productName,price,number,factory)VALUES("电视机",1500,2,"绵阳");

INSERT INTO product(productName,price,number,factory)VALUES("电冰箱",2500,1,NULL);

INSERT INTO product(productName,price,number,factory)VALUES("毛毯",150,5,"内蒙古");

INSERT INTO product(productName,price,number,factory)VALUES("苹果",5,6,NULL);

INSERT INTO product(productName,price,number,factory)VALUES("板凳",150,10,"成都");

INSERT INTO product(productName,price,number,factory)VALUES("芒果",10,8,"海南");

查询时可以加入计算

代码语言:javascript
复制
SELECT p.*,price*number totalprice FROM product p

去除重复的记录

代码语言:javascript
复制
SELECT DISTINCT price FROM product;

返回指定行数的记录,第一个参数表示从第几行开始(第一行为0),第二个参数表示显示几条记录

代码语言:javascript
复制
SELECT * FROM product LIMIT 1,3

查询条件为复合条件时,and 连接表示并且;or连接表示或者,between...and连接表示在...之间

代码语言:javascript
复制
SELECT * FROM product WHERE price>1000 AND factory="绵阳"

SELECT * FROM product WHERE price>1000 OR factory="绵阳"

SELECT * FROM product WHERE price BETWEEN 100 AND 2000

查询id为3和5的商品(IN的用法)

代码语言:javascript
复制
SELECT * FROM product WHERE id IN(3,5);

查询id不为3和5的商品(NOT IN的用法)

代码语言:javascript
复制
SELECT * FROM product WHERE id NOT IN(3,5);

模糊查询

“-”通配符 _表示任何单个字符,“%”表示包含零个或多个任意字符

代码语言:javascript
复制
SELECT * FROM product WHERE productName LIKE "%电%";

### 查询厂家为null 的商品
```sql
SELECT * FROM product WHERE factory IS NULL

按商品单价排序显示 .ORDER BY price,id表示先按price排序,price相同时再按id排序

代码语言:javascript
复制
SELECT * FROM product ORDER BY price,id;### 升序

SELECT * FROM product ORDER BY price DESC,id DESC;### 降序

学习地址:MySQL常用基础语句

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-08-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 叫我詹躲躲 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 常用数据库操作
    • 创建数据库
      • 查看现有数据库
        • 使用数据库
          • 查看表数据
            • 删除数据库
              • 常用表的操作
                • 创建一张表(字段名 字段类型(字段长度))
                  • 查看一张表
                    • 修改表名
                      • 删除表
                        • 常用字段操作
                          • 字段的添加
                            • 指定位置添加字段
                              • 删除字段
                                • 数据的插入
                                  • 不加关键字的查询
                                    • 无限制条件的查询
                                      • 查询指定列
                                        • 排序查询(倒序),默认升序
                                          • 根据条件查询
                                            • 多条件查询
                                              • 连接查询
                                                • 内连接
                                                  • 左连接
                                                    • 右连接
                                                      • 交叉连接
                                                        • 查询统计某个字段(为具体数值时)的数据个数
                                                          • 查询某一字段不同值的个数
                                                            • 创建数据库
                                                              • 连接到指定的数据库
                                                                • 删除数据库
                                                                  • 创建表
                                                                    • 向表中插入记录
                                                                      • 查询表中记录
                                                                        • 删除表
                                                                          • 修改表中记录
                                                                            • 删除表中记录
                                                                              • 复制表
                                                                                • 复制表,但加上为假的条件,只复制表结构不复制记录
                                                                                  • 添加新列
                                                                                    • 修改列名
                                                                                      • 删除列
                                                                                        • 一旦设置了自动增长列,该列的数据就可以由DBMS来维护
                                                                                          • 增加默认约束,增加默认约束的列,在不插入数据时,默认为指定值,一般在建表时就加上
                                                                                            • 增加外键约束,用从表的外键列去关联主表的主键列。
                                                                                              • 也就是说从表的外键列出现的内容必须是主表主键列出现的内容。
                                                                                                • 开启事务
                                                                                                  • 提交事务,若执行了提交事务,则将现在所有的操作更新数据库,数据不能回滚
                                                                                                    • 回滚事务
                                                                                                      • DELETE 会记录日志,意味着删除后的数据还可以恢复,但是效率低。
                                                                                                        • TRUNCATE不会记录日志,删除后的数据不能恢复,但是效率高。
                                                                                                          • 删除所有记录,记录不能回滚
                                                                                                            • concat 连接字符串
                                                                                                              • 给表和列取别名
                                                                                                                • 手动建立product表,并添加如下数据
                                                                                                                  • 查询时可以加入计算
                                                                                                                    • 去除重复的记录
                                                                                                                      • 返回指定行数的记录,第一个参数表示从第几行开始(第一行为0),第二个参数表示显示几条记录
                                                                                                                        • 查询条件为复合条件时,and 连接表示并且;or连接表示或者,between...and连接表示在...之间
                                                                                                                          • 查询id为3和5的商品(IN的用法)
                                                                                                                            • 查询id不为3和5的商品(NOT IN的用法)
                                                                                                                              • 模糊查询
                                                                                                                                • “-”通配符 _表示任何单个字符,“%”表示包含零个或多个任意字符
                                                                                                                                  • 按商品单价排序显示 .ORDER BY price,id表示先按price排序,price相同时再按id排序
                                                                                                                                  相关产品与服务
                                                                                                                                  云数据库 SQL Server
                                                                                                                                  腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
                                                                                                                                  领券
                                                                                                                                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档