阿里云服务器之MySQL数据库基础知识复习总结

本篇文章为MySQL数据库基础知识,依托阿里云服务器进行的数据库相关操作,包括数据库增删改查等常用基础操作和常用函数:

一、数据库启动与连接:

阿里云数据库管理地址:

https://rdsnext.console.aliyun.com/

使用子帐号和子密码登录

云数据库RDS-实例列表-选择地域--点击实例ID-帐号管理-创建帐号-名称:test_user-类型:高级-密码:Password1213-确认密码-确定-左侧数据库管理-创建数据库-名称:user_db-字符集:默认设为utf8- 数据库管理页面-登录数据库-输入帐号密码:test_user Password1213-登录-测试连接-登录

二、数据库表操作:

在DMS控制台上方选择user_db数据库,单击 SQL操作 - SQL窗口

1、创建数据表:

CREATE TABLE USER ( user_id int(128) NOT NULL AUTO_INCREMENT, name varchar(64) NOT NULL, age int(11) DEFAULT NULL, PRIMARY KEY (user_id) ) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci;

解析:

CREATE TABLE `USER`:新表的名字,表名称在关键字CREATE TABLE后给出。
`name` varchar(64) NOT NULL,:列名name,类型varchar,长度限制64,此列不能为空。
PRIMARY KEY (`user_id`):设置USER表主键为user_id。
`user_id` int(128) NOT NULL AUTO_INCREMENT,:AUTO_INCREMENT通常用于主键,表示主键自增,数值会自动+1。 

点击执行-刷新查看

2、更新数据表:

ALTER TABLE user ADD COLUMN sex tinyint(1) NOT NULL COMMENT 'sex,woman:0,man:1' AFTER age;

3、重命名:

RENAME TABLE USER TO student;

格式如下:

RENAME TABLE table_name_a TO table_name_b;

4、删除数据表:

删除不能撤销

DROP TABLE student;

格式:DROP TABLE table_name;

三、数据操作:

1、创建数据表:

CREATE TABLE user ( id int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID', name varchar(32) DEFAULT NULL COMMENT 'name', age int(11) DEFAULT NULL COMMENT 'age', address varchar(32) DEFAULT NULL COMMENT 'address', sex tinyint(1) DEFAULT NULL COMMENT 'sex,woman:0,man:1', PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8

2、插数据:

INSERT INTO USER (name, age, address, sex) VALUES ('zhangsan', 21, 'jiangxi', 0), ('lisi', 22, 'hubei', 0), ('wangwu', 23, 'hunan', 0), ('lilei', 24, 'henan', 1), ('hanmeimei', 25, 'hebei', 1), ('xiaoming', 26, 'shandong', 1), ('xiaoli', 27, 'shanxi', 1) ;

说明:

table_name(col_name,...)中的字段名列表必须和values(expr,...)字段值列表一致。
如果数据是字符型,必须使用单引号或者双引号。
被AUTO_INCREMENT标记的自动递增的主键,在插入数据时,可以不设置值。

3、查询数据:

SELECT id,name,age,address,sex FROM user;

格式:

SELECT col_name,... FROM table_name WHERE where_condition GROUP BY col_name,... HAVING where_condition ORDER BY col_name,... LIMIT offset,row_count

4、更新数据:

UPDATE user SET age = 28,address = 'sichuan' WHERE name = 'xiaoming' ;

更新数据格式:

UPDATE table_name SET col_name=expr,... WHERE where_condition

5、删除数据:

DELETE FROM user WHERE name = 'xiaoming' ;

删除数据格式:

DELETE FROM table_name WHERE where_condition

6、函数操作:

先创建数据表:

CREATE TABLE student_score(sid INT PRIMARY KEY NOT NULL, sname VARCHAR(30), sage INT, ssex VARCHAR(8), score INT(11)); insert into student_score(sid, sname, sage, ssex,score) values (1001, 'xiaohua', 17,'0', 75), (1002, 'xiaohong', 18,'0', 80), (1003, 'wangwu', 18,'1', 90), (1004, 'lisi', 17,'1', 68), (1005, 'zhangsan', 19,'1', 73), (1006, 'xiaohei', 19,'1', 100), (1007, 'xiaoma', 20,'0', 77), (1008, 'xiaoli', 17,'1', 82), (1009, 'xiaobai', 19,'0', 88), (1010, 'wentong', 18,'0', 53);

AVG()函数:

SELECT avg(score) FROM student_score;

COUNT()函数:

SELECT COUNT(*) FROM student_score;

MAX()函数:

SELECT MAX(score) FROM student_score;

MIN()函数:

SELECT MIN(score) FROM student_score;

SUM()函数:

SELECT SUM(score) FROM student_score;

7、组合查询

创建数据表:

CREATE TABLE student ( sid int(11) NOT NULL, sname varchar(30) DEFAULT NULL, sage int(11) DEFAULT NULL, ssex varchar(8) DEFAULT NULL, PRIMARY KEY (sid) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; insert into student(sid,sname,sage,ssex) values (1005,'xiaohua',19,'0'), (1004,'xiaohong',18,'0'), (1003,'wangwu',18,'1'), (1002,'lisi',17,'1'), (1001,'zhangsan',18,'1'); CREATE TABLE sc ( sid int(11) NOT NULL, cid int(11) NOT NULL, score int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; insert into sc(sid,cid,score) values (1001,101,75), (1001,102,85), (1002,101,65), (1002,102,95), (1003,101,65), (1003,102,95), (1004,101,80), (1004,102,80), (1005,101,75), (1005,102,85); CREATE TABLE course ( cid int(11) NOT NULL, cname varchar(30) DEFAULT NULL, tid int(11) DEFAULT NULL, PRIMARY KEY (cid) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; insert into course(cid,cname,tid) values (102,'yuwen',2), (101,'shuxue',1); CREATE TABLE teacher ( tid int(11) NOT NULL, tname varchar(30) DEFAULT NULL, PRIMARY KEY (tid) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; insert into teacher(tid,tname) values (2,'liulaoshi'), (1,'wanglaoshi');

查询所有同学的学号和成绩:

使用WHERE s. sid = sc.sid 来消除笛卡尔积。 SELECT s.sid ,s.sname ,c.score FRO,M student AS s ,sc AS c WHERE s.sid = c.sid ;

查询语文成绩在80以上同学:

SELECT a.score, b.cname, s.sname FRO,M sc as a, course AS b, student AS s WHERE a.cid= b.cid AND s.sid= a.sid AND a.cid= 102 AND a.score> 80

查询语文成绩比数学成绩高的同学:

SELECT a.sid, a.score, s.sname FRO,M( SELECT sid, score FRO,M sc WHERE cid= "102") a, ( SELECT sid, score FRO,M sc WHERE cid= "101") b, student as s WHERE a.score > b.score AND a.sid= b.sid AND s.sid= a.sid

上一篇:Python全栈 Web(Flask框架、模型、sqlalchemy)


下一篇:JetBrains 发布 2020 Java 开发者数据分析报告,中国 Java 开发者占比全球最多