熟练掌握mysql基本语法_Mysql基本语法知识点小结

1.初识MySQL

1.1什么是数据库?

概念:长期存放在计算机内,有组织,可共享的大量数据的集合,是一个数据 "仓库"

作用:保存并且能安全管理数据(增删改查)

数据库分为:

关系型数据库(SQL)

例如:MySQL , Oracle , SQL Server , SQLite , DB2 , ...

关系型数据库通过外键关联来建立表与表之间的关系

非关系型数据库(NOSQL)

例如:Redis,MongoDB

非关系型数据库通常指数据以对象的形式存储在数据库中

注解:两者一般不可分开!!!!!交互相融!!!!

2.数据库操作

2.1 结构化查询语句

60b5a88147cef07f7836d5139e2dfbe2.png

数据库常用操作:

创建数据库:CREATE DATABASE IF NOT EXISTS 数据库名;删除数据库:DROP DATABASE IF EXISTS 数据库名;产看数据库:SHOW DATABASES ;使用数据库:use 数据库名;

2.2 DDL数据定义语言

2.2.1 CREAT 语法

创建数据库:

mysql>CREATE DATABASE数据库名;

如果再次创建同样的数据库名会报错,可以加上

mysql>CREATE DATABASEIF NOT EXISTS 数据库名;

创建数据库列表:

mysql>CREATE TABLE [IF NOT EXISTS] 表名;

删除数据库

mysql>DROP DATABASE [IF EXISTS] 数据库名;

删除数据库列表:

mysql>DROP TABLE [IF EXISTS] 表名;

2.2.3 ALTER语法

修改表名:

ALTER TABLE 旧表名 RENAME AS 新表名

重命名:

ALTER TABLE [表名] CHANGE [列名] [新名]

添加字段:

ALTER TABLE 表名 ADD[列名] [类型]比如:ALTER TABLE `student` ADD `id` int(4) not NULL AUTO_INCREMENT COMMENT '学号'

修改字段:

ALTER TABLE 表名 MODIFY [列名] [类型]ALTER TABLE 表名 CHANGE 旧字段名 新字段名 [类型]

删除字段:

ALTER TABLE 表名 DROP 字段名

其他

1.使用``来避免与关键字冲突2.sql语言对大小写不敏感

2.3 DML数据操作语言

2.3.1 INSERT语法

添加数据:

INSERT INTO 表名(字段1,字段2,字段3,字段4...) VALUES('值1','值2','值'3,'值4'...)-- 例如: INSERT INTO `student`(`id`,`name`,`sex`) VALUES('01','龙傲天','男'),('02','叶良辰','男');-- 其中(字段1.....)可以省略,但是要按着格式来,一般建议打上去方便看!

2.3.2 UPDATE语法

修改数据:

UPDATE 表名 SET [列名] = [类型内容] WHERE 条件-- 例如: UPDATE `student` SET `name` = '叶问' WHERE `name` = '叶良辰' ;-- 不指定条件的情况下,会改动所有表!!!!!!!!UPDATE 表名 SET [列名] = [类型内容]

2.3.4 DELETE语法

删除数据:

DELETE FROM 表名 WHERE 条件-- 例如: DELETE FROM `student` WHERE `sex`='男';-- 不指定条件的情况下,会全部删除!!!!!!!!DELETE FROM 表名

完全清空数据:

DELETE:

DELETE FROM 表名

TRUNCATE:

TRUNCATE 表名

区别:

DELETE 不会影响自增

TRUNCATE的自增会归零

2.4 DQL数据查询语言

2.4.1 SELECT语法

查询字段:

SELECT * FROM 表名

查询指定字段:

SELECT 字段 FROM 表名

起别名:

SELECT 字段1 AS 别名,字段2 AS 别名 FROM 表名 AS 别名

函数CONCAT(a,b):

SELECT CONCAT(`名字`,`studentname` AS `新名字` FROM student-- 用于列表不那么容易懂,自己加别名上去

去除重复数据:

SELECT DISTINCT 字段 FROM 表名-- 表名中很多字段内的数据是重复,用这个命令去除重复数据

查询系统版本:

SELECT VERSION()

用来计算:

SELECT 99*100 AS `计算结果`

查询自增的步长:

SELECT @@auto_increment_increment

学员考试成绩 +1:

SELECT `StudengResult` +1 AS `提分后` FROM result

2.4.2 WHERE语法

逻辑运算符

34a313e9e6eb1f481a30f6edc4c0922c.png

比较运算符

5bab665102f590e9063da606716fefb1.png

模糊查询:

LIKE-- 查询姓刘的同学 -- like 结sel合 %(代表0到任意字符)_(一个字符)SELECT `StudentName'`FROM `student`WHERE `StudentName` LIKE '刘%'-- 查询2字姓刘同学 LIKE '刘_'-- 查询名字中间有龙字的同学 LIKE '%龙%'IN-- 查询学号SELECT `StudentNo`FROM `student`WHERE `StudentNo` IN (1,2,3,4,5,6)-- 查询不为空的数据SELECT `StudentNo`FROM `student`WHERE `StudentNo` IS NOT NULL-- 查询为空的数据SELECT `StudentNo`FROM 'student'WHERE `StudentNo` IS NULL

2.4.3 联表查询

JOIN方法

--查询 学号 和 成绩 SELECT `StudentNo`,`StudentResult`FROM `student` AS SINNER JOIN `result` AS rON s.`StudentNo`=r.`StudentNo`WHERE `'StudentResult'` >= 60 ORDER BY `StudentResult` ASC-- 成绩从大大小,反过来就用DESCLIMIT 1,5

ORDER BY :通过什么来排序

LIMIT (起始值,页面大小)

76c9353e47f394eebbaa2f4c93225019.png

嵌套方法(子查询方法)

--查询 成绩 >=60的姓刘的学员学号,并且地址不为空SELECT `StudentNo`,`StudentName`FROM `student`WHERE `StudentName`LIKE '刘%' AND`StudentNo` = (SELECT `StudentNo` FROM `StudentResult`WHERE `StudentResult` >= 60 AND `StudentNo` = (SELECT `StudentNo` FROM `Address`WHERE `Address` IS NOT NULL))ORDER BY `StudentResult` ASC LIMIT 1,5

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值