Mysql
基础
开发工具与关键技术:SQLyog Mysql
作者:萧氏萧然
撰写时间:2021年4月 26日
ORDER BY 条件 ASC 正序排列
ORDER BY 条件 DESC 倒序排列
NOW() 当前时间
LIMIT N,N 设定返回记录数
单个代表前N个 N,N(开始索引,结束索引)
新增修改值时 按 数据类型判断是否加上’'或""。
//表名1.A=表名2.B 两张表相对应相同值的属性名(外键,主键)
查询:
单表(1)
SELECT 表内列名 FROM 表名
多表(2)
SELECT 表名.列名 FROM 表名1,表名2,表名N
模糊(3)
SELECT 同上 FROM 表名 WHERE 列名 LIKE ‘%值%’
内联(4)
SELECT 表名.列名 FROM 表名1 INNER JOIN 表名2 ON 表名1.A=表名2.B |
获取两个表中字段匹配关系的记录
左联接(5)
SELECT 表名.列名 FROM 表名1 LEFT JOIN 表名2 ON 表名1.A=表名2.B |
获取左表所有记录,即使右表没有对应匹配的记录
右连接(6)
SELECT 表名.列名 FROM 表名1 RIGHT JOIN 表名2 ON 表名1.A=表名2.B |与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的 记录
数据条数(7)
SELECT COUNT(列名) FROM 表名 WHERE 条件 |查看该数据
在列明中使用列的别名(8)
SELECT 列名 AS 新列名 FROM 表名 WHERE 条件 |查询出的列名为新列名,条件不可用新列名作为条件
计算合并得到新的表名(9)
SELECT 列名1+列名2 AS 新列名 FROM 表名 |查询出的列名为新列名且值为两者相加
( 先转int再计算再转字符串,非数任意类型相加值)
查询空值(10)
SELECT 列名 FROM 表名 WHERE 列名A IS NULL |查询列名A为NULL的值,列名和列名A相同时查询结果所有参数为NULL
插入:
单条数据:INSERT
INTO 表名(字段名列表1,字段名列表2,字段名列表N) VALUE (值)
多条插入:INSERT
INTO 表名字段名列表VALUES (值列表1),(值列表2),(值列表3)
修改:
UPDATE 表名 SET 要修改的键=要修改的值 WHERE 条件
删除:
DELETE FROM 表名 WHERE 条件
条件:
WHERE AND OR
|||||||||||||||||||||||||||||||||||||||||||||
显示已有数据库 SHOW DATABASES
创建数据库 CREATE DATABASE 数据库名
删除数据库 DROP DATABASE 数据库名
删除表 DROP TABLE 表名 |有外键约束的表无法直接删除,要先删除被约束的表,再删除本表
drop table table_name 立刻释放磁盘空间 ,不管是 InnoDB 和 MyISAM;drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger)、索引(index); 依赖于该表的存储过程/函数将保留,但是变为 invalid 状态 即无效状态
创建 表:(以下这段可复制)
CREATE TABLE grand(
#创建 列名 id 数据类型 int 非空
作为表记录的唯一标识
id INT(4) NOT NULL PRIMARY
KEY AUTO_INCREMENT,
name
VARCHAR(5)
)
#设置自增
AUTO_INCREMENT=5;
SET
@@auto_increment_increment=5;
#向表中添加信息 这里给定ID比较好 不然被约束表容易出错(注意:已经出现过的id索引没有彻底清除会往下自增)
INSERT INTO
grand(id,name
) VALUES (1,‘大一’),(2,‘大二’),(3,‘大三’),(4,‘大四’);
#创建学生表
CREATE TABLE student (
id INT (4) PRIMARY KEY,
name
VARCHAR (4) NOT NULL,
sex VARCHAR (2) DEFAULT ‘男’,
phone VARCHAR (11) NOT NULL,
address VARCHAR (100) NOT NULL,
Email VARCHAR (50),
grandid INT (4),
#添加外键约束
CONSTRAINT fk_ID FOREIGN
KEY(grandid)REFERENCES grand (ID)
);
#添加学生信息
INSERT INTO
student(id,name
,sex,phone,address,Email,grandid) VALUES
(1001,‘高桥美穗’,‘女’,‘13576154066’,‘日本东京’,NULL,1),
(1102,‘铃木真一’,‘男’,‘13576154067’,‘日本大阪’,NULL,2),
(1003,‘王宇翔’,‘男’,‘13576154168’,‘中国上海’,NULL,3),
(1004,‘赵媛媛’,‘女’,‘13576154069’,‘中国北京’,NULL,4)
外键约束,student
表ID存在数值,新增student 表时 grandid 要有对应的student.id值才能新增成功
否则受到约束影响无法新增新的不存在的 student.grandid值为student.id的数据
常用函数
1.聚合函数
(1)AVG(平均值):select avg(列名)from
表名
(2)count()返回某字段的行数
(3)max()返回某字段的最大数
(4)min()返回某字段的最小值
(5)sun()返回某字段的和
2.字符函数
(1)concat()连接字符串s1,s2…sn为一个完整的字符串。
(2)insert(s1,p1,n,news)将字符串s1从p1位置开始,n个字符长的字串替换为字符串news。
(3)lower(s)将字符串s中的所有字符改为小写。
(4)upper(s)将字符串s中的所有字符改为大写。
(5)substring(s,num,len)返回字符串s的第num个位置开始长度为len的子字符串
3.时间日期函数
(1)获取当前日期:curdate();
(2)获取当前时间:curtime();
(3)获取当前日期和时间:now();
(4)返回日期date为一年中的第几周:week(date);
(5)返回日期date的年份:year(date);
(6)返回时间time的小时值:hour(tome);
(7)返回时间time的分钟值:minute(time);
(8)返回日期参数(date1和date2之间相隔的天数):datediff(date1,date2);
(9)计算日期参数date加上n天后的日期:adddate(date,n);
4.数学函数
(1)返回大于或等于数值x的最小整数:ceil(x);
(2)返回小于或等于数值x的最大整数:floor(x);
(3)返回0~1之间的随机数:rand();