一、初始MySQL

1.1MySQL简介

MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言–结构化查询语言(SQL)进行数据库管理。 MySQL是开放源代码的,因此任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改。 MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。

1.2数据库分类
  • 关系型数据库:SQL
  • MySQL,Oracle ,SQL Server,DB2,SQLiite
  • 通过表和表之间,行和列之间的关系进行数据的存储
  • 非关系型数据库:(NoSQL)not only SQL
  • Redis,MongDB
  • 非关系型数据库,对象存储,通过对象的自身属性来决定

二、操作数据库

2.1创建数据库

create database [if not exists] 数据库名;

create database [if not exists]test;

mysql_thread_init源码分析 mysql源代码是什么语言_mysql

2.2使用数据库

use 数据库名;

use test;

mysql_thread_init源码分析 mysql源代码是什么语言_字符串_02

2.3查看所有数据库

show databases;

show databases;

mysql_thread_init源码分析 mysql源代码是什么语言_字符串_03

2.4删除数据库

drop database 数据库名

drop database test;
2.5查看所有的表

show tables;

show tables;
2.6 删除数据库

drop database [if exists ] 数据库名

drop database if exists test;

三、数据类型

3.1数据的列类型
  • 数值
tinyint :十分小的数据 1个字节
smallint : 较小的数据  2个字节
mediumint :中等大小的数据 3个字节
int : 常用类型 4个字节
bigint : 大整数 8个字节
float :单精度浮点数 4个字节
double : 双精度浮点数 8个字节
decimal:字符串形式的浮点数  在金融、高精度的情况下常被使用
eg:decimal(2,9)九位数 小数占两位
  • 字符串
char 字符串 范围 0 ~ 255
varchar 字符串 范围 0 ~ 65535
tinytext 微型文本 2的八次方-1
text 文本串 2的十六次方-1
  • 时间日期
Date YY-MM-DD 日期
Time HH:mm:ss 时间格式
datetime YY-MM-DD HH:mm:ss 最常用的时间格式
timestamp 时间戳 从1970-1-1到现在的毫秒数
year 年份表示
unsigned
  • null

没有值,未知

  • 注:int 的长度是指显示宽度,与其存储位数大小无关,而varchar的长度则是指字符串的长度
3.2 数据库的字段属性
  • unsigned

无符号整数,声明后不能为负数

  • 零填充

将不足的位数用0填充,比如3,它只有一位,但是要求显示三位则会在其前面加0,变成003

  • 自增(auto_increment)

通常理解为,自动在上一条记录的基础上加一(默认)
通常被设计为唯一的主键,必须为整数类型

  • not null 非空

假设设置为not null,那么在插入数据时,不为其赋值就会报错。
不设置not null默认为空

  • default 默认

设置默认值

3.3创建表
  • 格式
CREATE TABLE [IF NOT EXISTS] `表名`(
	`字段名` 列类型 [属性] 索引 [注释],
    `字段名` 列类型 [属性] 索引 [注释],
    ....,
    `字段名` 列类型 [属性] 索引 [注释]
	)[ENGINE=表类型][字符集设置][注释]
  • 示例
CREATE TABLE IF NOT EXISTS `student`(
	`id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
	`name` VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',
	`pwd` VARCHAR(20) NOT NULL DEFAULT '123456' COMMENT '密码',
	`sex` VARCHAR(2) NOT NULL DEFAULT '女' COMMENT '性别',
	`brithday` DATETIME DEFAULT NULL COMMENT '出身日期',
	`address` VARCHAR(50) DEFAULT NULL COMMENT '家庭住址',
	`email` VARBINARY(50) DEFAULT NULL COMMENT '电子邮箱',
	PRIMARY KEY(`id`)`student`
	
)ENGINE=INNODB DEFAULT CHARSET=utf8
  • 注意
    – 注意,使用(),表的名称和字段尽量使用``括起来
    – AUTO_INCREMENT 自增
    – 字符串一般使用’'括起来
    – 所有的语句后面加, (英文的),最后一个不用加
    – 主键 primary key 主键,一般一个表只有唯一的一个主键
  • 查看创建命令
show create database 数据库名
eg: show create database test;
-- 查看数据库创建sql
show create table 表名
eg:show create table user;
-- 查看表创建sql
desc 表名
eg: desc student;
-- 查看表的结构