《MySQL 基础课程》笔记整理(基础篇)
一、尝试MySQL
1.打开MySQL
# 启动MySQL服务
sudo service mysql start
# 使用 root 用户登录,这里密码为空,直接回车登录
mysql -u root
window cmd 登录
mysql -u root -p
2.查看数据库:
show databases;
-- 改数据库名
rename database oldname to newname;
-- 删除数据库
drop database dname;
3.连接使用某个数据库:
use <数据库名>
4.查看表:
SHOW TABLES;
5.退出
exit 或 quit
二、创建数据库并插入数据
1.新建数据库
CREATE DATABASE <数据库名字>;
2.新建数据表
CREATE TABLE <表名>
(
列名a 数据类型(数据长度),
列名b 数据类型(数据长度),
列名c 数据类型(数据长度)
);
3.查看表内容
SELECT * FROM <表名>;
4.向表中插入数据
INSERT INTO 表名(列名a,列名b,列名c)
VALUES(值1,值2,值3);
批量插入:
-- mysql
INSERT INTO table (field1,field2,field3) VALUES ('a',"b","c"), ('a',"b","c"),('a',"b","c");
-- oracle
INSERT INTO "database"."table" (field1,field2)
SELECT 'A','B' FROM dual
UNION SELECT 'C','D' FROM dual;
三、SQL的约束
1.约束分类
约束是一种限制,它通过对表的行或列的数据做出限制,来确定表的数据的完整性、唯一性。
主键 | 默认值 | 唯一 | 外键 | 非空 |
---|---|---|---|---|
PRIMARY KEY | DEFAULT | UNIQUE | FOREIGN KEY | NOT NULL |
用于约束表中的一行,作为这一行的标识符,主键不能重复且不能为空;复合主键 | 唯一不重复 | 保证数据完整性,也能表现表之间的关系,每个外键必须REFERENCES(参考)另一个表的主键 |
四、SELECT 语句详解
1.基本SELECT语句
SELECT 列名 FROM 表名 WHERE 限制条件;
2.数学符号条件
=,<,>,>=,<=,<>
3."AND" 与 "OR"
4.IN 和 NOT IN
- IN: 在 或 不在 某个范围内
- NOT IN: 在也不在 某个范围内
5.通配符
- 关键字 LIKE
- 两个通配符:_ (代表一个未指定字符)和 % (代表不定个未指定字符)
-- 只记得电话号码前五位
SELECT name,phone FROM employee WHERE phone LIKE '1347_ _ _ _ _ _ _';
-- 只记得名字首字母,却不知道长度
SELECT name,phone FROM employee WHERE name LIKE 'L%';
6.对结果排序
ORDER BY
-- 默认升序;关键词:ASC(升序),DESC(降序)
SELECT name,salary FROM employee ORDER BY salary DESC;
7.SQL内置函数算
COUNT、SUM、AVG、MAX、MIN
8.子查询
9.连接查询
五、数据库及表的修改和删除
1.删除数据库
DROP DATABASE 数据库名
2.重命名表
RENAME TABLE 原名 TO 新名字;
ALTER TABLE 原名 RENAME 新名;
ALTER TABLE 原名 RENAME TO 新名;
3.删除表
DROP TABLE 表名;
4.对列的修改(即对表的结构修改)
-- 1)增加一列
ALTER TABLE 表名 ADD COLUMN 列名 数据类型 约束;
-- 或:
ALTER TABLE 表名 ADD 列名 数据类型 约束;
-- 2)删除一列
ALTER TABLE 表名 DROP COLUMN 列名;
-- 或:
ALTER TABLE 表名 DROP 列名;
-- 3)重命名列 (这里数据类型不能省略,否则失败)
ALTER TABLE 表名 CHANGE 原列名 新列名 数据类型 约束;
-- 4)改变数据类型
-- 也可以使用CHANGE
-- 提醒:修改数据类型可能会导致数据丢失
ALTER TABLE 表名 MODIFY 列名 新数据类型;
5.对表内容的修改
-- 1)修改表中某个值
UPDATE 表名 SET 列1=值1,列2=值2 WHERE 条件;
-- 2)删除一行记录
DELETE FROM 表名 WHERE 条件;
六、其他基本操作
1.索引
作用相当于书的目录;
通过索引值可以大大加快查询速度
-- 对表中某个列建立索引
ALTER TABLE 表名 ADD INDEX 索引名 (列名);
-- 或
CREATE INDEX 索引名 ON 表名 (列名);
-- 查看索引
SHOW INDEX FROM 表名;
2.视图
视图是从一个或多个表中导出来的,是虚拟的表 ,可以使用户不用看到整个数据库中的表,而只关心对自己有用的数据
-- 创建视图
CREATE VIEW 视图名(列a,列b,列c) AS SELECT 列1,列2,列3 FROM 表名;
3.导入
把一个文件里的数据保存进一张表
LOAD DATA INFILE '文件路径' INTO TABLE 表名;
4.导出
SELECT 列1,列2 INTO OUTFILE '文件路径和文件名' FROM 表名;
5.备份
> 备份与导出的区别:导出只是导出数据;而备份是备份数据库的结构(包括数据、约束、索引、视图等)
mysqldump是MySQL用于备份数据库的实用程序,它主要产生一个SQL脚本文件,其中包含从头重新创建数据库所必需的命令CREATE TABLE INSERT等
mysqldump -u root 数据库名>备份文件名; #备份整个数据库
mysqldump -u root 数据库名 表名>备份文件名; #备份整个表
6.恢复
source
(不定期更新)
《MySQL 基础课程》笔记整理(基础篇)的更多相关文章
- 妙味课堂——JavaScript基础课程笔记
集中时间把秒微课堂JS的基础课程看完,并且认真完成了课后练习.感觉在JS方面的技能算是入了个门了.课后练习的作业完成的代码我都汇总在了这里.至于视频课的学习笔记,则记录如下. 第01课JS入门基础_热 ...
- css笔记 - 张鑫旭css课程笔记之 float 篇
https://www.imooc.com/t/197450float float的设计初衷/原本作用-是为了实现文字环绕效果如,一个图片和一段文字垂直放置,给图片加上浮动,文字就环绕图片展示了. 浮 ...
- Javascript进阶篇——(JS基础语法)笔记整理
根据慕课网学习整理到一起的笔记,把东西整理到一起看起来比较方便 什么是变量字面意思:变量是可变的量:编程角度:变量是用于存储某种/某些数值的存储器.我们可以把变量看做一个盒子,盒子用来存放物品,物品可 ...
- java基础知识-笔记整理
1.查看已安装jdk文件路径 CMD输入java -verbose. 2.java学习提升路线 java学习视屏地址: http://www.icoolxue.com/album/show/38 ...
- 在线课程笔记—.NET基础
关于学习北京理工大学金旭亮老师在线课程的笔记. 介绍: 在线课程网址:http://mooc.study.163.com/university/BIT#/c 老师个人网站:http://jinxuli ...
- WPF基础学习笔记整理 (九) 资源
基础知识: WPF的资源是一种保管一系列有用对象的简单方法,方便于重用. WPF UI元素的Resources属性,都是继承自FrameworkElement列,且其类型为ResourceDictio ...
- WPF基础学习笔记整理 (八) 命令
基础知识: 命令是应用程序的任务,并跟踪任务是否能够被执行. 命令不包含执行应用程序任务的代码. 命令是比事件更高级的元素.默认的命令目标是当前获得焦点的元素. 良好的Win应用程序,应用程序逻辑不应 ...
- WPF基础学习笔记整理 (七) Binding绑定
基础知识: 数据绑定是一种关系,该关系告诉WPF从源对象提取一些信息,并用这些信息设置目标对象的属性:目标对象始终是依赖属性,而源对象则可以是任何内容. BindingOperations类,提供静态 ...
- WPF基础学习笔记整理 (六) RoutedEvent路由事件
基础知识: 传统的事件模型中,会在消息触发时将消息通过事件传给事件的订阅者(显式的事件订阅),事件订阅者使用事件处理程序来做出响应.事件订阅者必须能够直接访问到事件的宿主(拥有者). 路由事件的事件的 ...
- WPF基础学习笔记整理 (五) DependencyObject & DependencyProperty
参考资料: 1.http://www.cnblogs.com/Zhouyongh/archive/2009/10/20/1586278.html 基础知识: DependencyObject & ...
随机推荐
- dataframe去重 drop_duplicates
data.drop_duplicates() #默认:data中一行元素全部相同时才去除 data.drop_duplicates(['a','b'])#data根据’a','b'组合列删除重复项,默 ...
- “全栈2019”Java第六十二章:接口与常量详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- Logstash 性能及其替代方案
介绍 当谈及集中日志到 Elasticsearch 时,首先想到的日志传输(log shipper)就是 Logstash.开发者听说过它,但是不太清楚它具体是干什么事情的: 当深入这个话题时,我们才 ...
- PTA 7-2 深入虎穴 (30 分)
著名的王牌间谍 007 需要执行一次任务,获取敌方的机密情报.已知情报藏在一个地下迷宫里,迷宫只有一个入口,里面有很多条通路,每条路通向一扇门.每一扇门背后或者是一个房间,或者又有很多条路,同样是每条 ...
- 跑monkey前开启/关闭系统通知栏
@echo off cls title 别忘了跑monkey啊 :menu cls color 0A echo. .禁用systemui并重启 echo. .启用systemui并重启 echo. e ...
- 面向对象中的__slots__
类中的__slots__ 正常情况下,当我们定义了一个class,创建了一个class的实例后,我们可以给该实例绑定任何属性和方法,这就是动态语言的灵活性. 而要限制class的属性就需要用到__sl ...
- 剑指offer35题:第一个只出现一次的字符+剑指offer55题:字符流中第一个不重复的字符+剑指offer51题:数组中重复的数字
在看剑指offer的时候,感觉这三个题目很像,都是用哈希表可以解决,所以把这三个题整理出来,以供复习. 剑指offer35题:第一个只出现一次的字符 题目描述:在字符串中找出第一个只出现一次的字符.如 ...
- JavaScript高性能开发的十条建议
JavaScript高性能开发的十条建议 文/开发部 Dimmacro 编者按:javascript开发大部分程序员都做过,写出来的代码质量也千差万别,现在浏览器内嵌的解释器虽然效率已经很高了,但在客 ...
- CF765F Souvenirs 离线+线段树+主席树
$ \color{#0066ff}{ 题目描述 }$ A县旁,连绵着一条长度为 n 的山脉,这条山脉由 n 座山峰组成,第 i 座山 峰的高度为 ai.作为著名的旅游县城,每天来到山脉游玩的旅客络绎不 ...
- 2016级算法第三次上机-E.ModricWang's Polygons
930 ModricWang's Polygons 思路 首先要想明白,哪些多边形可能是格点正多边形? 分情况考虑: 三角形不可能,因为边长为有理数的正三角形的面积为无理数,而格点三角形的面积为有理数 ...