mysql创建数据库

《MySQL必知必会》读书笔记_3

烈酒焚心 提交于 2020-03-19 02:47:11
PS:这次的信息量有点大。 聚集不同值 SELECT AVG(DISTINCT prod_price) AS avg_price FROM products WHERE vend_id = 1003 # 相同的值不会被计算 组合聚集函数 SELECT COUNT(*) AS num_items, MIN(prod_price) AS price_min, MAX(prod_price) AS price_max, AVG(prod_price) AS price_avg FROM products 创建分组 # 不创建分组的样子 SELECT vend_id FROM products # 创建分组的样子 SELECT vend_id,COUNT(*) AS num_prods FROM products GROUP BY vend_id P84~P96 主键:唯一标识 外键:某个表的主键值,包含在另一个表中的一列,定义了两个表之间的关系。 PS :外键约束,会导致如果删除表 A 中的一行数据,如果表 A 的主键为表 B 的外键的话,并且表 B 中有数据引用外键为删除数据,那么会删除失败。需要先接触约束,删除表 B 中的数据,才能删除表 A 中的数据。 PS :需要学习数据库范式的概念,才能更加了解书中所说的设计方式。 联结是一种机制,用来在一条 SELECT 语句中关联表

MySQL 必知必会学习笔记

痴心易碎 提交于 2020-03-19 02:45:15
SHOW DATABASES; USE LangLibCEE; SHOW TABLES; SHOW COLUMNS FROM customers; DESC customers; SHOW STATUS WHERE Variable_name LIKE '%time'; SHOW CREATE DATABASE httprunner; SHOW CREATE TABLE t; SHOW GRANTS; SHOW ERRORS; SHOW WARNINGS; SELECT prod_name FROM products; SELECT prod_id, prod_name, prod_price FROM products; SELECT DISTINCT vend_id FROM products; SELECT prod_name FROM products LIMIT 5; SELECT prod_name FROM products ORDER BY prod_name; SELECT prod_id, prod_price,prod_name FROM products ORDER BY prod_price, prod_name; SELECT prod_id, prod_price,prod_name FROM products ORDER BY prod_price

mysql基础篇 - SELECT 语句详解

烂漫一生 提交于 2020-03-19 00:53:26
基础篇 - SELECT 语句详解 SELECT语句详解 一、实验简介 SQL 中最常用的 SELECT 语句,用来在表中选取数据,本节实验中将通过一系列的动手操作详细学习 SELECT 语句的用法。 二、实验准备 在正式开始本实验内容之前,需要先下载相关数据库表,搭建好一个名为 mysql_shiyan 的数据库(有三张表:department,employee,project),并向其中插入数据。 具体操作如下,首先输入命令进入 /home/shiyanlou/Desktop 目录: cd /home/shiyanlou/Desktop 然后再输入命令,下载代码: git clone http://git.shiyanlou.com/shiyanlou/SQL4 下载完成后,输入命令开启 MySQL 服务并使用 root 用户登录: #打开 MySQL 服务 sudo service mysql start #使用 root 用户登录 mysql -u root 刚才下载的 SQL4 目录下,有个两文件 MySQL-04-01.sql 和 MySQL-04-02.sql ,其中第一个文件用于创建数据库,第二个文件向数据库中插入数据。 (SQL4目录在桌面上,你可以用Gedit查看里面两个的文件。) 加载文件中的数据,需要在 MySQL 控制台中输入命令,搭建数据库:

MySQL 中的数据类型介绍

无人久伴 提交于 2020-03-19 00:50:12
1、MySQL 数据类型 MySQL中定义数据字段的类型对你数据库的优化是非常重要的。 MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。 2、数值类型(12) 2.1、整数类型(6) 一张图就能解释清楚了: INTEGER同INT。 2.2、定点数(2) DECIMAL和NUMERIC类型在MySQL中视为相同的类型。它们用于保存必须为确切精度的值。 使用方式如下: salary DECIMAL ( 5 , 2 ) 下面的介绍将基于上面这个例子。 我们看到其中有两个参数,即DECIMAL(M,D),其中M表示十进制数字总的个数,D表示小数点后面数字的位数,上例中的取值范围为-999.99~999.99。 如果存储时,整数部分超出了范围(如上面的例子中,添加数值为1000.01),MySql就会报错,不允许存这样的值。 如果存储时,小数点部分若超出范围,就分以下情况: 若四舍五入后,整数部分没有超出范围,则只警告,但能成功操作并四舍五入删除多余的小数位后保存。如999.994实际被保存为999.99。 若四舍五入后,整数部分超出范围,则MySql报错,并拒绝处理。如999.995和-999.995都会报错。 M的默认取值为10,D默认取值为0。如果创建表时,某字段定义为decimal类型不带任何参数,等同于decimal(10,0)。带一个参数时

MySQL中Cardinality值的介绍

倖福魔咒の 提交于 2020-03-19 00:35:34
1) 什么是Cardinality 不是所有的查询条件出现的列都需要添加索引。对于什么时候添加B+树索引。一般的经验是,在访问表中很少一部分时使用B+树索引才有意义。对于性别字段、地区字段、类型字段,他们可取值范围很小,称为低选择性。如 SELECT * FROM student WHERE sex='M' 按性别进行查询时,可取值一般只有M、F。因此SQL语句得到的结果可能是该表50%的数据(加入男女比例1:1)这时添加B+树索引是完全没有必要的。相反,如果某个字段的取值范围很广,几乎没有重复,属于高选择性。则此时使用B+树的索引是最合适的。例如对于姓名字段,基本上在一个应用中不允许重名的出现 怎样查看索引是否有高选择性?通过SHOW INDEX结果中的列Cardinality来观察。非常关键,表示所以中不重复记录的预估值,需要注意的是Cardinality是一个预估值,而不是一个准确值基本上用户也不可能得到一个准确的值,在实际应用中,Cardinality/n_row_in_table应尽可能的接近1,如果非常小,那用户需要考虑是否还有必要创建这个索引。故在访问高选择性属性的字段并从表中取出很少一部分数据时,对于字段添加B+树索引是非常有必要的。如 SELECT * FROM member WHERE usernick='David'; 表member大约有500W行数据

mysql之零碎知识

泪湿孤枕 提交于 2020-03-18 23:33:53
一 视图  什么是视图:视图就是一张虚拟表。方便查看。  创建视图:create view 起名 as sql语句 #两张有关系的表 mysql> select * from course; +-----+--------+------------+ | cid | cname | teacher_id | +-----+--------+------------+ | 1 | 生物 | 1 | | 2 | 物理 | 2 | | 3 | 体育 | 3 | | 4 | 美术 | 2 | +-----+--------+------------+ 4 rows in set (0.00 sec) mysql> select * from teacher; +-----+-----------------+ | tid | tname | +-----+-----------------+ | 1 | 张磊老师 | | 2 | 李平老师 | | 3 | 刘海燕老师 | | 4 | 朱云海老师 | | 5 | 李杰老师 | +-----+-----------------+ 5 rows in set (0.00 sec) #查询李平老师教授的课程名 mysql> select cname from course where teacher_id = (select tid from

(大数据工程师学习路径)第四步 SQL基础课程----创建数据库并插入数据

大城市里の小女人 提交于 2020-03-18 23:33:34
一、练习内容 1、新建数据库 首先,我们创建一个数据库,给它一个名字,比如“mysql_shiyan”,以后的几次实验也是对mysql_shiyan这个数据库进行操作。 语句格式为“CREATE DATABASE <数据库名字>;”,(注意不要漏掉“;”)因此具体命令为: CREATE DATABASE mysql_shiyan; 创建成功后输入命令“show databases;”(注意不要漏掉“;”)检查一下: 在大多数系统中,SQL语句都是不区分大小写的,因此以下语句是等价的: CREATE DATABASE name1; create database name2; CREATE database name3; create DAtabaSE name4; 但是出于严谨,而且便于区分保留字( 保留字(reserved word):指在高级语言中已经定义过的字,使用者不能再将这些字作为变量名或过程名使用。 )和变量名,我们把保留字大写,把变量和数据小写。 2、连接数据库 接下来的操作,就在刚才创建的mysql_shiyan中进行,首先要连接数据库,使用语句 “use <数据库名字>”: use mysql_shiyan 如图显示,则连接成功: 输入命令“show tables;”可以查看当前数据库里有几张表,现在mysql_shiyan里还是空的: 3、数据表 数据表

mysql day02

不羁岁月 提交于 2020-03-18 23:10:02
Day01回顾 1、MySQL的特点 1、关系型数据库 2、跨平台 3、支持多种编程语言 2、启动连接 sudo /etc/init.d/mysql start | stop | restart | reload mysql -hIP地址 -u用户名 -p MySQL中数据是以文件的形式存储在数据库目录/var/lib/mysql 3、基本SQL命令 1、库管理 1、show databases; 2、create database [if not exists] 库名 character set utf8; 3、select database(); 4、use 库名; 5、show tables; 6、drop database 库名; 2、表管理 1、create table [if not exists] 表名( 字段名 数据类型, ... ); 2、show create table 表名; 3、desc 表名; 4、drop table 表1,表2; 3、表记录的管理 1、insert into 表名(字段1,...) values(值1),(值2); 2、select 字段1,字段2... from 表名 [where 条件]; 4、更改默认字符集 1、sudo -i 2、cd /etc/mysql/mysql.conf.d/ 3、cp mysqld.cnf

Mysql中数据表的完整复制

守給你的承諾、 提交于 2020-03-18 20:24:55
将 production 数据库中的 mytbl 表快速复制为 mytbl_new,2个命令如下: 12 CREATE TABLE mytbl_new LIKE production.mytbl;INSERT mytbl_new SELECT * FROM production.mytbl; 第一个命令是创建新的数据表 mytbl_new ,并复制 mytbl 的数据表结构。 第二个命令是讲数据表 mytbl 中的数据复制到新表 mytbl_new 。 注:production.mytbl是指定要复制表的数据库名称为 production 。它是可选的。 假如没有production. ,MySQL数据库将会假设mytbl在当前操作的数据库。 来源: https://www.cnblogs.com/amboyna/archive/2009/07/10/1520402.html

MySQL(一)索引的创建和删除

佐手、 提交于 2020-03-18 19:36:14
索引是存储引擎用于快速找到记录的一种数据结构,这是索引的基本功能。 索引对于良好的性能非常关键。尤其是当表中的数据量越来越大时,索引对性能的影响愈发重要。接下来将讲述如何创建、查看和删除索引。 索引分单列索引和组合索引。单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。组合索引,即一个索引包含多个列。 目录 一、索引类别 二、创建索引 1.ALTER TABLE 2.CREATE INDEX 三、 删除索引 四、查看索引 五、建立索引的时机 六、索引的不足之处 七、使用索引的注意事项 执行CREATE TABLE语句时可以创建索引,也可以单独用CREATE INDEX或ALTER TABLE来为表增加索引。 一、索引类别 普通索引 这是最基本的索引,它没有任何限制 唯一索引(UNIQUE索引) 它与前面的普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一 主键索引(PRIMARY KEY) 它是一种特殊的唯一索引,不允许有空值。一般是在建表的时候同时创建主键索引,PRIMARY KEY索引和UNIQUE索引非常类似。事实上,PRIMARY KEY索引仅是一个具有名称PRIMARY的UNIQUE索引。这表示一个表只能包含一个PRIMARY KEY,因为一个表中不可能具有两个同名的索引 组合索引