狂神mysql学习笔记
教程链接
一、操作数据库
- 创建数据库
CREATE DATABASE IF NOT EXISTS 数据库名;
- 删除数据库
DROP DATABASE IF EXISTS 数据库名;
- 使用数据库
--若你的表名或者字段名是一个特殊符号,就需要带``
use `school`;
- 查看数据库
show database; --查看所有的数据库
二、数据库的数据类型
- 数值类型
- tinyint:十分小的数据,一个字节
- smallint:较小的数据,两个字节
- int:标准的整数,四个字节
- mediumint:中等大小的数据,三个字节
- big:较大的数据,八个字节
- float:单精度浮点数,四个字节(存在精度问题!)
- double:浮点数,八个字节(存在精度问题!)
- decimal:字符串形式的浮点数,金融计算的时候一般使用
- 字符串类型
- char:固定大小的字符串,0~255
- varchar:可变字符串,0~65535,对应String类型
- tinytext:微型文本,2^8-1
- text:文本串,2^16-1,保存大文本
- 时间日期类型
java对应java.util.Date- date:YYYY-MM-DD,日期格式
- time:HH:mm:ss,时间格式
- datetime:YYYY-MM-DD HH:mm:ss,最常用的时间格式
- timestamp:时间戳
- year:年份表示
- null
- 没有值,未知
- 不要使用NULL进行运算,任何运算结果都是NULL
三、数据库的字段属性
- Unsigned无符号
- 无符号的整数
- 不能声明为负数
- zerofill零填充
- 0填充
- 不足的位数使用0来填充,如:int(3):5 --> 005
int(M)表示显示M位
- 自增
- 通常理解为自增,自动在上一条记录的基础上+1
- 通常用来设计唯一的主键,必须是整数类型
- 可以自定义设置主键的自增的起始值和步长
- 非空
- 假设设置为不为null,若不给它赋值,便会报错
- 若不填写值,默认为null
- 默认
- 设置默认的值
- 若不指定该列的值则会用设置的默认值替代
四、创建数据库表
目标:使用SQL创建一个student数据表。
学号int,登陆密码varchar(20),姓名,性别varchar(2),出生日期(datatime),家庭住址,email。
--注意使用英文括号(),表的名称和字段尽量使用``括起来
--字符串使用单引号或者双引号括起来
--所有的语句后面加英文逗号,
--最后一个字段不用加
--primary key主键
create table if not exists student(
`id` int(4) not null auto_increment comment '学号',
`name` varchar(20) not null default '匿名' comment '姓名',
`pwd` varchar(20) not null default '123456' comment '密码',
`sex` varchar(2) not null default '女' comment '性别',
`birthday` datetime default null comment '出生日期',
`address` varchar(100) default null comment '家庭住址',
`email` varchar(50) default null comment '邮箱',
primary key(`id`)
)engine = innodb default charset=utf8
一般格式
create table 表名称(
`字段名` 列类型 [属性] [索引] [注释],
...
`字段名` 列类型 [属性] [索引] [注释]
)[表类型][字符集设置][注释]
五、快捷命令
大多数时候我们使用图形界面的方式创建数据库和数据库表,那如果要获得建表建库的语句怎么办,以下提供几个快捷命令便于查看。
show create database school --查看创建school数据库的语句
show create table student --查看创建student表的语句
desc student --显示student表的结构