MySQL的深入浅出(一)—— 初识MySQL

初识MySQL


登陆数据库

  1. 配置环境变量:在系统环境变量path

C:\Program Files\MySQL\MySQL Server 5.7\bin

  1. 登陆数据库:

cmd命令行下:mysql -h 127.0.0.1 -P 3306 -u root -p
输入密码:

	注意:大写P,端口号;小写p:密码

数据类型

  1. 整数类型
整数类型 字节 最大值 最小值
TINYINT 1 有符号-128
无符号0
有符号127
无符号255
SMALLINT 2 有符号-32768
无符号0
有符号32767
无符号65535
MEDIUMINT 3 有符号-8388608
无符号0
有符号8388607
无符号1677215
INT/INTEGER 4 有符号-2147483648
无符号0
有符号2147483647
无符号4294967295
BIGINT 8 有符号-9223372036854775808
无符号0
有符号9223372036854775807
无符号18446744073709551615
	硬件十分发达:已经不需要考虑内存了,一般使用INT就够了(BIGINT太大了不怎么用)
  1. 浮点数据类型:
浮点数类型 字节
FLOAT 4
DOUBLE 8
  1. 日期类型:
日期类型 字节 最大值 最小值
DATE 4 1000-01-01 9999-12-31
DATETIME 8 1000-01-01 00:00:00 9999-12-31 23:59:59
(时间戳)TIMESTAMP 4 19700101080001 2038年某一时刻
TIME 3 -838:59:59 838:59:59
YEAR 1 1901 2155
  1. 字符串类型:
字符串类型 字节 描述及存储希求
CHAR(M) M M为0~255之间的数
VARCHAR(M) M M为0~255之间的数
区别: 
    1)char是定长的,也就是当你输入的字符小于你指定的数目时,char(8),你输入的字符小于8时,它会再后面补空值。
				当你输入的字符大于指定的数时,它会截取超出的字符。
				
    2)R。存储变长数据,但存储效率没有CHAR高。如果一个字段可能的值是不固定长度的,我们只知道它不可能超过10个字符,
				把它定义为 VARCHAR(10)是最合算的。VARCHAR类型的实际长度是它的值的实际长度+1。
				为什么“+1”呢?这一个字节用于保存实际使用了多大的长度。

约束

  1. 完整性检查就是指检查数据的准确性和完整性;

    mysql数据库管理系统提供了一系列机制来检查数据库表中的数
    据是否满足规定的条件,以保证数据库表中数据的准确性和一致性,这种机制就是 约束 !

  2. 约束:
    | 关键字 | 解释 |
    | ------- | ----|
    | NOT NULL | 约束字段的值不能为空 |
    | DEFAULT | 设置字段的默认值 |
    | UNIQUE KEY | 字段的值唯一 |
    | PRIMARY KEY | 主键非空且唯一 |
    | AUTO INCREMENT | 字段自动增长 |
    | FOREIGN KEY(FK) | 约束字段为表的外键 |

    企业里的默认外键名称:FK_数字编号,同一个数据库中的外键编号不能相同
    
    1)自动增长约束必须是主键,而且数据类型是int
    2)自动增长的数字不会回退
    
    子表:拥有外键的表
    父表:子表外键指向的主键所在的表
    注意:
        1)字表的取值范围受到父表的约束
    	2)先建父表,再建字表;先有父表数据,再有字表数据
    	3)删除的时候先删除子表,再删除父表
    

数据库的使用

  1. 系统自带的数据库:不同版本数据库软件默认数据库不同(莫动!!!)

information_schema
mysql
performance_schema
sys
以上四个为系统数据库(自带的)
sakila
world

  1. 查看命令

show databases;显示所有数据库
show tables;显示当前使用数据库的所有表

  1. 创建数据库(创建数据库的时候指定数据库字符集为utf8,不是UTF-8):

create dadabase 数据库名称;

create database if not exists 数据库名称 default charset=utf8;

  1. 删除数据库:

drop database 数据库名称;

  1. 使用数据库(选择一个数据库进行操作):use 数据库名称;
  2. 创建表:
    create table commoditytype(
     	ct_id int(11) primary key,
     	ct_name varchar(50) not null   	//最后一行不用加逗号
     )default charset=utf8;			 	//建议写上,不写默认数据库编码;结束命令的分号别忘了
     
 	create table commodity(
 		c_id int(11) primary key,
 		c_name varchar(50) not null,
 		c_madein varchar(50) not null,
 		c_type int(11) not null,
 		c_inprice int(11) not null,
 		c_outprice int(11) ,
 		c_num int(11) default '100',
 		constraint fk_1 foreign key (c_type) references commoditytype (ct_id)
     )default charset=utf8;
 	
 	create table customer(
 		cu_id int(11) primary key,
 		cu_name varchar(50) not null,
 		cu_phone varchar(50) not null,
 		cu_gender int(11) not null default '1',
 		cu_address varchar(100) not null
     )default charset=utf8;
 	
 	create table `order`(				//order是关键字使用反引号
 		o_id int(11) primary key auto_increment,
 		o_cuid int(11) not null,
 		o_cid int(11) not null,
 		o_num int(11) not null,
 		constraint fk_2 foreign key (o_cuid) references customer (cu_id),
 		constraint fk_3 foreign key (o_cid) references commodity (c_id)
     )default charset=utf8;
  1. desc 表名;描述表明

    desc `order`;
    desc customer;

  2. 表名,字段名等如果和数据库关键字相同,使用反引号(esc下,tab上)

你可能感兴趣的:(MySQL,mySQL,笔记)