MySQL语法基础

一、通用语法

 

1、MySQL数据库的SQL语句不区分大小写

2、可以用/**/完成注释

3、常用数据类型

类型描述
int整型
double浮点型
varchar字符串型
date日期类型,格式为yyyy-mm-dd,只有年月日没有时分秒

 

 

 

 

 

 

 

 

二、数据库操作

 

1、创建数据库

CREATE DATABASE 数据库名;
e.g 
CREATE DATABASE hospital;

2、查看数据库

①查看数据库MySQL服务器中所有数据库

SHOW DATABASES/*查看数据库MySQL服务器中所有数据库*/

 

②查看某个数据库定义的信息

SHOW CREATE DATABASE 数据库名;

e.g
SHOW CREATE DATABASE hospital;

3、删除数据库

DROP DATABASE 数据库名;
e.g
DROP DATABASE hospital;

4、切换数据库

USE 数据库名;
e.g
USE hospital;

 

三、表操作

 

1、创建表

CREATE TABLE 表名(
    字段名 类型(长度) 约束,
    字段名 类型(长度) 约束,
);

e.g
CREATE TABLE doctor(
    id INT PRIMARY KEY,
    name VARCHAR(20) NOT NULL,
);
     

 

2、查看表

①查看数据库中的所有表

SHOW TABELS;

②查看表结构

DESC 表名;
e.g
DESC doctor;

 

3、删除表

DROP TABLE 表名;
e.g
DROP TABLE doctor;

 

4、修改表

①添加列

ALTER TABLE 表名 ADD 列名 类型(长度) 约束;
e.g
ALTER TABLE doctor ADD title VARCHAR(20);
/*给医生表添加职称字段*/

②修改列类型长度及约束

ALTER TABLE 表名 MODIFY 列名 类型(长度) 约束
e.g
ALTER TABLE doctor MODIFY title VARCHAR(50) NOT NULL;

③修改列名

ALTER TABLE 表名 CHANGE 旧列名 新列名 类型(长度) 约束;
e.g
ALTER TABLE doctor CHANGE title doctitle VARCHAR(30);

④删除列

ALTER TABLE 表名 DROP 列名;
e.g
ALTER TABLE doctor DROP title;

⑤修改表名

RENAME TABLE 表名 to 新表名;
e.g
RENAME TABLE doctor to nurse;

 

四、数据操作

 

1、增加数据

INSERT INTO 表名 [(字段列表)] VALUES (值列表);
e.g
INSERT INTO doctor VALUES('001', '张三', '主治医师');

如果遇到主键冲突(即插入数据时,主键对应的值已经存在),可以选择更新或替换。

①更新

INSERT INTO 表名[(字段列表:包含主键)] VALUES(值列表) DUPLICATE KEY UPDATE  字段 = 新值;
e.g
/*假如说表中001已经是张三医生了,我现在要改成李四*/
INSERT INTO doctor VALUES('001', '李四', '实习医生') DUPLICATE KEY UPDATE  name = '李四';

②替换

REPLACE INTO 表名 [(字段列表:包含主键)] VALUES(值列表);
e.g
REPLACE INTO doctor VALUES('001', '李四', '实习医生');

 

2、更新数据

UPDATE 表名 SET 字段 =[WHERE条件][LIMIT更新数量];
e.g
/*把职称是实习医生的前三个人改成主治医师*/
UPDATE doctor SET tilte = '主治医师' WHERE title = '实习医生' LIMIT 3; 

 

3、删除数据

DELETE FROM 表名 [WHERE条件][LIMIT数量];
e.g
/**/
DELETE FROM 表名 WHERE title = '实习医生' LIMIT 10;

 

4、查询数据

SELECT 字段列表/(*所有字段) FROM 表名 [WHERE条件]

①去重

DISTINCT

②WHERE子句

比较运算符: >, <, >=, <= ,!= ,<>, =, like, between and, in/not in

逻辑运算符: &&(and), ||(or), !(not)

③分组

GROUP BY 字段名

分组即根据某个字段进行分组(相同的放一组,不同的分到别的组,主要是为了统计数据),以下是数据统计函数:

COUNT():统计分组后的记录数,每一组有多少记录
MAX():统计每组的最大值
MIN():统计最小值
AVG():统计平均值
SUM():统计和

分组条件判断需要用:

HAVING

④排序

ORDER BY 字段名 [ADC|DESC]/*ADC升序(默认),DESC降序*/

⑤限制数量

LIMIT 数据量;
/*只用来限制长度*/

LIMIT 起始位置, 长度;
/*限制起始位置和数量*/

 

五、连接查询

 

1、内连接:组合两个表中的记录,返回关联字段相符的记录。

左表 [INNER]JOIN 右表 ON 左表.字段 = 右表.字段;
e.g
dector AS dc INNER JOIN department dp ON dc.id = dp.id;

如果没有ON的话系统会保留所有结果,即两个表的笛卡尔积。

 

2、左外连接:左表的记录会全部显示出来,右表只会显示符合搜索条件的记录,右表记录不足的地方均为NULL。

左表 LEFT JOIN 右表 ON 左表.字段 = 右表.字段;
e.g
dector AS dc LEFT JOIN department dp ON dc.id = dp.id;

 

3、右外连接:左表只会显示符合搜索条件的记录,右表的记录将全部显示,左表记录不足的地方均为NULL。

左表 RIGHT JOIN 右表 ON 左表.字段 = 右表.字段;
e.g
dector AS dc RIGHT JOIN department dp ON dc.id = dp.id;

 

六、视图

视图是一种有结构(有行有列)但没有结果(结构中不真实存放数据)的虚拟表,虚拟表的结构来源不是自己定义,而是从对应的基表中产生(视图的数据来源)。使用视图主要为了查询,所以把视图当做表一样查询即可。

 

CREATE VIEW 视图名字 AS SELECT语句

 

1、查看视图

DESC 视图名字;

 

2、使用视图

直接把视图当做表一样查询即可

 

3、修改视图

视图本身不可修改,但视图的来源可以修改。

ALTER VIEW 视图名 AS 新的SELECT语句

 

4、删除视图

DROP VIEW 视图名

 

转载于:https://www.cnblogs.com/z1014601153/p/11356346.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值