mysql必_MySQL必知必会(一)

摘自《MySQL必知必会》

1.1.1 什么是数据库

数据库:保存有组织的数据的容器(通常是一个文件或一组文件)

人们通常用数据库这个术语来代表他们使用的数据库软件。这是不正确的,它是引起混淆的根源。确切地说,数据库软件应称为DBMS(数据库管理系统)。在很大程度上说,数据库究竟是文件还是别的什么东西并不重要,因为你并不直接访问数据库;你使用的是DBMS,它替你访问数据库。

1.1.2 表

表(table):某种特定类型数据的结构化清单。

这里关键的一点在于,存储在表中的数据是一种类型的数据或一个清单。决不应该将顾客的清单与订单的清单存储在同一个数据库表中。这样做将使以后的检索和访问很困难。应该创建两个表,每个清单一个表。

数据库中的每个表都有一个名字,用来标识自己。此名字是唯一的,这表示数据库中没有其他表具有相同的名字。

表名的唯一性取决于多个因素,如数据库名和表名等的结合。这表示,虽然在相同数据库中不能两次使用相同的表名,但在不同的数据库中却可以使用相同的表名。

表具有一些特性,这些特性定义了数据在表中如何存储,如可以存储什么样的数据,数据如何分解,各部分信息如何命名,等等。描述表的这组信息就是所谓的模式(schema)。

1.1.5 主键

表中每一行都应该有可以唯一标识自己的一列(或一组列)。一个顾客表可以使用顾客编号列,而订单表可以使用订单ID,雇员表可以使用雇员ID或雇员社会保险号。

唯一标识表中每行的这个列(或这组列)称为主键。主键用来表示一个特定的行。没有主键,更新或删除表中特定行很困难,因为没有安全的方法保证只涉及相关的行。

虽然并不总是都需要主键,但大多数数据库设计人员都应保证他们创建的每个表具有一个主键,以便于以后的数据操纵和管理。

表中的任何列都可以作为主键,只要它满足以下条件:任意两行都不具有相同的主键值;

每个行都必须具有一个主键值(主键列不允许NULL值)。

这里列出的规则是MySQL本身强制实施的。

除MySQL强制实施的规则外,应该坚持的几个普遍认可的最好习惯为:不更新主键列中的值;

不重用主键列的值;

不在主键列中使用可能会更改的值。(例如,如果使用一个名字作为主键以标识某个供应商,当该供应商合并和更改其名字时,必须更改这个主键。)

2.1.1客户机-服务器软件

MySQL、Oracle以及Microsoft SQL Server等数据库是基于客户机—服务器的数据库。服务器部分是负责所有数据访问和处理的一个软件。这个软件运行在称为数据库服务器的计算机上。与数据文件打交道的只有服务器软件。关于数据、数据添加、删除和数据更新的所有请求都由服务器软件完成。这些请求或更改来自运行客户机软件的计算机。客户机是与用户打交道的软件。例如,如果你请求一个按字母顺序列出的产品表,则客户机软件通过网络提交该请求给服务器软件。服务器软件处理这个请求,根据需要过滤、丢弃和排序数据;然后把结果送回到你的客户机软件。

2.2.1 mysql命令行实用程序命令用;结束,换句话说,仅按Enter不执行命令;

输入help或\h获得帮助,也可以输入更多的文本获得特定命令的帮助(如,输入help select获得使用SELECT语句的帮助);

输入quit或exit退出命令行实用程序。

3.1 连接

MySQL与所有客户机—服务器DBMS一样,要求在能执行命令之前登录到DBMS。MySQL在内部保存自己的用户列表,并且把每个用户与各种权限关联起来。

为了连接到MySQL,需要以下信息:主机名(计算机名)——如果连接到本地MySQL服务器,为localhost;

端口(如果使用默认端口3306之外的端口);

一个合法的用户名;

用户口令(如果需要)。

mysql -u root -p -h myserver -p 9999

3.2选择数据库

在你最初连接到MySQL时,没有任何数据库打开供你使用。在你执行任意数据库操作前,需要选择一个数据库。

USE crashcourse;

3.3了解数据库和表

SHOW DATABASES;

返回可用数据库的一个列表。

SHOW TABLES;

返回当前选择的数据库内可用表的列表。

SHOW COLUMNS FROM customers;

SHOW COLUMNS要求给出一个表名( 这个例子中的FROM customers),它对每个字段返回一行,行中包含字段名、数据类型、是否允许NULL、键信息、默认值以及其他信息。

DESCRIBE customers;

MySQL支持用DESCRIBE作为SHOW COLUMNS FROM的一种快捷方式。

SHOW STATUS;

用于显示广泛的服务器状态信息;

SHOW CREATE DATABASE;

SHOW CREATE TABLE;

分别用来显示创建特定数据库或表的MySQL语句;

SHOW GRANTS;

用来显示授予用户(所有用户或特定用户)的安全权限;

SHOW ERRORS;

SHOW WARNINGS;

用来显示服务器错误或警告消息。

在mysql命令行实用程序中,执行以下命令可以显示允许的SHOW语句。

HELP SHOW;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/454955.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python之工作举例:通过复制NC文件来造数据

1 # 通过对NC文件复制来造数据2 import os, shutil3 4 # 遍历的根目录5 root_dir "D:\\test_data\\DISASTER\\"6 # 获取NC文件的时间7 time_source 201612280800008 # 生成NC文件的时间9 time_new 2018122808000010 11 12 def get_dir_path(dir_name, time_str):1…

Python 3.5.2 TypeError: a bytes-like object is required, not 'str’问题解决方案

运行环境Mac Python 3.5.2 Q: http_response """\ HTTP/1.1 200 OK Hello, World! """ client_connection.sendall(http_response) TypeError: a bytes-like object is required, not str 类型错误,需要的是一个byte类型&#xff0…

mysql 集群架构_mysql企业常用集群架构

转自 https://blog.csdn.net/kingice1014/article/details/760200611、mysql企业常用集群架构在中小型互联网的企业中。mysql的集群一般就是上图的架构。WEB节点读取数据库的时候读取dbproxy服务器。dbproxy服务器通过对SQL语句的判断来进行数据库的读写分离。读请求负载到从库…

h.264视频文件封装

所谓封装格式就是将已经编码压缩好的视频轨和音频轨按照一定的格式放到一个文件中,也就是说仅仅是一个外壳,或者大家把它当成一个放视频轨和音频轨的文件夹也可以。说得通俗点,视频轨相当于饭,而音频轨相当于菜,封装格…

python cookbook 笔记三

分组: rows [{address: 5412 N CLARK, date: 07/01/2012},{address: 5148 N CLARK, date: 07/04/2012},{address: 5800 E 58TH, date: 07/02/2012},{address: 2122 N CLARK, date: 07/03/2012},{address: 5645 N RAVENSWOOD, date: 07/02/2012},{address: 1060 W A…

关于Vue2.0,Express实现的简单跨域

npm install express -g 通过npm全局安装express,之后可以通过 express --version 来查看express版本 express server 通过express server生成server项目文件 npm install 安装server的项目依赖 可以通过执行server下的bin\www文件可以开启服务 在www文件我们可以默…

mysql datetime类型按天查询_mysql 时间相关sql , 按天、月、季度、年等条件进行查询...

-- mysql查询本季度-- 今天select * from ticket_order_detail where to_days(use_time) to_days(now());-- 7天SELECT *FROM ticket_order_detail where DATE_SUB(CURDATE(), INTERVAL 7 DAY) < date( use_time)-- 近30天SELECT *FROM ticket_order_detail where DATE_SUB…

ffmpeg分析系列

hello&#xff0c;各位好&#xff0c;本人是一名嵌入式软件工程师&#xff0c;目前正使用ffmpeg开发一款嵌入式多媒体播放器&#xff0c;《ffmpeg分析》系列博文是本人在阅读ffmpeg源代码时所做的笔记&#xff0c;希望对各位有点帮助。分析过程结合下面的例程&#xff1a;http:…

Linux kernel的中断子系统之(二):IRQ Domain介绍

返回目录&#xff1a;《ARM-Linux中断系统》。 总结&#xff1a;一、二概述了软硬件不同角度的IRQ Number和HW Interrupt ID&#xff0c;这就需要他们之间架个桥梁。 三介绍了架设这种桥梁的几种方式&#xff1a;Linear、Radix Tree和no map。 四介绍了两种基础数据结构描述中断…

mysql返回yyyy mm dd_怎么把取出mysql数据库中的yyyy-MM-dd日期转成yyyy年MM月dd日格式...

您好&#xff0c;通过两个个步骤可以完成转换&#xff1a;第一步&#xff1a;日期处理可以在模板数据集中通过sql语句转换&#xff0c;转换方式方式如下&#xff1a;SELECT DATE_FORMAT(NOW(),%Y) YEAR输出结果&#xff1a;2018SELECT DATE_F…

关于JS的时间控制

关于JS的时间控制实现动态效果及实例操作 <script>BOM //Bowers Object Model 浏览器对象模型setTimeout() // 延迟执行一次setInterval() // 间隔执行var a 300;window.setTimeout(abc(a),3000); // 自定义函数赋值function abc(i){alert(i);}//setInterv…

感动一生的几句话

为什么80%的码农都做不了架构师&#xff1f;>>> 很多东西就掌握在我们手中&#xff1a; 比如快乐&#xff0c;你不快乐&#xff0c;谁会同情你的悲伤&#xff1b; 比如坚强&#xff0c;你不坚强&#xff0c;谁会怜悯你的懦弱&#xff1b; 比如努力&#xff0c;你不…

mysql5.6 memcached_MySQL 5.6 安装配置InnoDB memcached Plugin

准备工作, 安装libmemached包&#xff0c;提供一些memcat/cp/dump命令&#xff0c;方便测试。# yum install libmemcached.x86_64 -y1. Setup required tables.mysql> source MYSQL_HOME/share/innodb_memcached_config.sqlQuery OK, 1 row affected (0.00 sec)Database cha…

Java 监听器,国际化

1. 监听器 1.1 概述 监听器&#xff1a; 主要是用来监听特定对象的创建或销毁、属性的变化的&#xff01; 是一个实现特定接口的普通java类&#xff01; 对象&#xff1a; 自己创建自己用 (不用监听) 别人创建自己用 &#xff08;需要监听&#xff09; Servlet中哪些对象需要监…

patator mysql 字典_利用patator进行子域名爆破

前言:原来朋友写的一个子域名爆破工具挺好用,这前几天API接口关了.痛苦万分.自己也写了一个类似的但是不咋稳定.特地google找了下 找到一款patator.效果和速度还是不错的。knock的速度真心受不了啊patator是由Python写的 不用安装下载即可.下载地址&#xff1a;http://code.goo…

div 超出高度滚动条,超出宽度点点点

超出高度滚动条style"width:230px; height: 180px; overflow: auto;"超出宽度点点点style"width: 220px; overflow: hidden; white-space:nowrap; text-overflow:ellipsis;"转载于:https://www.cnblogs.com/thinkingthigh/p/7603703.html

mp4(H264容器)的详细文件格式分析

十六进制码流分析&#xff1a; ftyp Box 00 00 00 1C: size ,28,表示此BOX有28个字节&#xff0c;表示长度的四个字节也计算在内。以下同 66 74 79 70: type,表示BOX TYPE,此处为ftyp 6D 70 34 32: 可能是兼容的格式信息&#xff0c;/mp42 00 00 00…

hdu 5925 搜索

题意&#xff1a;一个图&#xff0c;n个障碍&#xff0c;求联通块 思路&#xff1a; 图很大&#xff0c;障碍物很少。把联通的障碍物块抠出来&#xff0c;然后暴力。 代码&#xff1a; #include<bits/stdc.h> using namespace std; #define MEM(a,b) memset(a,b,sizeof(a…

分析数据库CitusDB:提供弹性计算能力

本文讲的是分析数据库CitusDB&#xff1a;提供弹性计算能力,企业数据库市场很庞大&#xff0c;在这个领域既有Oracle这样行家&#xff0c;也有IBM(DB2)和微软(SQL Server)这样的跨界巨头。它们都与中小企业常用到的开源数据库MySQL一样&#xff0c;都属于传统关系型数据库。似乎…

mysql不能创建innodb类型表_MYSQL have_innodb DISABLED无法创建innodb类型的表

今天在一台MYSQL服务器上发现&#xff0c;明明用了engineinnodb创建的表&#xff0c;结果创建出来却成了myisam的表。再看show variables like %innodb%;have_innodb 成了DISABLED。经过一番试验&#xff0c;发现是我关闭数据库后&#xff0c;直接删除ibdata1文件造成的。删除该…