各位用户为了找寻关于MySql新手入门的基本操作汇总的资料费劲了很多周折。这里教程网为您整理了关于MySql新手入门的基本操作汇总的相关资料,仅供查阅,以下为您介绍关于MySql新手入门的基本操作汇总的详细内容
库操作
查询
1.SHOW DATABASE; ----查询所有数据库
2.SHOW CREATE DATABASE 数据库名称; ----查询某个数据库的创建模式
3.SHOW CREATE DATABASE xxx; ----查询xxx数据库的创建模式
创建
1.CREATE DATABASE 数据库名称; ----创建数据库 注:不可以创建一个已经存在的数据库
2.CREATE DATABASE IS NOT EXISTS 数据库名称; ----判断数据库是否存在,不存在就创建
3.CREATE DATABASE 数据库名称 CHARACTER SET 字符集名称; ----创建数据库并指定字符集,一般使用utf-8
修改
ALTER DATABASE 数据库名称 CHARACTER SET 字符集名称; ----修改数据库的字符集
删除
1.DROP DATABASE 数据库名称; ----删除数据库
2.DROP DATABASE IS EXISTS 数据库名称; ----先判断是否存在再删除
使用
SELETE DATABASE (); ----查询当前正在使用的数据库
USE 数据库名称; ----使用指定数据库
表结构
表的查询
1.SHOW TABLES; ----查询数据库中所有的表
2.DESC 表名; ----查看指定表的结构
3.SHOW TABLE STATUS FROM 库名 LIKE ‘表名'; ----查询表字符集(like没有特别情况下和"="号是等价的)
创建表
CREATE TABLE 表名( 列名1 数据类型1 约束, 列名2 数据类型2 约束, … 列名n 数据类型n约束 );
int:整数类型
age intdouble:小数类型
score double(5,2) price doubledate:日期,只包含年月日 yyyy-MM-dd
datetime:日期,包含年月日时分秒 yyyy-MM-dd HH:mm:ss
timestamp:时间戳类型 包含年月日时分秒 yyyy-MM-dd HH:mm:ss
如果将来不给这个字段赋值,或赋值为null,则默认使用当前的系统时间,来自动赋值varchar:字符串
name varchar(20):姓名最大20个字符 zhangsan 8个字符 张三 2个字符CREATE TABLE 要创建的表名 LIKE 被复制的表名; ----复制表
修改表
1.ALTER TABLE 表名 RENAME TO 新的表名; ----修改表名
2.ALTER TABLE 表名 CHARACTER SET 字符集名称; ----修改表的字符集
**3.**ALTER TABLE 表名 ADD 列名 数据类型; ----添加新的一列
4.ALTER TABLE 表名 MODIFY 列名 新列名 新数据类型; ----修改新列名和数据类型
表中删除操作
1.DROP TABLE 表名; ----删除表
2.ALTER TABLE 表名 DROP 列名; ----删除列
表中添加数据-INSERT语句
1.INSERT INTO 表名(列名1,列名2,…) VALUES (值1,值2,…); ----向表中添 加数据
2.SELECT * FROM product; ----查看表中所有数据
3.INSERT INTO 表名 VALUES (值1,值2,值3,…); ----默认给全部列添加数据
4.INSERT INTO 表名 VALUES (值1,值2,值3,…),(值1,值2,值3,…),(值1,值2,值3,…); ----批量添加数据
注:
列名和值的数量以及数据类型要对应 除了数字类型,其他数据类型的数据都需要加引号(单引双引都可以,推荐单引)表中修改数据-updata
UPDATE 表名 SET 列名1 = 值1,列名2 = 值2,… [where 条件]; 注:
修改语句中必须加上条件,如果不加条件则修改所有数据表中删除数据-delete
DELETE FROM 表名 [WHERE 条件];
注:
和修改数据是一样的单表查询
查询语法:
select 字段列表 from 表名列表 where 条件列表 group by 分组字段 having 分组之后的条件 order by 排序 limit 分页限定
SELECT 列名1,列名2,… FROM 表名; ----多个字段查询
SELECT DISTINCT 列名1,列名2,… FROM 表名; ----去重查询,但只有所查询列都重复才会去重
SELECT 列名1 运算符(+ - * /) 列名2 FROM 表名; ----四则运算
SELECT 列名1,列名2,… AS 别名 FROM 表名; ----as用来起别名,简单易懂
条件查询
条件分类
聚合函数
函数名称及其功能
聚合函数语法
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23-- 标准语法
SELECT
函数名(列名)
FROM
表名 [
WHERE
条件];
-- 计算product表中总记录条数
SELECT
COUNT
(*)
FROM
product;
-- 获取最高价格
SELECT
MAX
(price)
FROM
product;
-- 获取最高价格的商品名称
SELECT
NAME
,price
FROM
product
WHERE
price = (
SELECT
MAX
(price)
FROM
product);
-- 获取最低库存
SELECT
MIN
(stock)
FROM
product;
-- 获取最低库存的商品名称
SELECT
NAME
,stock
FROM
product
WHERE
stock = (
SELECT
MIN
(stock)
FROM
product);
-- 获取总库存数量
SELECT
SUM
(stock)
FROM
product;
-- 获取品牌为苹果的总库存数量
SELECT
SUM
(stock)
FROM
product
WHERE
brand=
'苹果'
;
-- 获取品牌为小米的平均商品价格
SELECT
AVG
(price)
FROM
product
WHERE
brand=
'小米'
;
排序查询
分类
- 注:多个排序条件,当前边的条件值一样时,才会判断第二条件
排序语法
? 1 2 3 4 5-- 标准语法
SELECT
列名
FROM
表名 [
WHERE
条件]
ORDER
BY
列名1 排序方式1,列名2 排序方式2;
-- 按照库存升序排序
SELECT
*
FROM
product
ORDER
BY
stock
ASC
;
分组查询
? 1 2-- 标准语法
SELECT
列名
FROM
表名 [
WHERE
条件]
GROUP
BY
分组列名 [
HAVING
分组后条件过滤] [
ORDER
BY
排序列名 排序方式];
分页查询
? 1 2 3-- 标准语法
SELECT
列名
FROM
表名 [
WHERE
条件]
GROUP
BY
分组列名 [
HAVING
分组后条件过滤] [
ORDER
BY
排序列名 排序方式] LIMIT 开始索引,查询条数;
-- 公式:开始索引 = (当前页码-1) * 每页显示的条数
约束
1.约束的概念和分类
约束的概念
对表中的数据进行限定,保证数据的正确性、有效性、完整性!约束的分类
2.主键约束
主键约束特点
主键约束包含:非空和唯一两个功能 一张表只能有一个列作为主键 主键一般用于表中数据的唯一标识建表时添加主键约束
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23-- 标准语法
CREATE
TABLE
表名(
列名 数据类型
PRIMARY
KEY
,
列名 数据类型,
...
);
-- 创建student表
CREATE
TABLE
student(
id
INT
PRIMARY
KEY
-- 给id添加主键约束
);
-- 添加数据
INSERT
INTO
student
VALUES
(1),(2);
-- 主键默认唯一,添加重复数据,会报错
INSERT
INTO
student
VALUES
(2);
-- 主键默认非空,不能添加null的数据
INSERT
INTO
student
VALUES
(
NULL
);
-- 查询student表
SELECT
*
FROM
student;
-- 查询student表详细
DESC
student;
删除主键
? 1 2 3 4 5-- 标准语法
ALTER
TABLE
表名
DROP
PRIMARY
KEY
;
-- 删除主键
ALTER
TABLE
student
DROP
PRIMARY
KEY
;
建表后单独添加主键
? 1 2 3 4 5-- 标准语法
ALTER
TABLE
表名
MODIFY
列名 数据类型
PRIMARY
KEY
;
-- 添加主键
ALTER
TABLE
student
MODIFY
id
INT
PRIMARY
KEY
;
3.主键自动增长约束
建表时添加主键自增约束
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21-- 标准语法
CREATE
TABLE
表名(
列名 数据类型
PRIMARY
KEY
AUTO_INCREMENT,
列名 数据类型,
...
);
-- 创建student2表
CREATE
TABLE
student2(
id
INT
PRIMARY
KEY
AUTO_INCREMENT
-- 给id添加主键自增约束
);
-- 添加数据
INSERT
INTO
student2
VALUES
(1),(2);
-- 添加null值,会自动增长
INSERT
INTO
student2
VALUES
(
NULL
),(
NULL
);
-- 查询student2表
SELECT
*
FROM
student2;
-- student2表详细
DESC
student2;
删除自动增长
? 1 2 3 4 5-- 标准语法
ALTER
TABLE
表名
MODIFY
列名 数据类型;
-- 删除自动增长
ALTER
TABLE
student2
MODIFY
id
INT
;
建表后单独添加自动增长
? 1 2 3 4 5-- 标准语法
ALTER
TABLE
表名
MODIFY
列名 数据类型 AUTO_INCREMENT;
-- 添加自动增长
ALTER
TABLE
student2
MODIFY
id
INT
AUTO_INCREMENT;
4.唯一约束
建表时添加唯一约束
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22-- 标准语法
CREATE
TABLE
表名(
列名 数据类型
UNIQUE
,
列名 数据类型,
...
);
-- 创建student3表
CREATE
TABLE
student3(
id
INT
PRIMARY
KEY
AUTO_INCREMENT,
tel
VARCHAR
(20)
UNIQUE
-- 给tel列添加唯一约束
);
-- 添加数据
INSERT
INTO
student3
VALUES
(
NULL
,
'18888888888'
),(
NULL
,
'18666666666'
);
-- 添加重复数据,会报错
INSERT
INTO
student3
VALUES
(
NULL
,
'18666666666'
);
-- 查询student3数据表
SELECT
*
FROM
student3;
-- student3表详细
DESC
student3;
删除唯一约束
? 1 2 3 4 5-- 标准语法
ALTER
TABLE
表名
DROP
INDEX
列名;
-- 删除唯一约束
ALTER
TABLE
student3
DROP
INDEX
tel;
建表后单独添加唯一约束
? 1 2 3 4 5-- 标准语法
ALTER
TABLE
表名
MODIFY
列名 数据类型
UNIQUE
;
-- 添加唯一约束
ALTER
TABLE
student3
MODIFY
tel
VARCHAR
(20)
UNIQUE
;
5.非空约束
建表时添加非空约束
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17-- 标准语法
CREATE
TABLE
表名(
列名 数据类型
NOT
NULL
,
列名 数据类型,
...
);
-- 创建student4表
CREATE
TABLE
student4(
id
INT
PRIMARY
KEY
AUTO_INCREMENT,
NAME
VARCHAR
(20)
NOT
NULL
-- 给name添加非空约束
);
-- 添加数据
INSERT
INTO
student4
VALUES
(
NULL
,
'张三'
),(
NULL
,
'李四'
);
-- 添加null值,会报错
INSERT
INTO
student4
VALUES
(
NULL
,
NULL
);
删除非空约束
? 1 2 3 4 5-- 标准语法
ALTER
TABLE
表名
MODIFY
列名 数据类型;
-- 删除非空约束
ALTER
TABLE
student4
MODIFY
NAME
VARCHAR
(20);
建表后单独添加非空约束
? 1 2 3 4 5-- 标准语法
ALTER
TABLE
表名
MODIFY
列名 数据类型
NOT
NULL
-- 添加非空约束
ALTER
TABLE
student4
MODIFY
NAME
VARCHAR
(20)
NOT
NULL
;
外键约束
外键约束的格式(一般在创建表的最后写这些)
CONSTRAINT 外键名 FOREIGN KEY (本表外键列名) REFERENCES 主表名(主表主键列名)
总结
到此这篇关于MySql新手入门的基本操作汇总的文章就介绍到这了,更多相关MySql基本操作内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
原文链接:https://blog.csdn.net/Numberjava/article/details/116641280