阿里云的mysql的教程_MySQL阿里云数据库学习路线-基础
net start mysql;
net stop mysql;
登录与退出
mysql -uroot -pAa8316057 -hlocalhost
exit或quit
常见操作:
DDL 数据库或表的结构操作(****)
DML 对表的记录更新(增/删/改)(****)
DQL 对表的记录查询(****,难点)
DCL 用户创建及授权
类型:
标准:
int整型double(5,2)
decimal精确浮点型char固长 字符串255 补varchar 变长 字符串65535 不补
方言(mySQL独有)
MySQL独有:text(clob):字符串类型
blob:字节类型
date:日期
time:时间timestamp:时间戳
DDL:
数据库(DATABASE)
(创建CREATE,查看SHOW,进入USE,删除DROP)
表(TABLE):
查询表结构: DESC 表名
创建:CREATE TABLE [IF NOT EXISTS]表名(
列名 列类型[PRIMARY KEY] [AUTO_INCREMENT];
...
);
修改:***公共前缀***ALTER TABLE表名
添加列:***公共前缀*** ADD(列名 列类型,...);
删除列:***公共前缀*** DROP列名
改列名:***公共前缀***CHANGE 原列名 新列名 列类型
改列类型:***公共前缀***MODIFY 列名 列新类型
改表名:***公共前缀*** RENAME TO 新表名
DQL(基本查询):
列控制:
查询所有列(或指定列 丨 查询但不显示完全重复行):
SELECT * FROM表名
查询指定列: 把*变成 列1,..,列n
查询但不显示完全重复行: 在* 前 加DISTINCT
列运算:(光查,并不改变数据)
SELECT 运算 FROM表名;
加/减/乘/除: sal+8 sal+name
字符串运算: CONCAT("$",sal)
转换NULL值(把NULL当0来运算): IFNULL(comm,0)+100给列取别名: IFNULL(comm,0)+100 AS 奖金 - (其中AS可以省略)
条件控制:
条件查询:(和UPDATE一样的操作方式)SELECT * FROM 表名 WHERE条件;
模糊查询:SELECT * FROM 表名 WHERE 列名 like "张_";**** 重点: _ 一个字符 % 0-n个字符;
排序:SELECT * FROM 表名 ORDER BY 列名 ASC;
升序:ASC(ASC可以省略)
降序:DESC(DESC不可以省略)
多列作为排序条件:列名ASC,列名 DESC
聚合函数:(列纵向运算)
SELECT 聚合函数 FROM表名;1:行数 COUNT(*或列名) -不记NULL2:大 MAX(列名)3:小 MIN(列名)4:和 SUM(列名)5:平均 AVG(列名)
多项:MAX(列名) AS 大 , MIN(列名) AS 小 ,SUM(列名) AS 和;
分组查询:
SELECT 分组列,聚合函数(支持多项) FROM 表名 [WHERE 条件] GROUP BY 分组列 [HAVING 条件];
执行顺序SELECT查询FROM从WHERE去分组前条件GROUP BY分组HAVING去分组后条件ORDER BY 排序
LIMIT子句(方言)
SELECT * FROM 列名 LIMIT 4,3;(从第5行开始查,一共查3行) -(当前页-1) * 每页记录数 , 每页记录数;
DML:
插入数据:
插入列数据:INSERT INTO 表名(列名1,列名2,...) VALUES(列值1,列值2,..);
修改列值:UPDATE 表名 SET 列名=列值,...;(全改)UPDATE 表名 SET 列名=列值 WHERE 条件列名 = 条件列值 or... ;(指定条件改)= != <> > < >= <= NOT OR AND BETWEEN...AND IN(...) IS NULL删除数据:DELETE FROM 表名 [WHERE 条件]; - 一定要加WHERE!!!
DCL:
创建用户:CREATE USER 用户名@ip地址 IDENTIFIED BY "密码"; 任意IP登录: @"%"给用户授权:GRANT 权限1,..权限n NO 数据库.* TO 用户名@ip地址 所有权限: ALL取消权限:REVOKE 权限1,..权限n NO 数据库.* FROM 用户名@ip地址查看权限:
SHOW GRANTSFOR 用户名@ip地址删除用户:DROP USER 用户名@ip地址
查看数据库编码:
SHOW VARIABLES LIKE "char%";
改:C:ProgramData下my.ini文件 :default-character-set=gbk
可以改3个变量client(进).connection.results(出)
备份/恢复 数据库内容:
备份数据库内容(退出状态下输入): mysqldump -u用户名 -p密码 据库名>f:/a.sql
恢复数据库内容(退出状态下输入): mysql-u用户名 -p密码 据库名
第二种方式:进入数据库后 source f:/a.sql
约束:
1:主键约束:
创建: 创建时候在 列名 列类型 后加 PRIMARY KEY [];
创建后:ADD PRIMARY KEY(列名);
删除:ALTER TABLE 表名 DROP PRIMARY KEY;
2:主键自增长:
创建:AUTO_INCREMENT(在主键后面加 , 详看创建列) -只能加在整数CREATE TABLEdept(
deptnoINT PRIMARY KEYAUTO_INCREMENT,
dnameVARCHAR(50)
);INSERT INTO dept VALUES(10,"研发部");INSERT INTO dept VALUES(20,"人力部");INSERT INTO dept VALUES(30,"财务部");SELECT * FROMdept;CREATE TABLEemp(
empnoINT PRIMARY KEYAUTO_INCREMENT,
enameVARCHAR(50),
dnoINT,CONSTRAINT fk_emp_dept FOREIGN KEY(dno) REFERENCESdept(deptno)
);INSERT INTO emp(empno,ename) VALUES(NULL,"zhagsan");SELECT * FROM emp;
3:非空约束:
加 NOT NULL;
4:唯一约束:
加 UNIQUE;一般和NOT NULL一起用
5:概念模型:
6:外键约束:
语法:CONSTRAINT 约束名称 FOREIGN KEY(外键列名) REFERENCES关系表(关联表的主键)
例:CONSTRAINT fk_emp_dept FOREIGN KEY(dno) REFERENCES dept(deptno)
7:数据库1对1关系
思路:从表的主键即是外键!
/*--------课时9:1对1--------*/
/*创建表*/
CREATE TABLEhashand(
hidINT PRIMARY KEYAUTO_INCREMENT,
hnameVARCHAR(50)
);/*修改表名*/
ALTER TABLEhashand
RENAMETOhasband/*插入记录*/
INSERT INTO hasband VALUES(NULL,"刘备");INSERT INTO hasband VALUES(NULL,"关羽");INSERT INTO hasband VALUES(NULL,"张飞");/*查看*/
SELECT * FROMhasband/*创建1对多
CREATE TABLE wife(
wid int primary KEY auto_increment,
wname VARCHAR(50),
hid int,
CONSTRAINT fk_wife_hasband foreign key(hid) references hasband(hid)
);*/
/*创建*/
CREATE TABLEwife(
widINT PRIMARY KEYAUTO_INCREMENT,
wnameVARCHAR(50),CONSTRAINT fk_wife_hasband FOREIGN KEY(wid) REFERENCEShasband(hid)
);/*wid
1:非空
2:唯一
3:引用hid*/
/*满足以上3个条件*/
INSERT INTO wife VALUES(1,"杨贵妃");INSERT INTO wife VALUES(2,"妲己");INSERT INTO wife VALUES(3,"大乔");/*查询*/
SELECT * FROM wife;
8:数据库多对多关系
/*--------课时10:多对多--------*/
/*创建学生表*/
CREATE TABLEstudent(
sidINT PRIMARY KEYAUTO_INCREMENT,
snameVARCHAR(50));/*创建教师表*/
CREATE TABLEteacher(
tidINT PRIMARY KEYAUTO_INCREMENT,
tnameVARCHAR(50));/*创建关联表*/
CREATE TABLEstu_tea(
sidINT,
tidINT,CONSTRAINT fk_student FOREIGN KEY(sid) REFERENCESstudent(sid),CONSTRAINT fk_teacher FOREIGN KEY(tid) REFERENCESteacher(tid)
);/*往2张表插记录*/
INSERT INTO student VALUES(NULL,"刘德华");INSERT INTO student VALUES(NULL,"梁朝伟");INSERT INTO student VALUES(NULL,"谢霆锋");INSERT INTO student VALUES(NULL,"张含韵");INSERT INTO student VALUES(NULL,"小虎乐队");INSERT INTO teacher VALUES(NULL,"李代萍");INSERT INTO teacher VALUES(NULL,"童林");INSERT INTO teacher VALUES(NULL,"张老师");/*分别查出来*/
SELECT * FROMstudent;SELECT * FROMteacher;/*建立关系*/
INSERT INTO stu_tea VALUES(1,1);INSERT INTO stu_tea VALUES(2,1);INSERT INTO stu_tea VALUES(3,1);INSERT INTO stu_tea VALUES(4,1);INSERT INTO stu_tea VALUES(5,1);INSERT INTO stu_tea VALUES(2,2);INSERT INTO stu_tea VALUES(3,2);INSERT INTO stu_tea VALUES(4,2);INSERT INTO stu_tea VALUES(3,3);INSERT INTO stu_tea VALUES(4,3);INSERT INTO stu_tea VALUES(5,3);/*查关系表*/
SELECT * FROM stu_tea;
阿里云的mysql的教程_MySQL阿里云数据库学习路线-基础相关推荐
- mysql 进阶教程_MySQL进阶知识(一)——基础
1.关于MySQL的一些文件 MySQL如何安装.如何配置自启动,这里不进行讲述,可自行搜索相关安装教程进行处理.这里主要介绍MySQL的主要配置文件. ①二进制日志log-bin:用于主从复制. ② ...
- Android基础入门教程——7.6.1 Socket学习网络基础准备
Android基础入门教程--7.6.1 Socket学习网络基础准备 标签(空格分隔): Android基础入门教程 本节引言: 为了照顾没学过Java Socket的初学者,或者说捋一捋Andro ...
- 阿里云ECS服务器使用教程 新手上云好助手
随着普及率越来越高,云服务器已经成为企业及个人用户开展网络业务的首选了,阿里云服务器在国内起步早,现在的用户数量是国内第一,全球五强.因为初次接触云服务,所以阿里云服务器的使用方法,对于很多新手小白还 ...
- 阿里云的mysql主机名_阿里云的数据库主机名是什么
全网最新活动请看下方内容或右侧内容! --------------- 阿里云的数据库主机名是什么,阿里云怎么建数据库. 在阿里云ecs云服务器上部署数据库后,在平常的操作中可能会遇到些问题,可以先做个 ...
- mysql 全文检索 教程_MySQL:详细说明MySQL全文检索图文详细教程
软件安装:装机软件必备包 本站电脑知识提供电脑入门知识,计算机基础知识,计算机网络应用基础知识,电脑配置知识,电脑故障排除和电脑常识大全,帮助您更好的学习电脑!不为别的,只因有共同的爱好,为中国互联网 ...
- mysql less6教程_MySQL 超级入门教程
原标题:MySQL 超级入门教程 MySQL简介 1.什么是数据库 ? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二 ...
- mysql资源教程_MySQL 超级入门教程(内含资源福利)
原标题:MySQL 超级入门教程(内含资源福利) MySQL简介 1.什么是数据库 ? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场 ...
- mysql资源教程_MySQL 超级入门教程以及MySQL 资源大全的分享
MySQL简介 1.什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅 ...
- mysql日期教程_MySQL日期函数详解
Mysql作为一款开元的免费关系型数据库,用户基础非常庞大,本文列出了MYSQL常用日期函数与日期转换格式化函数,希望能帮助到大家. 1.DAYOFWEEK(date) SELECT DAYOFWEE ...
最新文章
- JS子窗口调用父窗口中的函数
- Java类中的权限修饰符
- HTML5 placeholder在低版本浏览器的解决方法
- Android定位开发之百度定位、高德定位、腾讯定位,三足鼎立一起为我所用!
- 华农保险 × 神策数据 OpenDay:保险如何从 0 到 1 落地数字化转型?
- Python面向切面编程是什么
- 程序员面试金典 - 面试题 17.08. 马戏团人塔(最长上升子序 DP/二分查找)
- java队列优先级_优先级队列-Java的PriorityQueue与最小堆有何不同?
- MapReduce编程(四) 求均值
- OSI参考模型和TCP/IP参考模型
- 杭州哪里学python好_杭州哪里学python好
- 通过管道实现文件的拷贝
- BigDecimal使用不当,老板的损失照样从你工资里扣
- python实现科赫雪花的绘制(最简单)
- boobooke播布客
- OSG智能指针---Referenced类
- Linux 10GE端口,CR19000关于10GE端口切换GE口
- php7.2.3下载,最新PHP编程软件v7.3.2.0 官方版下载地址电脑版-锐品软件
- 通过宏快速破解EXCEL文件密码
- 【树莓派】网络视频监控
热门文章
- 【Python】tqdm 介绍与使用
- linux系统数据恢复TestDisk,如何用testdisk恢复文件 Linux已删除的文件如何恢复
- 网络图(单代号、双代号、时标网络图)
- P1553 数字反转(升级版)
- HP中国区总裁离职感言[转]
- 【武汉科技大学】考研初试复试资料分享
- 零插件sketchup草图大师su逆向建模“世纪钟”雕塑
- 【Linux】scp IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! 错误
- 如何解决Camtasia下载安装时“2503”报错
- ROS2——DDS(十三)