MySQL基础

SQL:Structured Query Language,是结构化查询语言,用于管理关系数据库管理系统。
SQL作用:访问和处理数据库,包括数据插入、查询、更新和删除。
结构化查询语言SQL包括:数据定义语言(DDL),数据查询语言(DQL),数据操纵语言(DML),数据控制语言(DCL)

以下记录一些MySQL基本操作和数据类型以便查阅方便。

一、基本操作

 1.数据定义语言(DDL)

用于定义数据库中表、字段、索引等对象的结构和属性的语言。

#1数据定义语言(DDL)

#1.1数据库
#1.1.1创建数据库
CREATE  DATABASE  my_database;
#1.1.2使用数据库
USE  my_database;
#1.1.3删除数据库
DROP  DATABASE  my_database;

#1.2表
#1.2.1创建表:
CREATE  TABLE  users  (
     id  INT  NOT NULL,
     username  VARCHAR(50)  NOT  NULL,
     email  VARCHAR(100)  NOT  NULL  UNIQUE,
     password  VARCHAR(100)  NOT  NULL,
     primary key(id)
);
#1.2.2创建表(带自增主键和默认值):
CREATE  TABLE  addresses  (
     id  INT  AUTO_INCREMENT  PRIMARY  KEY,
     user_id  INT  NOT  NULL,
     street  VARCHAR(100)  NOT  NULL,
     city  VARCHAR(50)  NOT  NULL,
     state  VARCHAR(50)  NOT  NULL,
     zip_code  VARCHAR(10)  NOT  NULL,
     country  VARCHAR(50)  NOT  NULL,
     FOREIGN  KEY  (user_id)  REFERENCES  users(id)
);
#1.2.3删除表:
DROP  TABLE  addresses;

#1.3索引
#1.3.1创建索引
CREATE  INDEX  idx_users_email  ON  users  (email);
#1.3.2删除索引
DROP  INDEX  idx_users_email;

#1.4视图
#1.4.1创建视图
CREATE  VIEW  user_addresses  AS
SELECT  users.id  AS  user_id,
users.username  AS  user_name,
addresses.city,
addresses.country
FROM  users
JOIN  addresses  ON  users.id  =  addresses.user_id;
#1.4.2删除视图
DROP  VIEW  user_addresses;

 2.数据查询语言(DQL)

数据分析最常用,用于查询需要的数据。

#2数据查询语言(DQL)

#2.1查询所有记录
SELECT * FROM table_name;

#2.2使用逻辑运算符
SELECT * FROM table_name 
WHERE condition1 AND condition2;
SELECT * FROM table_name 
WHERE condition1 OR condition2;

#2.3排序查询结果:
SELECT * FROM table_name 
ORDER BY column_name;
SELECT * FROM table_name 
ORDER BY column_name DESC;

#2.4使用聚合函数进行计算:
SELECT COUNT(*) FROM table_name;
SELECT SUM(column_name) FROM table_name;
SELECT AVG(column_name) FROM table_name;
SELECT MAX(column_name) FROM table_name;
SELECT MIN(column_name) FROM table_name;

#2.5分组查询:
SELECT column1, SUM(column2) FROM table_name 
GROUP BY column1;

#2.6连接多个表查询:
SELECT * FROM 
table1 JOIN table2 
ON table1.column = table2.column;

#2.7使用子查询:
SELECT column1 FROM table_name 
WHERE column2 IN (SELECT column2 FROM table2);

#2.8使用通配符模糊查询
#2.8.1使用通配符%
#2.8.1.1查询以abc为开头的数据
SELECT * FROM table_name 
WHERE column_name LIKE 'abc%';
#2.8.1.2查询以abc为结尾的数据
SELECT * FROM table_name 
WHERE column_name LIKE '%abc';
#2.8.1.3查询包含abc的数据
SELECT * FROM table_name 
WHERE column_name LIKE '%abc%';
#2.8.1.4查询如XXaXXbcXX的数据
SELECT * FROM table_name 
WHERE column_name LIKE '%a%bc%';
#2.8.2使用通配符_
#2.8.2.1查询以abc为开头的四位数据
SELECT * FROM table_name 
WHERE column_name LIKE 'abc_';

 3.数据操纵语言(DML)

用于对数据库中的数据进行添加、修改和删除操作。

#3数据操纵语言(DML)
#3.1数据
#3.1.1添加数据(INSERT):
INSERT  INTO  table_name  (column1,  column2,  column3)  
VALUES  (value1,  value2,  value3);
#3.1.2修改数据(UPDATE):
UPDATE  table_name  
SET  column1  =  value1,  column2  =  value2  WHERE  condition;
#3.1.3删除数据(DELETE):
DELETE  FROM  table_name  WHERE  condition;

#3.2表
#3.2.1删除表(删除数据和表结构)
DROP  TABLE  table_name;
#3.2.2删除表(删除数据,保留表结构)
DELETE  FROM  table_name

#3.3列
#3.3.1添加列
ALTER  TABLE  table_name  ADD  column_name  data_type;
#3.3.2修改列
ALTER  TABLE  table_name  MODIFY  column_name  data_type;

#3.4约束
#3.4.1添加约束(例如主键和外键):
ALTER  TABLE  table_name  
ADD  PRIMARY  KEY  (column_name);
ALTER  TABLE  table_name  
ADD  FOREIGN  KEY  (column_name)  REFERENCES  another_table(another_column);
#3.4.2删除约束:
ALTER  TABLE  table_name  DROP  CONSTRAINT  constraint_name;

#3.5索引
#3.5.1添加索引:
CREATE  INDEX  index_name  ON  table_name  (column_name);
#3.5.2删除索引:
DROP  INDEX  index_name;

 4.数据控制语言(DCL)

控制对数据库的访问权限。它允许数据库管理员授予、撤销和修改用户对数据库对象的访问权限。

#创建角色
CREATE  ROLE  role1;

#创建用户
CREATE  USER  user1  IDENTIFIED  BY  'password1';

#授予角色权限
GRANT  role1  TO  user1;

#查询用户权限
SELECT  *  FROM  dba_users;

#删除角色
DROP  ROLE  role1;

#删除用户
DROP  USER  user1;

二、数据类型

以下内容参考自:MySQL 数据类型 | 菜鸟教程 (runoob.com)

1.数值类型

类型 大小 范围(有符号) 范围(无符号) 用途
TINYINT 1 Bytes (-128,127) (0,255) 小整数值
SMALLINT 2 Bytes (-32 768,32 767) (0,65 535) 大整数值
MEDIUMINT 3 Bytes (-8 388 608,8 388 607) (0,16 777 215) 大整数值
INT或INTEGER 4 Bytes (-2 147 483 648,2 147 483 647) (0,4 294 967 295) 大整数值
BIGINT 8 Bytes

(-9,223,372,036,854,775,808,

9 223 372 036 854 775 807)

(0,18 446 744 073 709 551 615) 极大整数值

FLOAT

(不推荐)

4 Bytes

(-3.402 823 466 E+38,-1.175 494 351 E-38),

0,

(1.175 494 351 E-38,3.402 823 466 351 E+38)

0,(1.175 494 351 E-38,3.402 823 466 E+38) 单精度
浮点数值
DOUBLE
(不推荐)
8 Bytes

(-1.797 693 134 862 315 7 E+308,

-2.225 073 858 507 201 4 E-308),0,

(2.225 073 858 507 201 4 E-308,

1.797 693 134 862 315 7 E+308)

0,(2.225 073 858 507 201 4 E-308,

1.797 693 134 862 315 7 E+308)

双精度
浮点数值

DECIMAL

(推荐使用)

DECIMAL(M,D) ,如果M>D,为M+2否则为D+2 依赖于M和D的值 依赖于M和D的值 小数值

2.日期和时间类型

类型 大小
( bytes)
范围 格式 用途
DATE 3 1000-01-01/9999-12-31 YYYY-MM-DD 日期值
TIME 3 '-838:59:59'/'838:59:59' HH:MM:SS 时间值或持续时间
YEAR 1 1901/2155 YYYY 年份值
DATETIME 8 '1000-01-01 00:00:00' 到 '9999-12-31 23:59:59' YYYY-MM-DD hh:mm:ss 混合日期和时间值

3.字符串类型

类型 大小 用途
CHAR 0-255 bytes 定长字符串

VARCHAR

(推荐直接使用)

0-65535 bytes 可变长度字符串
TINYBLOB 0-255 bytes 不超过 255 个字符的二进制字符串
TINYTEXT 0-255 bytes 短文本字符串
BLOB 0-65 535 bytes 二进制形式的长文本数据
TEXT 0-65 535 bytes 长文本数据
MEDIUMBLOB 0-16 777 215 bytes 二进制形式的中等长度文本数据
MEDIUMTEXT 0-16 777 215 bytes 中等长度文本数据
LONGBLOB 0-4 294 967 295 bytes 二进制形式的极大文本数据
LONGTEXT 0-4 294 967 295 bytes 极大文本数据

4.json

json数组

json对象

你可能感兴趣的:(sql,数据库,笔记,数据分析)