创建新数据库实例
- 查看mysql版本
select version()
- 创建数据库
可以使用SQLyog指令创建(本质就是sql语言的操作)
也可以使用sql语言创建
CREATE DATABASE `school`CHARACTER SET utf8 COLLATE utf8_general_ci;
- 创建表
可以使用SQLyog指令创建(本质就是sql语言的操作),引擎选择默认的innodb
也可以使用sql语言创建
CREATE TABLE `school`.`student` ( `id` INT(10) NOT NULL COMMENT ‘学员id‘, `name` VARCHAR(100) NOT NULL COMMENT ‘学员姓名‘, `age` INT(3) NOT NULL COMMENT ‘学员年龄‘, PRIMARY KEY (`id`) ) CHARSET=utf8 COLLATE=utf8_general_ci;
- 查看表
这个就不赘述了
连接数据库,命令行连接
- 使用命令行连接
mysql -uroot -p
- 修改用户密码
update mysql.user set authentication_string=password(‘123456‘) where user = ‘root‘ and Host = ‘localhost‘; --修改用户密码
flush privileges; --刷新权限
- 所有语句都使用分号结尾
show databases; --查看所有的数据库
use school; --切换数据库,use 数据库名
show tables; --查看数据库中所有的表
describe student; --显示表中的所有字段
create databases sysdb; --创建一个数据库
exit; --推出连接
-- 单行注释(sql注释)
/* */ -- 多行注释
数据库语言:DDL 定义 DML 操作 DQL 查询 DCL 控制
SQLyog数据库操作
操作数据库> 操作数据库中的表> 操作数据库中表的数据
mysql的关键字不区分大小写
操作数据库
- 创建数据库
CREATE DATABASE IF NOT EXISTS SYSDB;
- 删除数据库
DROP DATABASE IF EXISTS SYSDB;
- 使用数据库
-- 如果表名或者字段名是一个特殊的字符,就需要带着重号
USE `SCHOOL`;
- 查看所有的数据库
show databases;
对照sqlyog操作查看对应的sql语句
固定的语法或者关键字需要牢记
数据库的列类型
数值
- tinynit 十分小的数据 1个字节
- smallint 较小的数据 2个字节
- mediumint 中等大小的数据 3个字节
- int 标准的整数 4个字节 常用的 int后面接的数字只和他的宽度有关,和数值长度无关
- bigint 较大的数据 8个字节
- float 浮点数 4个字节
- double 8个字节
- decimal 字符串形式的浮点数,金融计算的时候,一般使用decimal
字符串
- char 字符串固定大小的 0-255
- varchar 可变字符串 0-65535 掺用的 Srting
- tinytext 微型文本 2^8-1
- text 文本串 2^16-1 保存大文本
时间日期
- date YYYY-MM-DD,日期
- time HH:mm:ss 时间格式
- datetime YYYY-MM-DD HH:mm:ss 最常用的时间格式
- timestamp 时间戳,1970.1.1到现在的毫秒数,比较常用
- year 年份表示
null
- 没有值,未知
- 注意,不要使用null进行运算,结果一定为null
数据库的字段属性(重点)
-
Unsigned
无符号的整数
声明了该列不能为负数 -
zerofill
0填充的
不足的位数,使用0来填充 -
自增
通常理解为自增,自动在上一条记录的基础上+1(默认)
通常用来设计唯一的主键~index,必须是整数类型
可以自定义设计主键自增的起始值和步长 -
非空 NULL not NULL
假设设置为not null,如果不给他赋值,就会报错
NULL,如果不填写值,默认就是null -
默认
设置默认的值
如果不指定该列的值,则有默认的值 -
扩展
每一个表必须存在以下五个字段,未来做项目用的,表示一个记录存在的意义
id 主键自增version
乐观锁
is_delete 伪删除
gmt_create 创建时间
gmt_update 修改时间
sql语句创建数据库表
--注意,使用英文括号,并且表名使用着重号括起来
--AUTO_INCREMENT 自增
--字符串使用‘‘括起来,所有语句后面需要加,,最后一条语句不需要加
--PRIMARY KEY 主键,一般一个表只有一个唯一的主键
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 ‘性别‘,
`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 [IF NOT EXISTS] `表名`(
`字段名` 列类型 [属性] [索引] [注释],
`字段名` 列类型 [属性] [索引] [注释],
……
`字段名` 列类型 [属性] [索引] [注释])
[表类型][字符集设置][注释]