一、尝试MySQL

1.打开MySQL

  1. # 启动MySQL服务
  2. sudo service mysql start
  3. # 使用 root 用户登录,这里密码为空,直接回车登录
  4. mysql -u root

window cmd 登录

  1. mysql -u root -p

2.查看数据库:

  1. show databases
  2. -- 改数据库名
  3. rename database oldname to newname;
  4. -- 删除数据库
  5. drop database dname;

3.连接使用某个数据库:

  1. use <数据库名>

4.查看表:

  1. SHOW TABLES;

5.退出

  1. exit quit

二、创建数据库并插入数据

1.新建数据库

  1. CREATE DATABASE <数据库名字>;

2.新建数据表

  1. CREATE TABLE <表名>
  2. (
  3. 列名a 数据类型(数据长度),
  4. 列名b 数据类型(数据长度),
  5. 列名c 数据类型(数据长度)
  6. );

3.查看表内容

  1. SELECT * FROM <表名>;

4.向表中插入数据

  1. INSERT INTO 表名(列名a,列名b,列名c)
  2. VALUES(值1,值2,值3);

批量插入:

  1. -- mysql
  2. INSERT INTO table (field1,field2,field3) VALUES ('a',"b","c"), ('a',"b","c"),('a',"b","c");
  3. -- oracle
  4. INSERT INTO "database"."table" (field1,field2)
  5. SELECT 'A','B' FROM dual
  6. UNION SELECT 'C','D' FROM dual;

三、SQL的约束

1.约束分类

​ 约束是一种限制,它通过对表的行或列的数据做出限制,来确定表的数据的完整性、唯一性。

主键 默认值 唯一 外键 非空
PRIMARY KEY DEFAULT UNIQUE FOREIGN KEY NOT NULL
用于约束表中的一行,作为这一行的标识符,主键不能重复且不能为空;复合主键 唯一不重复 保证数据完整性,也能表现表之间的关系,每个外键必须REFERENCES(参考)另一个表的主键

四、SELECT 语句详解

1.基本SELECT语句

  1. SELECT 列名 FROM 表名 WHERE 限制条件;

2.数学符号条件

=,<,>,>=,<=,<>

3."AND" 与 "OR"

4.IN 和 NOT IN

  • IN: 不在 某个范围内
  • NOT IN: 在也不在 某个范围内

5.通配符

  • 关键字 LIKE
  • 两个通配符:_ (代表一个未指定字符)和 % (代表不定个未指定字符)
  1. -- 只记得电话号码前五位
  2. SELECT name,phone FROM employee WHERE phone LIKE '1347_ _ _ _ _ _ _';
  3. -- 只记得名字首字母,却不知道长度
  4. SELECT name,phone FROM employee WHERE name LIKE 'L%';

6.对结果排序

  1. ORDER BY
  2. -- 默认升序;关键词:ASC(升序),DESC(降序)
  3. SELECT name,salary FROM employee ORDER BY salary DESC;

7.SQL内置函数算

COUNT、SUM、AVG、MAX、MIN

8.子查询

9.连接查询

五、数据库及表的修改和删除

1.删除数据库

  1. DROP DATABASE 数据库名

2.重命名表

  1. RENAME TABLE 原名 TO 新名字;
  2. ALTER TABLE 原名 RENAME 新名;
  3. ALTER TABLE 原名 RENAME TO 新名;

3.删除表

  1. DROP TABLE 表名;

4.对列的修改(即对表的结构修改)

  1. -- 1)增加一列
  2. ALTER TABLE 表名 ADD COLUMN 列名 数据类型 约束;
  3. -- 或:
  4. ALTER TABLE 表名 ADD 列名 数据类型 约束;
  5. -- 2)删除一列
  6. ALTER TABLE 表名 DROP COLUMN 列名;
  7. -- 或:
  8. ALTER TABLE 表名 DROP 列名;
  9. -- 3)重命名列 (这里数据类型不能省略,否则失败)
  10. ALTER TABLE 表名 CHANGE 原列名 新列名 数据类型 约束;
  11. -- 4)改变数据类型
  12. -- 也可以使用CHANGE
  13. -- 提醒:修改数据类型可能会导致数据丢失
  14. ALTER TABLE 表名 MODIFY 列名 新数据类型;

5.对表内容的修改

  1. -- 1)修改表中某个值
  2. UPDATE 表名 SET 1=值1,列2=值2 WHERE 条件;
  3. -- 2)删除一行记录
  4. DELETE FROM 表名 WHERE 条件;

六、其他基本操作

1.索引

​ 作用相当于书的目录;

​ 通过索引值可以大大加快查询速度

  1. -- 对表中某个列建立索引
  2. ALTER TABLE 表名 ADD INDEX 索引名 (列名);
  3. --
  4. CREATE INDEX 索引名 ON 表名 (列名);
  5. -- 查看索引
  6. SHOW INDEX FROM 表名;

2.视图

​ 视图是从一个或多个表中导出来的,是虚拟的表 ,可以使用户不用看到整个数据库中的表,而只关心对自己有用的数据

  1. -- 创建视图
  2. CREATE VIEW 视图名(列a,列b,列c) AS SELECT 1,列2,列3 FROM 表名;

3.导入

​ 把一个文件里的数据保存进一张表

  1. LOAD DATA INFILE '文件路径' INTO TABLE 表名;

4.导出

  1. SELECT 1,列2 INTO OUTFILE '文件路径和文件名' FROM 表名;

5.备份

  1. > 备份与导出的区别:导出只是导出数据;而备份是备份数据库的结构(包括数据、约束、索引、视图等)

mysqldump是MySQL用于备份数据库的实用程序,它主要产生一个SQL脚本文件,其中包含从头重新创建数据库所必需的命令CREATE TABLE INSERT等

  1. mysqldump -u root 数据库名>备份文件名; #备份整个数据库
  2. mysqldump -u root 数据库名 表名>备份文件名; #备份整个表

6.恢复

  1. source

(不定期更新)

《MySQL 基础课程》笔记整理(基础篇)的更多相关文章

  1. 妙味课堂——JavaScript基础课程笔记

    集中时间把秒微课堂JS的基础课程看完,并且认真完成了课后练习.感觉在JS方面的技能算是入了个门了.课后练习的作业完成的代码我都汇总在了这里.至于视频课的学习笔记,则记录如下. 第01课JS入门基础_热 ...

  2. css笔记 - 张鑫旭css课程笔记之 float 篇

    https://www.imooc.com/t/197450float float的设计初衷/原本作用-是为了实现文字环绕效果如,一个图片和一段文字垂直放置,给图片加上浮动,文字就环绕图片展示了. 浮 ...

  3. Javascript进阶篇——(JS基础语法)笔记整理

    根据慕课网学习整理到一起的笔记,把东西整理到一起看起来比较方便 什么是变量字面意思:变量是可变的量:编程角度:变量是用于存储某种/某些数值的存储器.我们可以把变量看做一个盒子,盒子用来存放物品,物品可 ...

  4. java基础知识-笔记整理

    1.查看已安装jdk文件路径 CMD输入java -verbose.   2.java学习提升路线 java学习视屏地址: http://www.icoolxue.com/album/show/38 ...

  5. 在线课程笔记—.NET基础

    关于学习北京理工大学金旭亮老师在线课程的笔记. 介绍: 在线课程网址:http://mooc.study.163.com/university/BIT#/c 老师个人网站:http://jinxuli ...

  6. WPF基础学习笔记整理 (九) 资源

    基础知识: WPF的资源是一种保管一系列有用对象的简单方法,方便于重用. WPF UI元素的Resources属性,都是继承自FrameworkElement列,且其类型为ResourceDictio ...

  7. WPF基础学习笔记整理 (八) 命令

    基础知识: 命令是应用程序的任务,并跟踪任务是否能够被执行. 命令不包含执行应用程序任务的代码. 命令是比事件更高级的元素.默认的命令目标是当前获得焦点的元素. 良好的Win应用程序,应用程序逻辑不应 ...

  8. WPF基础学习笔记整理 (七) Binding绑定

    基础知识: 数据绑定是一种关系,该关系告诉WPF从源对象提取一些信息,并用这些信息设置目标对象的属性:目标对象始终是依赖属性,而源对象则可以是任何内容. BindingOperations类,提供静态 ...

  9. WPF基础学习笔记整理 (六) RoutedEvent路由事件

    基础知识: 传统的事件模型中,会在消息触发时将消息通过事件传给事件的订阅者(显式的事件订阅),事件订阅者使用事件处理程序来做出响应.事件订阅者必须能够直接访问到事件的宿主(拥有者). 路由事件的事件的 ...

  10. WPF基础学习笔记整理 (五) DependencyObject & DependencyProperty

    参考资料: 1.http://www.cnblogs.com/Zhouyongh/archive/2009/10/20/1586278.html 基础知识: DependencyObject & ...

随机推荐

  1. kvm虚拟化之kvm虚拟机快照备份

    kvm虚拟机默认使用raw格式的镜像格式,性能最好,速度最快,它的缺点就是不支持一些新的功能,如支持镜像,zlib磁盘压缩,AES加密等.   要使用镜像功能,磁盘格式必须为qcow2.下面开始kvm ...

  2. php-fpm.conf 解析

    以下内容转自:http://www.4wei.cn/archives/1002061 约定几个目录/usr/local/php/sbin/php-fpm/usr/local/php/etc/php-f ...

  3. HDU6333-2018ACM暑假多校联合训练1002-Harvest of Apples-莫队+费马小定理

    题意很简单啦,求S(n,m)的值 通过打表我们可以知道 S(n + 1, m) = S(n, m) * 2 - C(n, m); S(n - 1, m) = (S(n, m) + C(n - 1, m ...

  4. P5030 长脖子鹿放置 最小割

    $ \color{#0066ff}{ 题目描述 }$ 如图所示,西洋棋的"长脖子鹿",类似于中国象棋的马,但按照"目"字攻击,且没有中国象棋"别马腿& ...

  5. ubuntu16.04 能启动mysql服务

    ubuntu16.04 后, 貌似mysqld在/etc/init.d下,直接执行会报mysqld不在服务中,因此开启mysql服务失败. 所以执行以下命令不能启动mysql服务: /etc/init ...

  6. 编程开发之--Java集合类继承与实现必备知识

    1.LinkedHashSet有序链式集合 举例: long startTime=System.currentTimeMillis(); LinkedHashSet oprTypeSet = new ...

  7. TensorFlow GPU 的使用

    一.TensorFlow 设备分配 1.设备分配规则 If a TensorFlow operation has both CPU and GPU implementations, the GPU d ...

  8. Q806 写字符串需要的行数

    我们要把给定的字符串 S 从左到右写到每一行上,每一行的最大宽度为100个单位,如果我们在写某个字母的时候会使这行超过了100 个单位,那么我们应该把这个字母写到下一行.我们给定了一个数组 width ...

  9. (转)C++ main函数中参数argc和argv含义及用法

    原博地址:https://blog.csdn.net/dcrmg/article/details/51987413 argc 是 argument count的缩写,表示传入main函数的参数个数: ...

  10. git遇到的常见错误整理

    远程仓库与本地代码不一致 解决: git pull --rebase git@gitee.com:l544402029/MUTAO.git 将仓库里的代码pull下来  ,然后重新进行git add ...