欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MySQL的深入浅出(一)

程序员文章站 2022-05-29 21:30:35
...

初识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 笔记